Tengo un error al integrar la opción de pago de GPay India en un sitio web. El pago falla con un mensaje de error críptico.
He revisado la documentación de integración . Esta integración utiliza la interfaz desolicitud de pago que genera un error con un mensaje extraño. El código que hace esta llamada es el siguiente:
request.show() .then(function (instrument) { // Process payment - code never reaches here window.clearTimeout(paymentTimeout); processResponse(instrument); }) .catch(function (err) { console.log(err); // Error here! }); Al llamar a request.show() , el sitio web nos redirige a la aplicación Google Pay, donde verificamos los detalles y el monto del beneficiario. Al proceder a pagar, nos aparece el siguiente error en la app:
Su dinero no ha sido debitado
Su pago ha sido rechazado
El pago a la misma ID de UPI a través de otras aplicaciones de pago de UPI se realiza sin problemas. Al descartar este mensaje, volvemos al sitio web donde recibimos el siguiente error:
DOMException: la aplicación de pago devolvió un resultado no válido. Faltan extras de intención.
Probé esto en diferentes dispositivos que tienen diferentes cuentas de GPay con el mismo resultado. Los parámetros pasados a esta solicitud de pago son los siguientes:
const supportedInstruments = [{ supportedMethods: ['https://tez.google.com/pay'], data: { pa: 'xxxx@xxx', // The UPI ID pn: 'Merchant Name', // The Merchant name tr: trId, // A unique UUID url: 'https://xxxxxxx', // The URL of the payment page mc: '4829', // The merchant category tn: 'Purchase in Merchant', // Optional note }, }]; const details = { total: { label: 'Total', amount: { currency: 'INR', value: donationValue, }, }, displayItems: [{ label: 'Donation Amount', amount: { currency: 'INR', value: donationValue, }, }], };Esto cubre todos los parámetros requeridos para realizar la solicitud de pago. También verifiqué lo siguiente a través de Google Pay Business Console:
No hay inconsistencias en ninguna parte. La aplicación GPay instalada es la última versión. Se agradece cualquier pista sobre dónde podría estar el error.