#sanderfish_unexpected

1 messages · Page 1 of 1 (latest)

trim cedarBOT
#

đź‘‹ 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/1471662083484684289

📝 Have more to share? Add more details, code, screenshots, videos, etc. below.

slim shoal
#

It shows EUR 0.00, even though the charge will be 10 USD

#

When paying with Apple Pay or Google Pay, we're able to pass an amount to the payment sheet

frosty dawn
#

Hey! Apologies, am getting caught up with on thread, will take a look at this soon!

frosty dawn
#

Hey! Thanks for the wait!

SetupIntents shows a $0 authorization when triggering 3D Secure (3DS) authentication. This occurs because SetupIntents are used to set up payment methods without initially charging the user, which involves placing a $0 authorization on the card.

slim shoal
#

So there is no way to specify an amount? Like we can do on the Apple Pay / Google Pay sheets?

frosty dawn
#

Hmmm, how are you passing the amount to the Apple Pay and Google Pay Sheet?

#

We migrated our subscription logic to use setup intents so that we can first validate card details before starting the subscription.

This allowed us to prevent creating "incomplete" subscriptions in the Stripe Dashboard.
Hmmm, taking a look at your initial ask, we actually have a field on the Subscription object that might achieve this

slim shoal
#

Through the Element provider options amount, I believe

frosty dawn
#

Have you considered this before?

#

It has to be used with collection_method: 'charge_automatically'

slim shoal
#

I remember trying that, but it caused other issues, I believe broke 3DS/SCA?

frosty dawn
#

Use error_if_incomplete if you want Stripe to return an HTTP 402 status code if a subscription’s first invoice can’t be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further customer action is needed,
Ah I see, do you mean this? That if 3DS happens, it would not allow the Subscription to be started?

slim shoal
#

Yes

#

I've been going round and round on this the past few months. Thought we finally found the solution by using setup intents for everything. But the only breaking issue is the $0.00 amount on the 3DS flow.

#

Also, very annoying that Stripe's 3DS test modal doesn't display this.

#

considering that all banks I've tried this with in production, show an amount on the 3DS screen

#

Do you know if this would be any different if we'd use Checkout Sessions?

frosty dawn
#

Yup, I was thinking just that:

Checkout Session on mode:’Subscription’

  • Creates the Subscription on the Spot
  • Tests if the Card is valid or not, and will return an error if it is not, not allowing a Subscription object to be created
  • 3DS would have the payment amount shown
slim shoal
#

Okay, we will consider that in the future. But will be quite a rewrite.

#

I'll route between payment intents and setup intents now depending on subscription requirements.

#

Thanks for your help Teddy

frosty dawn
#

No prob!

slim shoal
#

@frosty dawn sorry one more thing — would you know a way for me to see the amount in the 3DS flow in test mode?

frosty dawn
#

unfortunately thats not possible in test mode

#

Its just mainly a test page to authenticate the 3DS request, and we don't tailor it to include additional things like amount or bank names

slim shoal
#

gotcha — would be helpful to see that added. I found a couple threads online of other people unexpectedly finding out the 3DS flow they built showed $0.00

frosty dawn
#

I can see how that might be helpful

#

I found a couple threads online of other people unexpectedly finding out the 3DS flow they built showed $0.00
Actually, just out of curiosity, are theses discord threads?

slim shoal
#

Stripe confirmed to me that for this you have to change the code and switch from setup intent to payment intent in order to be able to display the amount

#

actually we migrated to setup intents after Stripe support told us it would be appropriate to do so; we had a long ongoing email thread

#

but nobody mentioned this drawback :/

frosty dawn
#

What Stripe Support said is actually a valid flow. Using SetupIntents to validate the card before creating a Subscription is a common flow, but they could have missed out the point that the 3DS authorisation page would show the $0

#

By default, Setup Intents are $0 authorization charges sent to the bank to validate card details. It wouldn’t be best practice to display an amount on the 3DS page that does not reflect the actual amount being authorized.

The amount to be paid (e.g., $10) rightfully belongs to the Subscription itself, along with its underlying Invoice (upon finalization) and it's own Payment Intent.