#NinjaMasta - payment delay
1 messages · Page 1 of 1 (latest)
Hello, thanks for the info. Looking in to that payment and I will let you know what I can find
As far as I can see in our logs, there is a 4 minute gap between when your integration makes the call to process the payment intent on the terminal and when it made the call to actually confirm the payment intent. The calls themselves look like they returned fairly quickly as far as I can see. Do you have logging or anything on your side that might clarify what happened in those four minutes?
Yeah hold on.
We have server logs of our code, but nothing from the terminal itself. During that gap, it looks like we were constantly pinging the get_payment_intent looking for the completed status:
Doesn't really help much, but it does seem to point to the issue residing on either the terminal not processing the payment right away or some type of delay on stripes end.
We basically have logs showing 3-4 minutes of executing get_payment_intent, waiting for the captured message.
Do you know what your server does when you hit that endpoint? From what I can see, the process payment intent call that you made before that only took us 3s to respond to.
Our client web browser app creates the payment intent through our server endpoint, then constantly pings the status of the payment intent with get_payment_intent until the status is marked as completed. Meanwhile the customer is prompted to enter their info on the terminal. When they are done the payment intent status changes and is captured.
I wonder if there are any terminal logs on your end that would be useful? I can get the serial number if needed.
To me it almost seems like the delay was either form the terminal reader -> stripe or some delay on stripe's end in processing/updating the payment intent status. I guess there could also be some type of network issue, but we didn't see any errors or issues relating to that.
👋 stepping in for Pompey as they need to step away
You are using the Android SDK?
A serial number would be helpful as well
We are using a React website, with the server api hosted on vercel lambda
Requesting the serial number now. It is that BBPOS wireless one I believe.
Thanks
That actually is fine
I can get it from that
Give me a few minutes to take a look from my end
ok
When this does occur
What happens on the reader itself?
It just hangs on the "collect payment method" screen?
The timestamps are in the picture above. The payment intent id is pi_3LfPKyCf0AKPiudJ12gZ6cjq
Yep I see that
But I'm curious what is the Reader UI doing during this time? Like I assume you are saying that the customer has provided a payment method to the reader?
I am confirming the reader behavior with the user, but as far as I know, the customer inserted their payment method right away and everything went through.
Our web UI then just sat for 3-4 minutes waiting for the payment_intent status to change from requireds_capture to completed or whatever
But let me confirm with the user to see if there is any more info
Sounds good. Looking on my end
Ah okay so the reader is echoing the correct state but you aren't seeing the PI move to requires_capture
Yeah, basically. The PI status should move from requires_capture to something else (i think completed), which we aren't seeing happen until 4 minutes after the payment was completed.
Once the status changes from requires_capture to something else, we issue the capture payment call: stripe.paymentIntents.capture(req.body.payment_intent_id);
Actually I mispoke, you are correct
We wait for the payment status to change to requires_capture before executing stripe.paymentIntents.capture
ok thanks
@warm dragon we are still looking for anything that would indicate this delay on our side. In the meantime, would it be possible to create a video of this delay and provide us the corresponding PaymentIntent? Are you able to repro it in test mode with the same Terminal?
The issue occurs sporadically. Most payments work fine for the day as far as I know and it has been working great for the past month or so, up until a few days ago. Let me reach out to the user and see if I can get any more info or request a video.
They are going to try and reproduce it again and see if they can also get a video.