#brian-paymentintents-duplicate
1 messages · Page 1 of 1 (latest)
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
As far as I can see, we sent a 200 HTTP status code back with our response from the intent create call https://dashboard.stripe.com/logs/req_OTVhEKgsthqjoj
And I'm not seeing 100 listed as a response code that we send in the API in general https://stripe.com/docs/api/errors
So I am not immediately sure what may have happened here but am looking in to it
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
30 seconds is typically when our API times out, so maybe 35 seconds to give a bit of a buffer
Of course, glad you were able to find an explanation for the 100
@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