Integración con Alipay
La siguiente guía explica los pasos necesarios para la recepción de pagos mediante Alipay usando la API de Openpay.
Flujo
![Flujo para realizar cargos en Alipay](/img/docs/Alipay_ES.png)
Pasos del proceso:
- El cliente solicita al comercio realizar su pago mediante Alipay
- El comercio utiliza la API de Openpay para iniciar una transacción de tipo Alipay.
- El comercio redirige al cliente a la URL regresada por Openpay
- El cliente inicia sesión en Alipay y realiza el pago de su compra
- La transacción es completada en Openpay
- El comercio es notificado del pago exitoso
- El cliente es redirigido de vuelta al comercio, y el comercio verifica el estado de la transacción
- El comercio debe recibir la notificación de Openpay como método alterno de confirmación
El comercio deberá integrar los pasos 1 al 3 para iniciar la transacción, y el paso 6 para ser notificado de un pago exitoso.
Iniciar transacción (Pasos 1 a 3)
Para iniciar un cargo con Alipay basta con que especifiques que el tipo de cargo que deseas se realizará mediante Alipay. Adicionalmente, debes de proveer una URL a la cual el usuario deberá ser redirigido al terminar el proceso de pago:
Si la llamada es correcta, el servicio regresará una respuesta con la URL a la que el cliente tendrá que ser redirigido para poder realizar su pago mediante Alipay:
Respuesta:
{
"id": "trxxqosgmdsvt3hocoun",
"authorization": null,
"operation_type": "in",
"method": "alipay",
"transaction_type": "charge",
"status": "charge_pending",
"conciliated": false,
"creation_date": "2018-06-20T10:45:20-05:00",
"operation_date": "2018-06-20T10:45:20-05:00",
"description": "Cargo mediante Alipay",
"error_message": null,
"order_id": null,
"due_date": "2018-06-21T10:45:20-05:00",
"payment_method": {
"type": "redirect",
"url": "https://sandbox-api.openpay.mx/v1/mzdtln0bmtms6o3kck8f/charges/trxxqosgmdsvt3hocoun/redirect/"
},
"amount": 100,
"currency": "MXN",
"fee": {
"amount": 5.4,
"tax": 0.86,
"currency": "MXN"
}
}
Pago en Alipay (Paso 4 y 5)
Una vez en el sitio de Alipay, el usuario podrá utilizar su App de Alipay para escanear el código QR mostrado.
![Pago Alipay con QR Code](/img/docs/alipay_qr_code.png)
Alternativamente, el usuario puede iniciar sesión en su cuenta de Alipay y completar el pago.
![Pago Alipay con Login](/img/docs/alipay_login.png)
Confirmación de pago (Paso 6)
Una vez terminado el pago la transacción en Openpay pasará a un estado completado. El usuario será redirigido hacia la URL proporcionada al iniciar la transacción, y una notificación de pago completado será enviada al comercio.
Confirmación mediante la redirección (6a)
Una vez que el usuario haya completado su pago en Alipay, será redirigido a la URL que fue indicada al momento de crear el cargo, con el parámetro id agregado indicando la transacción que se ha completado.
Ejemplo:
https://www.example.com/myUrl?id=trxxqosgmdsvt3hocoun
Al recibir esta respuesta el comercio deberá consultar la transacción en Openpay usando la API, y verificar que efectivamente ha sido completada,
es decir, que el valor de su campo status
sea completed
.
Nota: En caso de que el estado de la transacción no sea
completed
, considera que la transacción aún se encuentra pendiente y podría ser pagada más adelante.
Respuesta:
{
"id": "trxxqosgmdsvt3hocoun",
"authorization": "2018062121001003210200378650",
"operation_type": "in",
"method": "alipay",
"transaction_type": "charge",
"status": "completed",
"conciliated": false,
"creation_date": "2018-06-20T10:45:20-05:00",
"operation_date": "2018-06-20T11:31:25-05:00",
"description": "Cargo mediante Alipay",
"error_message": null,
"order_id": null,
"due_date": "2018-06-21T10:45:20-05:00",
"payment_method": {
"type": "redirect",
"url": "https://sandbox-api.openpay.mx/v1/mzdtln0bmtms6o3kck8f/charges/trxxqosgmdsvt3hocoun/redirect/"
},
"amount": 100,
"currency": "MXN",
"fee": {
"amount": 5.4,
"tax": 0.86,
"currency": "MXN"
}
}
Notificación de pago (6b)
Existe la posibilidad de que el usuario no sea redirigido a la página final del comercio, por ejemplo, en casos en los que el usuario cierre su ventana después del pago o si la comunicación falla durante la redirección.
Para manejar estos casos, adicionalmente a la URL de respuesta, se recomienda que el comercio reciba las notificaciones de pago de Openpay, mediante las cuales será notificado cuando una transacción de Alipay haya sido completada.
Nota: Toma en cuenta que la notificación de pago puede ser recibida antes o después de que el usuario es redirigido de vuelta a tu sitio.
Ejemplo de notificación:
{
"type": "charge.succeeded",
"event_date": "2018-06-20T11:31:24-05:00",
"transaction": {
"id": "trxxqosgmdsvt3hocoun",
"authorization": "2018062121001003210200378650",
"operation_type": "in",
"method": "alipay",
"transaction_type": "charge",
"status": "completed",
"conciliated": false,
"creation_date": "2018-06-20T10:45:20-05:00",
"operation_date": "2018-06-20T11:31:24-05:00",
"description": "Cargo mediante Alipay",
"error_message": null,
"order_id": null,
"due_date": "2018-06-21T10:45:20-05:00",
"payment_method": {
"type": "redirect",
"url": "https://sandbox-api.openpay.mx/v1/mzdtln0bmtms6o3kck8f/charges/trxxqosgmdsvt3hocoun/redirect/"
},
"amount": 100,
"currency": "MXN",
"fee": {
"amount": 5.4,
"tax": 0.86,
"currency": "MXN"
}
}
}
Para más detalle sobre este mensaje consulta la sección de notificaciones
Pruebas en Sandbox
Para realizar pruebas de cargos completados en Sandbox puedes usar las siguientes credenciales de Alipay:
- Usuario: cnbuyer_6456@alitest.com
- Contraseña: b111111
Puedes descargar la App de pruebas de Alipay para Android en el siguiente link: