Google Pay™
Permite que tus clientes realicen sus pagos utilizando Google Pay a través del TPV Virtual de Redsys.
Google Pay permite que los clientes hagan pagos usando cualquier tarjeta de crédito o débito guardada en su cuenta de Google, incluidas aquellas de Google Play, YouTube, Chrome o un dispositivo Android.
Al integrar y hacer uso de Google Pay, se aceptan las condiciones de uso de Google.
NOTA: Esta integración sólo se podrá realizar en el entorno de producción del TPV Virtual.
Conexión por redirección: Aceptación de Google Pay en la web
Puedes empezar a aceptar pagos con Google Pay de forma automática en el TPV Get Checkout ES solicitando la activación del método de pago a tu entidad bancaria. No es necesario ningún desarrollo técnico.
El método de pago será seleccionable en el interfaz del TPV Virtual:
Al pulsar sobre él, se solicitará el login en la cuenta de Google (si es necesario) y se procederá a seleccionar el medio de pago con el que realizar el pago:
Una vez seleccionado, el pago será procesado automáticamente.
Si se quiere forzar la ejecución del método de pago Google Pay (en lugar de mostrar la página de introducción
de datos de tarjeta), se debe enviar en el campo DS_MERCHANT_PAYMETHODS
el valor ‘google’ (sin comillas).
En caso de tener configurado tambien Apple Pay y el dispositivo lo permite, si se quiere forzar la ejecución solamente de uno de estos método de pago
se debe enviar en el campo DS_MERCHANT_PAYMETHODS
el valor ‘xpay’ (sin comillas). Y después el titular pulsará sobre Google Pay
o Apple Pay.
Integración directa por parte del comercio
Para integrar Google Pay en tu app o sitio web, debes seguir la
guía de integración de Google Pay.
Google Pay Tutorial Guide.
Google
Pay Reference Guide.
Incluyendo, como parametrización obligatoria, los siguientes datos:
const tokenizationSpecification = {
type: 'PAYMENT_GATEWAY',
parameters: {
'gateway': 'redsys',
'gatewayMerchantId': 'FUC proporcionado por la entidad'
}
};
allowedCardNetworks = ["AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"];
allowedCardAuthMethods = ["PAN_ONLY", "CRYPTOGRAM_3DS"];
paymentDataRequest.merchantInfo = {
//a merchant ID provided by Google is available for a production environment after approval by Google
merchantId: 'XXXXXXXXXXXXXXXXXXXX',
merchantName: 'Nombre del comercio',
merchantOrigin: 'URL del comercio'
};
Para mayor información, consultar la documentación oficial:
Una vez completada la integración en el entorno de pruebas de Google Pay, se deberá solicitar el acceso a producción. El proceso es el siguiente:
- Solicitar el acceso a producción en la URL https://developers.google.com/pay/api/web/guides/test-and-deploy/request-prod-access.
- Google revisará la información enviada por parte del comercio y podrá proponer modificaciones, que en todo caso, validarán en el mismo entorno de pruebas.
- Google revisará la información aportada por parte del comercio y en caso de aprobación, se permitirá su uso en producción.
En la petición de autorización al TPV Virtual será necesario incorporar los siguientes datos:
Parámetro | Valor |
---|---|
Ds_XPayData | Token devuelto por Google Pay codificado en Base64 (paymentData.paymentMethodData.tokenizationData.token) |
Ds_XPayType | |
Ds_XPayOrigen |
|
Funcionalidad avanzada. Envío de datos descifrados en comercio*
*Funcionalidad avanzada con posibles implicaciones en cumplimiento de PCI-DSS.
El comercio en este caso se encargará de decodificar los datos, obteniendo un objeto con el siguiente formato (ejemplo):
Datos descifrados
Se obtendrá algo similar a esto
{
"gatewayMerchantId": "some-merchant-id",
"messageExpiration": "1561533871082",
"messageId": "AH2Ejtc8qBlP_MCAV0jJG7ErQKeDrkEUt…",
"paymentMethod": "TOKENIZED_CARD",
"paymentMethodDetails":
{
"expirationYear": 2026,
"expirationMonth": 12,
"pan": "489537XXXXXX3478",
"authMethod": "CRYPTOGRAM_3DS",
"eciIndicator": "05",
"cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA="
}
}
Estos datos se enviarán al TPV Virtual en el parámetro Ds_XPayDecodedData , en formato Json:
{
"cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=",
"eciInd": "05",
"expirationDate":"2612",
"token": "489537XXXXXX3478",
"paymentMethod": "TOKENIZED_CARD"
}
Cryptogram = Referencia al criptograma. Se deberá mandar en operaciones con tokenizadas.
EciInd = Referencia al eciIndicator. Opcional, se mandará en operaciones tokenizadas cuando se reciba.
ExpirationDate = Formato AAMM de la tarjeta que envía Google (Para esta tarjeta, habría que enviar 2612).
Token = Referencia al campo pan.
PaymentMethod = Podrá ser unicamente "CARD" o "TOKENIZED_CARD". Aquí se indicará el modo en el que viaja la tarjeta, Si en el mensaje de Google
existe un criptograma, la tarjeta estará tokenizada y habrá que enviar "TOKENIZED_CARD" en este apartado.
En la petición de autorización al TPV Virtual será necesario incorporar los siguientes datos:
Parámetro | Valor |
---|---|
Ds_XPayDecodedData | Token decodificado por parte del comercio con la información relacionada de la transacción en formato JSON. |
Ds_XPayType | |
Ds_XPayOrigen |
|
A continuación se adjunta un ejmplo de petición al TPV Virtual con tarjeta tokenizada y tarjeta sin tokenizar.
{
<DATOSENTRADA>
<DS_MERCHANT_AMOUNT></DS_MERCHANT_AMOUNT>
<DS_MERCHANT_ORDER></DS_MERCHANT_ORDER>
<DS_MERCHANT_MERCHANTCODE></DS_MERCHANT_MERCHANTCODE>
<DS_MERCHANT_CURRENCY></DS_MERCHANT_CURRENCY>
<DS_MERCHANT_TRANSACTIONTYPE></DS_MERCHANT_TRANSACTIONTYPE>
<DS_MERCHANT_TERMINAL>></DS_MERCHANT_TERMINAL>>
<DS_XPAYDECODEDDATA>
{
"cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=",
"eciInd": "05",
"expirationDate":"2612",
"token": "489537XXXXXX3478",
"paymentMethod": "TOKENIZED_CARD"
}
</DS_XPAYDECODEDDATA>
<DS_XPAYTYPE></DS_XPAYTYPE>
<DS_XPAYORIGEN></DS_XPAYORIGEN>
{
<DATOSENTRADA>
<DS_MERCHANT_AMOUNT></DS_MERCHANT_AMOUNT>
<DS_MERCHANT_ORDER></DS_MERCHANT_ORDER>
<DS_MERCHANT_MERCHANTCODE></DS_MERCHANT_MERCHANTCODE>
<DS_MERCHANT_CURRENCY></DS_MERCHANT_CURRENCY>
<DS_MERCHANT_TRANSACTIONTYPE></DS_MERCHANT_TRANSACTIONTYPE>
<DS_MERCHANT_TERMINAL>></DS_MERCHANT_TERMINAL>>
<DS_XPAYDECODEDDATA>
{
"expirationDate":"2612",
"token": "489537XXXXXX3478",
"paymentMethod": "CARD"
}
</DS_XPAYDECODEDDATA>
<DS_XPAYTYPE></DS_XPAYTYPE>
<DS_XPAYORIGEN></DS_XPAYORIGEN>