#battbot_api
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1227260246611984527
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
hi
For Android this should largely be handled for you, but for iOS you do need to configure return url handling: https://docs.stripe.com/payments/accept-a-payment?platform=ios&mobile-ui=payment-element#ios-set-up-return-url
So it's not clear to me from the documentation what the purpose of this return_url is. I used to encounter this return_url when the payment card required a 3ds check, so the return_url was used when the 3ds check passes and it comes back to the url specified as its value. However, we started using Stripe.js and Android/IOS sdk which was handling the 3ds redirects for us. We no longer had to provide our own implementation of this.
For Stripe.js on web, 3ds is handled via modal/overlay and typically does not require a redirect
so this error only comes up when we use the ios sdk?
we don't have this problem at all when using our previous version of Stripe
this error only started occuring when we tried to upgrade our server side Stripe version. Then how does the older version of Stripe handle this?
Because I saw this error occur also from our web app when using the Stripe.js
our logs show this error occured not just from ios devices, but also android devices as well
what are we expected to pass for android for this parameter?
Hi there ๐ jumping in as my teammate needs to step away. return_url began being required with the API version that enables Dynamic Payment Methods by default:
https://docs.stripe.com/upgrades#2023-08-16
It's now required to support non-card Payment Methods that may require a redirect to a third-party site to complete/authorize the transaction.
what does it mean by non-card payment methods? what about cards which require 3ds checks? doesn't those also require a redirect?
also does Apple Pay and Google Pay count among those payment methods?
We only process cards + apple pay and google pay. So what would be the recommended solution for us? I don't know if just passing the payment_method_types as ["card"] will restrict apple pay or not
we just want the same behaviour as we had previously with the old Stripe api. Was it just always defaulting to ["card"] as the payment_method_type? We can use that as long as cards + cards with 3ds + apple pay are still supported
Yes, 3DS requires it as well
No wallets don't
When we were using the old Stripe API, it supported 3ds fine without us passing this parameter. How was it working then?
Apple and Google pay are part of card, so you can do that. The API update entry I linked to also contains instructions for bypassing the requirement:
You can bypass the return_url requirement using automatic_payment_methods[allow_redirects]=never, this will automatically filter payment methods that require redirect even if they are enabled in the Dashboard.
we do want to support 3ds checks on cards though
The documentation synthrider gave me earlier for IOS says I need to pass the url for universal link. What about Android and web apps? I've seen this error for requests originating from those sources as well. But I didn't see anything in their respective documentation about what type of URL we need to pass
Universal link setup is only required for iOS. Android supports it by default and it isn't needed for web.
How are you confirming your intents, serverside or clientside?
Can you elaborate on what you're referring to by auto confirm?
we use the java library
paymentIntentParams.setConfirm(true)
we set the confirm flag to true when creating the payment intent
Gotcha, so you're doing server-side confirmation, and I suspect letting our SDKs handle the 3DS flow for you. In that case, I believe you can omit the return_url if you either:
- pass
payment_method_optionsexplicitly declaring what payment method types should be supported (rather than using dynamic payment methods).
or - pass
automatic_payment_methods[allow_redirects]=never
But let me know if those don't work for you
would automatic_payment_methods[allow_redirects]=never disable 3ds check?
because we usually require 3ds check on our payments
I don't believe so, I believe I was mistaken when I said those require a return_url
ok i'll try it out. Thank you for the help!