#monove - Terminal payment error

1 messages · Page 1 of 1 (latest)

jade quiver
#

Hey there can you provide a bit more context, such as any example requests or SDK calls you're making an the exact error details you encounter?

sacred ore
#

what does PaymentIntent is nil

#

mean

jade quiver
#

In what context? Can you share more detail?

sacred ore
#

trying to understand the documentation
under Handle processing failures
it says
PaymentIntent is nil Request to Stripe timed out, unknown PaymentIntent status Retry processing the original PaymentIntent. Don’t create a new one, as that could result in multiple authorizations for the cardholder.

#

what does PaymentIntent is nil mean. what is nil? i know what null is

#

does it mean that theres no response.error.payment_intent?

#

here was my payment intent:
pi_3KlMfqK2Rid5jw0t1fQCGl4T

jade quiver
#

nil and null are the same -- just different language conventions

sacred ore
jade quiver
#

essentially, undefined

sacred ore
#

but how could the advice be to:
Retry processing the original PaymentIntent. Don’t create a new one, as that could result in multiple authorizations for the cardholder.

#

this was for an expired card

#

we had code in place to do just that to keep retrying the submitted one and we have a headache from clients complaining, rightfully, as the card was declined

sacred ore
#

@jade quiver ?

jade quiver
#

we had code in place to do just that to keep retrying the submitted one

Not sure what you mean here, as you're referring to Temrinal payments. So you would use the same PI to re-initialize payment on the reader.

sacred ore
#

that's not what this means: "Retry processing the original PaymentIntent. Don’t create a new one, as that could result in multiple authorizations for the cardholder." is plain wrong

#

that's what this means: "Try collecting a different payment method by calling collectPaymentMethod again with the same PaymentIntent."

sacred ore
#

"processing" means terminal.processPayment(paymentIntent), not terminal.collectPaymentMethod(token)

#

so the manual is wrong unless i'm misunderstanding

jade quiver
#

At which stage of teh integration are you encountering this? It's a communication error, generally, so the "process" verb might refer to either previous step.

sacred ore
#

when we run terminal.processPayment on a live card that is locked we get back:
{
"error": {
"type": "card_error",
"code": "card_declined",
"decline_code": "generic_decline",
"doc_url": "https://stripe.com/docs/error-codes/card-declined",
"message": "Your card was declined."
}
}
this would fit the "PaymentIntent is nil"?
you explained that it means that error.payment_intent would be undefined as we can see above. The advice to: "Retry processing the original PaymentIntent. Don’t create a new one, as that could result in multiple authorizations for the cardholder." is incorrect. Would you agree?

jade quiver
#

Well i don't expect the payment intent to be nil in that case, thats not a communication error thats a decline. You probably should collect a different payment method there.

sacred ore
#

from your documentation:
When processing a payment fails, the SDK returns an error that includes the updated PaymentIntent. Your application should inspect the PaymentIntent to decide how to deal with the error.

#

your documentation makes no mention there about this even being related to communication issues

jade quiver
#

The line you refer to says directly beside it:

Request to Stripe timed out, unknown PaymentIntent status