#kylewhittington-webviews
1 messages · Page 1 of 1 (latest)
Hi there! Thanks for the details. Give me a moment to investigate.
What browser are you encountering this on?
And is it specific to a certain browser (I assume not based on what you stated).
It's whatever iOS is using to open an external browser -- I'd assume it's Safari.
Gotcha.
Do you see any sort of error in the browser when the redirect is triggered? I believe you can use the web inspector to look: https://developer.apple.com/library/archive/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html#//apple_ref/doc/uid/TP40007874-CH2-SW8
No, we don't see any errors. Stripe finishes up and redirects back to our app -- ie. https://myapp.com/order-complete. But that stays in the browser, rather than triggering to open up the iOS app again. So the user stays in the browser that was opened to handle the checkout flow, rather than, what we would expect, which is that the user sees the redirect handled by the iOS app (opened in the app).
Okay thanks. I'm not the most experienced with iOS webapps and deep linking, let me ask a colleague for some insight.
So if you do this on the web, of course, it works as there's no need for apps to be involved. If you do this on Android, we have it set up with intents so that when Stripe redirects, it then correctly triggers the app to respond and open up, and we can handle the inbound. iOS just doesn't seem to like (or allow) the redirect to open the app back up.
Thanks, that would be much appreciated!
Just quick clarifier... you state that on Android you have it "set up with intents" -- does this indicate you aren't using Stripe Checkout here but your own custom form with Elements and PaymentIntents?
Or is it same integration on both?
No, sorry, intents is an Android term for handling inbound requests to the app -- it's not Stripe related.
Thanks!
Okay so there actually is an extra step for deep linking on iOS that Android takes care of natively. We discuss this here in our docs: https://stripe.com/docs/payments/accept-a-payment?platform=ios&ui=payment-sheet#ios-set-up-return-url. That doc is specifically for Payment Sheet, but the same idea applies regardless of using Stripe Checkout. You stated your universal links are working so I would think you may need to set up your app delegate? Can you confirm whether your set up looks like that in the docs?
On the right path, for sure -- but I think we do already have the equivalent of that in place. This is further complicated by the fact that our app is built in Xamarin iOS -- which is usually fine as we can do the same things as on native, but hard to compare code as it would be slightly different implementation. Universal links are definitely working on the device in that if we tap a URL that starts with our app's domain, then iOS opens the app... it's just weird that it doesn't respond to the redirect. Based upon the Stripe code you've sent it looks like it does handle it (or it's at least been considered) so maybe we need to keep digging and see if it's Xamarin that's not responding in the right way.
This isn't specifically a Stripe problem -- as it's largely about iOS -- but I thought given anyone doing Stripe Checkout and needing Apple Pay / Google Pay, in their app, they would need to do this sort of thing.