#brian-paymentintents-duplicate

1 messages · Page 1 of 1 (latest)

analog jettyBOT
echo storm
#

Do you have the ID of the initial payment intent that was created that way?

#

(pi_123)

unique iron
#

Yeah so on the Stripe Dashboard I can get it - I do see the JSON there

#

let me get it for you

#

note that it was NOT in the response when we made the initial API call

#

pi_3OG5VcDbVO0r1ghH3HVErqG3

#

When we made the call for that PI at 11/24/23 11:57:52AM (PST) we received an empty response with the following headers

#

[0] => HTTP/1.1 100 Continue
[1] => HTTP/1.0 201 Created
[2] => Date: Fri, 24 Nov 2023 19:59:18 GMT
[3] => Server: Apache/2.4.18 (Ubuntu)
[4] => X-Frame-Options: SAMEORIGIN
[5] => Connection: close
[6] => Vary: Accept-Encoding
[7] => Content-Length: 29
[8] => Content-Type: text/html; charset=utf-8

#

which is really weird because normally it contains nginx

#

Actually those may not be the response headers now that I am looking at it - I'm not sure. We save every response from every API call and in this case the reply was empty

echo storm
#

So I am not immediately sure what may have happened here but am looking in to it

unique iron
#

Yep I see that in the dashboard as well

#

hmm is it possible to see the length of time between when the request was received and when it response went out?

#

I'm wondering if we are hitting an internal timeout - I think it may be 10 seconds

#

that would explain the empty response - if it hit the wait timeout it would close the channel before any response came through

#

OK yeah I'm suspecting that now - I suspect this response was slow to come back since there was latency between you guys and Chase during that period, so we ended up timing it out on our end before we got the response

#

Any idea of the max number of seconds we should wait before giving up when making an API call to create a payment intent? Normally takes like a second so wondering what a good timeout value would be

echo storm
#

30 seconds is typically when our API times out, so maybe 35 seconds to give a bit of a buffer

unique iron
#

perfect

#

thank you - I appreciate the help on this

echo storm
#

Of course, glad you were able to find an explanation for the 100

analog jettyBOT
mystic ravine
#

@unique iron It's important to use Idempotency keys for cases like this. That ensures that you can replay the original request if you didn't get a response back from us and avoids getting duplicate transactions. See https://stripe.com/docs/api/idempotent_requests. Alternatively, listen to Events like payment_intent.succeeded to reconcile with PaymentIntents you have in your database and catch the ones you might have missed