#nickdnk-no-3DS

1 messages · Page 1 of 1 (latest)

south coyote
dusty rover
#

(For direct charges, the returned response includes any even if the card does not support it)

#

Maybe I am sending wrong parameters?

south coyote
#

Good question. Not immediately sure why that may be. Looking in to it

dusty rover
#

Cool, thanks. We'd very much like all payments to go through 3ds if possible

south coyote
#

Hey sorry for the delay, still looking in to this. That param is not persisting for me either. Looking in to why

#

Raising and issue about this internally. As a workaround, you can update the PaymentIntent after creation to set it though you do have to be using default_incomplete

dusty rover
#

okay, that’s not going to work unfortunately. I could do it for subscription creation and not on update

#

With that workaround

#

But let me know what you find out

#

I mean from the issue being raised

brave gyro
#

looking at this

dusty rover
#

Cool

brave gyro
#

hmm the setting comes back as any for me when i send it, for my own or a connected account, with or without default_incomplete

#

you can reproduce the result you shared here, or was it an anomoly?

dusty rover
#

I believe it happened in all cases

#

I can look for more requests

#

But none of our subscription creations went through 3ds

#

hold on

#

req_N3vOG0gvppXQTq

#

This one is good: req_O65cX8BtTOe9ub but no 3ds was used

#

Also good, but no 3ds: req_riaCL9dLqZoDDw

#

Also good, no 3ds: req_NzpiPrecXqeiTr

brave gyro
#

well yes, my concern is only the request setting being persisted, not whether or not 3DS actually happened

#

remember this is a request, its not a guarantee

dusty rover
#

Okay, let me see if req_NzpiPrecXqeiTr is the only one

#

I know

#

But none of them going through when all the cards support it and the amount is significant (100 usd) is pretty weird still

brave gyro
#

You can try the default_incomplete approach and confirm client side to see if you get a different result from the issuer

dusty rover
#

That's not going to work, I need the pending updates

#

It seems req_N3vOG0gvppXQTq is the only request where there is mismatch between any and automatic

#

But Pompey said he could replicate it

#

So not sure what's going on

#

We do confirm client side by the way

#

Or, we use "automatic" confirmation

#

so completing 3ds completes the payment, I mean

#

Not sure if that's what you mean

#

And I know it works because the test cards (and my own live card when we did a final live-test) did go through 3ds

brave gyro
dusty rover
#

Yeah but only because 3ds was not triggered

#

otherwise it would have gone to the client for confirmation

#

That's how it's set up

#

Isn't that what automatic confirmation is meant to do?

#

We do use manual sometimes, but not for this particular subscription flow

brave gyro
#

you dont need to do manual, payment_behavior=default_incomplete is still automatic, but it defaults to providing you the PI to confirm client side

#

to make exactly this flow easier

#

you dont have to conditionally handle 3ds on the client, you just always do confirmCardPayment on the client

dusty rover
#

But I can't do default_incomplete, as I need pending_if_incomplete

#

I already do default_incomplete when creating subs

#

or, I don't provide the parameter which I assume defaults to this.

#

And then I let the client do the rest

#

Isn't that what you would want?

dusty rover
#

Which example is this?

brave gyro
#

req_N3vOG0gvppXQTq

#

this didnt confirm in the client - its not using default_incomplete, which sounds like you've considered and doesnt work for you so sure, its fine to handle confirmation only when needed for 3ds

#

and i dont think that should affect things here

#

that this is not reproducible by either of us now is odd

dusty rover
#

Why is it not using default_incomplete? I am not passing any parameter that would indicate otherwise?

#

This went through the exact same flow as all the other payments I would assume

#

Honestly I’m a little confused now, because looking at the code it seems we only handle the payment intent on the client if it has requires_action. But it works, and I tested this extensively.

brave gyro
#

from what you shared yea that sounds like what you're doing, which is fine

#

it just means handling the logic for this

dusty rover
#

Okay so with automatic we don’t need the client to confirm if no 3DS is required? Because that’s what we do now

#

Client does nothing

#

With default_incomplete on sub creation

#

I think I’m confused because of the way we’re doing it, which is good but not entirely how Stripe intended it, which is also the reason for my PR on the iOS SDK. If passing a payment intent to the client and its state is succeeded, then the client really doesn’t do anything

#

And we just skipped this step

brave gyro
#

if you use default incomplete you need to confirm the PI after the sub is created, it splits the process into two steps, the PI itself is still automatic confirmation though (you have to confirm once, not twice)

dusty rover
#

Yeah I don’t do that

#

And it works

brave gyro
#

thats fine, i think we can leave it aside, i dont think its a factor here

dusty rover
#

Okay, I was just confused by this

brave gyro
#

yea, what youre doing was the only way to do it before default incomplete was added earlier this year

dusty rover
#

But I am using default_incomplete if not providing any other option? Isn’t that why it’s called default ?

#

I only use pending_if_incomplete for updates

#

Just to be explicit:
Create subs with no parameters for payment, just price and such, automatic confirmation… then I don’t do anything else unless the PI is in requires_action

#

I’m on my phone right now so syntax is a bit hard

brave gyro
#

no, perhaps thats the confusion here. default_incomplete is an opt-in flow, not default behavior overall

dusty rover
#

Autocorrect is not my friend here

#

Aha. Okay.

#

So the default is which of them?

#

I think the bottom line here is that I am not doing anything wrong from a 3DS perspective

#

And that it should work but just doesn’t get triggered for some reason that’s beyond my control

#

Ahh allow_incomplete is the default

#

I’m sorry I was really thrown by the one called default not being default

#

Can you explain the exact difference between these two states or perhaps link me something about it? The normal docs are not exactly clear about the difference

brave gyro
#

i'd agree, nothing wrong with what youre doing that i have heard

#

it tried to pay the first invoice, and then leaves you to resolve it if not possible, and the sub is incomplete