#benjaminhull-subs
1 messages · Page 1 of 1 (latest)
Hi there! Are you using a trial for your Subscription or a SetupIntent to collect payment details?
no trial - it bills £4 straight after completing the payment challenge
an intent is created yes
This sounds like 3DS is being completed which is hosted by the issuer so we likely don't have control of what they are showing here, but you do you have a Subscription ID that I can take a look at?
yes one moment
Price ID: price_1L1BTkIUvDbaGbBT41R4268l
is that what you needed?
that's the only price configured for the subscription product
The Subscription itself should look like sub_xxxxx
sub_1L1CjuIUvDbaGbBT5Ud9YTkS
Thanks let me take a look
cheers
Ah okay, so you are collecting card details using a SetupIntent so that is why they see the 0 GBP auth from the bank... that is how we authorize cards when there isn't a charge involved.
The paymentmethod is then used later for the Subscription.
I see yes
If you are going to charge for the Subscription while the customer is on-session, then you should change your flow here to confirm the PaymentIntent from the Invoice that the Subscription generates.
Instead of using previously collected card details.
You would confirm client-side using Stripe JS when the card details are entered.
ok, I see - we are using Laravel's Cashier. Are you familiar with that at all?
Ah not intimately but that may be limiting, yes.
hmm ok
I think you can still do the flow I described above with Cashier
Have you read through: https://stripe.com/docs/billing/subscriptions/build-subscriptions?ui=elements?
I am partially familiar with this page
That is the flow that I'm talking about. When the customer clicks "pay" you create the Subscription server-side and then pass the latest_invoice.payment_inent.client_secret back to your client and confirm it using Stripe JS (looks like you are just using Card Element with SetupIntents right now).
So the client-side JS method would be this one: https://stripe.com/docs/js/payment_intents/confirm_card_payment
Not sure if Cashier supports this, but you could also use the new param we just released when you create the Sub: https://stripe.com/docs/api/subscriptions/create#create_subscription-payment_settings-save_default_payment_method
That will set the new PaymentMethod as the default for the Sub automatically.
What you are using now works fine... but if you want to avoid the confusion during 3DS then you would switch to the flow I described above as then 3DS will be performed on the initial payment (instead of when collecting card details prior)
ok, great
so you're suggesting that we do one initial single payment, and following that payment a subscription is added for future payments?
No I'm talking about the initial Subscription payment
When you create a Subscription a PaymentIntent will also be created for the first payment for the Subscription.
ok I see
You would collect card details and pay for the first invoice all in one step.
ok - and I'm using some kind of generic blank paymentIntent, is that right?
The Subscription will generate an Invoice which will generate a PaymentIntent, yes.