#kushal.is
1 messages ยท Page 1 of 1 (latest)
Hi there, can you share with me your Setup Intent ID?
here is id : pi_3M4euCCFG19KPC2W1cIXiMTg
maybe this is you are looking : seti_1M4etvCFG19KPC2WtrW2AptP
๐
Thanks for waiting. Discord is busy today
No problem.
Are we looking at the same thing? you gave me a SetupIntent ID, but you are showing me a page about payment.
Can you please check the payment too?
OK. So the payment_intent's status is requires_action, which means the customer needs to perform a 3DS authentication.
I think I know where the confusion is.
okay
You might think the 3DS is no longer needed for payment since the customer has already completed it during SetupIntent confirmation.
However, it's not always the case, the card issuer can still decide a 3DS is needed for a transaction even though the same payment_method has completed 3DS before.
Therefore, your integration should handle the scenario when a payment_intent status becomes requires_action
Okay
Let say if I'm getting incomplete status error then we need to show the latest invoice at new tab, from there user need to confirm again. please correct me if i'm wrong. Attached is the reference.
Yes this is one way to do that
There's also an option to send email to customer, and customer can click a link to confirm the payment
You can also build up your own web integration, prompt your customer to your webpage and confirm the payment
That means user need to do 2 time authentication.
Here is the reference of the first time authentication.
which test card are you using?
4000000000003220
This test card will always prompt 3DS.
For this card, we need show 2 type of popup, right?
first popup is
This will return incomplete status then we need to show second popup .
please correct me if i'm wrong
The 2nd screenshot is not part of the 3DS flow. This is the hosted invoice page which you can use to collect payment from your customer.
But if I'm providing the card number - 4242424242424242, the stripe is showing success message instead of incomplete status. There is no flow of collecting the payment from the customer for the above mentioned card(4242424242424242).
Here is the payment id : pi_3M4fmUCFG19KPC2W12a9IkK8
please let me know if i'm doing anything wrong.
Please note that the 2nd screenshot is getting only when I'm trying with 3D secured card.
That's because 4242 card doesn't require 3ds.
That means the 1st and 2nd screenshot are included in the 3DS flow, right?
No, 2nd screenshot is not part of 3ds.
If 2nd screenshot is not the part of 3DS then the stripe need to show incomplete status for the card - 4242424242424242, but stripe return success status.
No. If 3DS is not required, the payment_intent status will move succeeded.
let me conclude this chat.
If the customer is using 3d secured card(eg: 4000000000003220),
- Customer can view the below popup for enter OTP
- After clicking complete button then user will get incomplete status from stripe. Then the system need to show another popup for confirming/collecting payment.
Wait a minute, clicking the complete button should complete the payment.
Do you have a PaymentIntent ID that I can take a look upon?
The 3DS was unsuccessful, what test card did you use?
4000000000003220
Hi! I'm taking over this thread.
Can you try to summarise your question while I catchup?
I'm getting incomplete error when I'm using 3d secure card.
Eg : 4000000000003220
@west mica You there?
Sorry for the delay, having a look.
You confirmed the PaymentIntent from your backend, and it had status: "requires_action": https://dashboard.stripe.com/test/logs/req_1QeSPUBoNWbikn
okay
So the next step is to confirm the PaymentIntent on the frontend with this: https://stripe.com/docs/js/payment_intents/confirm_card_payment#stripe_confirm_card_payment-attached to go through the 3DS flow.
fyi, we are using setup intent...
the product is subscription based. As per my knowledge I need to use setup intent option.
fyi, we are using setup intent...
The ID you shared earlier is actually a PaymentIntent: pi_3M4euCCFG19KPC2W1cIXiMTg
But let's take a step back. What exactly are you trying to do here? What's your end goal? Create subscriptions?
Getting incomplete error when I make payment using 3d secure card + setup intent.
The products are based on subscriptions
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
To solve that specific error, I already mentioned it to you:
You confirmed the PaymentIntent from your backend, and it had status: "requires_action": https://dashboard.stripe.com/test/logs/req_1QeSPUBoNWbikn
So the next step is to confirm the PaymentIntent on the frontend with this: https://stripe.com/docs/js/payment_intents/confirm_card_payment#stripe_confirm_card_payment-attached to go through the 3DS flow.
But why are you manually creating a SetupIntent for this?
We are not using payment intent..
we are using setup intent.
we need to use SetupIntent for the subscription based products. Please correct me if I'm wrong.
๐ taking over for my colleague. Let me catch up.
the Setup Intent you're using is just creating a Payment Method(PM) that would be used in the future in the subsequent Payment Intents
what my colleague was explaining is that once there is a payment to be made (a new invoice in this case) the generated PaymentIntent uses the PM that was created by the SetupIntent
if the PaymentIntent goes to status requires_action then you need to get your customer back on your website to complete the 3DS
this is why I normally discourage people from using this approach when creating Subscriptions
Let me explain what I did till now. You can correct me if I did anything wrong.
If the customer is using 3d secured card(eg: 4000000000003220),
- Customer can view the below popup for enter OTP
- After clicking complete button then user will get incomplete status from stripe. Then the system need to show another popup for confirming/collecting payment.
that's terrible UX I'm sorry
for me the customer shouldn't be asked to setup a payment method first and then once that's done go and confirm the payment
If you're using send_invoice as collection_method you don't need to previously collect payment details with SetupIntent
can I get an blog/article for the above mentioned statement.? So that I look into that..
let me see if I could find something for you
Hi there ๐ apologies for the delay. I'm jumping in to lend a hand, please bear with me a moment while I catch up on the context here.
Actually there is no detailed article regarding creating subscription with collection_method send_invoice. As it's not what we recommend.
The recommended integration for subscription is this one:
https://stripe.com/docs/billing/subscriptions/build-subscriptions