#zishaansunderji-terminal

1 messages ยท Page 1 of 1 (latest)

toxic cloak
#

Hello! Give me a few minutes and I'll take a look

sand fossil
#

Thanks a ton!!

toxic cloak
#

Can you give a bit more clarification - you say the one on the right created an uncaptured payment and gives you a failure, but from the screenshot it look slike it was successful?

sand fossil
#

Oh yeah for sure - so the reader and the Stripe logs both say the process succeeded

#

but when we get a response back from the reader - our app shows us a failure modal as though it's just come from the onFailure method of the Terminal.getInstance().processPayment method

#

So I'm guessing the reader is sending back some response - which might be pending or processing - but it hits as an exception on our end

#

We have a react native application so this gets executed and returns back a promise - which in the case of the uncaptured interac debit payments throws an error

#

which unfortunately just says undefined so it's not much we can know from there

toxic cloak
#

๐Ÿ‘ Looking now - give me a few minutes

sand fossil
#

Awesome! Thank you!!

toxic cloak
#

Do you mind also copy-pasting the Payment Intent ID from the screenshot on the right (whichever one is incorrectly saying it's failed when the logs say it succeeds)

sand fossil
#

Yuppp for sure!

#

pi_3LN10eFk5BSitd8b0CU9Z9Oi
pi_3LMxHIFk5BSitd8b01t9PV6i (this works in our app)

toxic cloak
#

thanks!

sand fossil
#

ofcourse!

toxic cloak
#

I can confirm that I see the error from the processPayment call for pi_3LN10eFk5BSitd8b0CU9Z9Oi - digging into it a bit more to see why it happened

sand fossil
#

That's so helpful! Thank you!!

toxic cloak
#

Okay, so this particular error was a READER_COMMUNICATION_ERROR - so it's not that the payment itself definitely failed, it's that we're unable to fully finish the call to processPayment because of the communication error and it's entirely possible that the reader and stripe were still able to communicate enough to finish the payment. You'll likely want to re-retrieve the Payment Intent and check it's status to confirm whether it did actually fail or not (https://stripe.com/docs/terminal/payments/collect-payment?terminal-sdk-platform=android#handling-processing-failures)

Prepare your application and backend to collect payments using Stripe Terminal.

sand fossil
#

I see! That makes sense!

#

So for how long do you recommend to wait before doing the check?

#

In this circumstance, the reader took 7 seconds before it switched to successful

rare peak
#

Hello! I'm taking over and catching up, but generally speaking the amount of time you wait to check depends on your specific integration.

#

For example, if you have the Terminal reader in a location with a slow or unreliable Internet connection you would probably want to wait longer than you would otherwise.

sand fossil
#

Hey there!

#

Yeah we're finding internet issues tend to be quite a problem for some clients we have

#

Do you think a 10 second buffer is sufficient?

#

I know arbitrary numbers don't work very well lol

rare peak
#

It sounds like a good place to start, then you can adjust as needed from there. ๐Ÿ™‚

sand fossil
#

Oh okay awesome ๐Ÿ™‚

rare peak
#

Make sure it's adjustable server-side. ๐Ÿ™‚

sand fossil
#

Right for sure! I'll make sure it's a setting we can adjust from the database!