#heymato
1 messages ยท Page 1 of 1 (latest)
hi! means you need to confirm it on the frontend generally, to attempt a payment.
But it is an action that has to be done by the customer right?
in most integrations, yes
do you have more context like an actual PaymentIntent pi_xxx that is like this or context on the code you're using/guides you're following?
Thanks
Could you please share what guide are you following for your integration?
what do you mean about that ?
I see you are confirming the payment on your frontend and it requires authentication.
However you are updating the Payment Intent multiple times after that again.
I am trying to understand how does your integration look
When a customer goes from the cart page to the checkout, I check if an intent is been made or not.
When there is already an intent, I update it with 'what ever' is changes. Amount shipping address....
Then when you go to the payment page (in which I have a PaymentElement ) I use client secret and payment intent ID to handle all the stuff
if a success, I ink to the same page and check the status of the payment intent. If payment succeeded, I redirect to a success page, if not succeeded, I give them the payment element again so they can try to use different payment methods
I see, thanks. So for that particular PaymentIntent, the customer needed to complete card authentication, however, before they could do it, your app updated the Payment Intent again, so it required confirmation again.
The initial confirmation happened at 2022-12-22 11:52:21 UTC and you updated the PI at 2022-12-22 11:52:29 UTC.
It means your app is updating the PaymentIntent somewhere on the background that prevents successful payment completion
ah ok
So this is not good
Does this mean this customer would never be able to pay ?
You need to investigate what is causing multiple PI updates on your backend while the checkout is in progress and stop it. Then your customer will be able to complete the payments.
OK
Just another question, this happens because someone has a 3D secure popup/window, and then confirms. So I'm not sure that would trigger one of my scripts. But perhaps I'm seeing this wrong
- when de customer confirmed, does this mean the transfer of the money has been done also?
When the user completes the 3DSecure (card authentication), the PI status turns succeeded (or back to requires_payment_method if it fails). After that it takes a few days to appear on your balance.
But in the PI example I gave you, will this person get billed or not?
and this person had a 3Dsecure payment or not ?
I want to understand where in my code it went wrong...
When they confirmed the payment on the frontend, status went from requires_confirmation to requires_action. Then they were likely (depending on your integration) presented with 3DS popup. However, while they were trying to complete it, your backend has updated the PI so the result of the 3DS was discarded, and the PI status went back to requires_confirmation
OK.
Is it safe to say, once a payment state is requires_action, it cannot be set to requires_confirmation again?
If you update the PI in requires_action state, it will go back to requires_confirmation
Sorry I'm not following so quickly, but I'm not sure what is happening at the moment. The problem here is a script of me that updates the payment intent after an action of the customer.
Do you know if this comes from a webhook or ?
The updates come from your backend
this means the person in particular will get billed ?
even if afterwards status is set back to "requires_confirmation"?
No, requires_action happens before the customer completes the payment, after that, the status turns succeeded
How to you see this is backend code? Do you see who the initiator is ?
Do you have an idea of that ?
Hello ๐
Stepping in as vanya had to step away
OK
it seems like this is a long running thread. Can you provide a short summary on what you're trying to do and what are you currently blocked on?
while I catch up
Yes ofcourse.
thank you
there is a problem with payments on our side, Vanya told me states of payments are being overridden by scripts on my backend and that that is the reason they are not able to pay
This is the example PaymentIntent, correct?
https://dashboard.stripe.com/logs/req_DQtsrbT2NhM5zi
It looks like there is something on your server-side code which keeps updating the PaymentIntent even after you've confirmed the PaymentIntent
Confirmation request (which takes the PaymentIntent to requires_action state since payment method is ideal you may need to perform extra steps to complete the payment):
https://dashboard.stripe.com/logs/req_7lBtWLchwAvnW1
Update example (happens after confirmation):
https://dashboard.stripe.com/logs/req_s3si4SQIvtrLth
https://dashboard.stripe.com/logs/req_WOL4QDmJEZrtcf
(... there are more)
The update causes the PaymentIntent to go back to requires_confirmation status (where your customer would need to confirm the PaymentIntent client-side)
You maybe able to look at the IP address in the dashboard and figure out which server is calling this.
NP! ๐ Sorry for the delay
No not a problem. I just think I'm in some trouble right now ...
But thanks for the help
๐