#groarq - Google Pay

1 messages ยท Page 1 of 1 (latest)

exotic relic
#

๐Ÿ‘‹ Thanks for reaching out

#

You are using what integration? reactnative or web ?

old dagger
#

Web

exotic relic
#

Meanwhile, can you share a failing PaymentIntent Id or a request Id ?

old dagger
#

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

exotic relic
#

Thanks juste give me couple of minutes while analyzing

old dagger
#

sure! fingers crossed, we truly have no idea what to do next

exotic relic
#

Thanks for your patience, still analyzing

stuck socket
#

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

old dagger
#

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')

stuck socket
#

you should do what's in the docs where it checks for if the status is requires_action after the first attempt to confirm :

old dagger
#

oh, so we should just trigger confirmCardPayment once more?

#

so it is something like confirmCardPayment -> if requires_action then confirmCardPayment again?

stuck socket
#

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

old dagger
#

Thank you very much for the help!

#

Have a great day, hopefully everything will work when we introduce these changes ๐Ÿ™‚ ๐ŸŽ‰

stuck socket
#

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