#groarq - Google Pay
1 messages ยท Page 1 of 1 (latest)
๐ Thanks for reaching out
You are using what integration? reactnative or web ?
Web
it should has no different between live or test mode for web integration regarding Google Pay
https://stripe.com/docs/google-pay?platform=web#web
When you enter this link https://stripe.com/docs/stripe-js/elements/payment-request-button
Are you seeing the GooglePay button shown ?
Meanwhile, can you share a failing PaymentIntent Id or a request Id ?
yes, button is displayed properly. PaymentRequest is created fine, but then on stripe.confirmCardPayment we are getting payment intent with requires_action status
in example this one: pi_3Lef1i2XcFcc97LF0Js8hKql
similar situation is with setup intent: seti_1LegXn2XcFcc97LFj6Tv1y4E
Thanks juste give me couple of minutes while analyzing
sure! fingers crossed, we truly have no idea what to do next
Thanks for your patience, still analyzing
that does seem odd. That can happen to be clear , sometimes the bank will decline the transaction and force 3DS even though GPay payments are not supposed to not need them. But your integration should still be able to deal with that scenario and show the 3DS popup after the GPay one(that's why the docs use handleActions:false and then confirm a second time).
I'm not really sure why its happening in this case though
We have tried to pay via google pay with 3 different devices and accounts - all failed that way.
but maybe we are handling wrong that scenario?
const { paymentIntent, error: confirmError } = await stripe!.confirmCardPayment(
json.client_secret,
{ payment_method: event.paymentMethod.id },
{ handleActions: false },
);
if (confirmError) {
processError(confirmError.message || 'An unknown error has occurred. Please try again.', ev);
} else {
if (paymentIntent.status === 'requires_capture') {
emitPaymentSucceeded({ gateway: 'stripe', intentId: paymentIntent.id });
event.complete('success');
} else {
event.complete('fail');
}
}
so when there is a different status than "requires_capture" we are calling complete('fail')
you should do what's in the docs where it checks for if the status is requires_action after the first attempt to confirm :
oh, so we should just trigger confirmCardPayment once more?
so it is something like confirmCardPayment -> if requires_action then confirmCardPayment again?
yes, you confirm once to do GPay, then call complete(success) to close that popup, and if 3DS is required, you confirm a second time to present the next popup (for 3DS)
it is still strange that you're getting 3DS requested here, I still don't know why, but it is technically a scenario that can happen
Thank you very much for the help!
Have a great day, hopefully everything will work when we introduce these changes ๐ ๐
for what it's worth I think the complication here is not every card in a GPay wallet is equal
some things you add to your Google Account with biometric authentication like the fingerprint scanner on your Android phone
some things are just saved card numbers you manually entered. Only the ones that use biometrics or so on actually count as authenticated for the purposes of payment regulations so that they don't need 3D Secure when payments are made with them. It's a bit of a messy area unfortunately