#kushal.is

1 messages ยท Page 1 of 1 (latest)

hard wadiBOT
nimble oak
#

Hi there, can you share with me your Setup Intent ID?

final basin
#

here is id : pi_3M4euCCFG19KPC2W1cIXiMTg

#

maybe this is you are looking : seti_1M4etvCFG19KPC2WtrW2AptP

#

๐Ÿ˜Ÿ

nimble oak
#

Thanks for waiting. Discord is busy today

final basin
#

No problem.

nimble oak
#

I can see that this SetupIntent is succeeded.

#

I don't see any errors.

final basin
#

okay

#

Then why I'm getting incomplete error from stripe.?

nimble oak
#

Are we looking at the same thing? you gave me a SetupIntent ID, but you are showing me a page about payment.

final basin
#

Can you please check the payment too?

nimble oak
#

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.

final basin
#

okay

nimble oak
#

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

final basin
#

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.

nimble oak
#

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

final basin
#

That means user need to do 2 time authentication.
Here is the reference of the first time authentication.

nimble oak
#

which test card are you using?

final basin
#

4000000000003220

nimble oak
#

This test card will always prompt 3DS.

final basin
#

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

nimble oak
#

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.

final basin
#

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.

nimble oak
#

That's because 4242 card doesn't require 3ds.

final basin
#

That means the 1st and 2nd screenshot are included in the 3DS flow, right?

nimble oak
#

No, 2nd screenshot is not part of 3ds.

final basin
#

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.

nimble oak
#

No. If 3DS is not required, the payment_intent status will move succeeded.

final basin
#

let me conclude this chat.

If the customer is using 3d secured card(eg: 4000000000003220),

  1. Customer can view the below popup for enter OTP
#
  1. After clicking complete button then user will get incomplete status from stripe. Then the system need to show another popup for confirming/collecting payment.
nimble oak
#

Wait a minute, clicking the complete button should complete the payment.

#

Do you have a PaymentIntent ID that I can take a look upon?

final basin
#

Here is the id : pi_3M4euCCFG19KPC2W1cIXiMTg

#

Here are the log from stripe

nimble oak
#

The 3DS was unsuccessful, what test card did you use?

final basin
#

4000000000003220

west mica
#

Hi! I'm taking over this thread.

#

Can you try to summarise your question while I catchup?

final basin
#

I'm getting incomplete error when I'm using 3d secure card.

#

Eg : 4000000000003220

#

@west mica You there?

west mica
#

Sorry for the delay, having a look.

final basin
#

okay

west mica
final basin
#

fyi, we are using setup intent...

#

the product is subscription based. As per my knowledge I need to use setup intent option.

west mica
#

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?

final basin
#

Getting incomplete error when I make payment using 3d secure card + setup intent.

#

The products are based on subscriptions

west mica
final basin
#

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.

tired shell
#

๐Ÿ‘‹ taking over for my colleague. Let me catch up.

tired shell
#

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

final basin
#

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),

  1. Customer can view the below popup for enter OTP
#
  1. After clicking complete button then user will get incomplete status from stripe. Then the system need to show another popup for confirming/collecting payment.
tired shell
#

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

final basin
#

can I get an blog/article for the above mentioned statement.? So that I look into that..

tired shell
#

let me see if I could find something for you

surreal pawn
#

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.