Integration Types
Otras características
Card Payments
Mobile Wallets
Alternative Payment Methods
Resources
Esta página describe cómo realizar la integración al motor de pagos para usar la autenticación de RuPay utilizando la API de autenticación.
El siguiente diagrama ilustra el flujo de autenticación para un pago en el que el pagador se autentica utilizando RuPay PaySecure.
El flujo de autenticación para una autenticación de RuPay con éxito es el siguiente:
En esta sección se describe cómo realizar la integración al motor de pagos para usar la autenticación del pagador de RuPay.
La operación Initiate Authentication se utiliza para determinar si la autenticación del pagador de RuPay está disponible para el negocio para una determinada tarjeta. Si el tipo de tarjeta es RuPay, el motor de pagos determina la aptitud del BIN de la tarjeta RuPay para transacciones de comercio electrónico.
Referencia de la API de Initiate Authentication [REST] [NVP]
Para iniciar la autenticación de RuPay, complete los siguientes campos en la solicitud Initiate Authentication:
Si la autenticación del pagador de RuPay está disponible, el motor de pagos devuelve authentication.version=RUPAY
y los siguientes campos:
response.gatewayCode
transaction.authenticationStatus
: proporciona más detalles sobre el estado de autenticación.result
response.gatewayRecommendation
Para determinar el siguiente paso, verifique las recomendaciones del motor de pagos que se proporcionan en el campo response.gatewayRecommendation.
response.gatewayRecommendation |
Siguiente paso |
---|---|
PROCEED | Puede proceder a autenticar al pagador utilizando la operación Authenticate Payer. |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | Solicite al pagador detalles de pago alternativos (por ejemplo, una tarjeta nueva u otro método de pago) y vuelva a enviar la solicitud con los nuevos detalles. No vuelva a enviar la misma solicitud. |
La tabla siguiente muestra la respuesta de Initiate Authentication para los diversos escenarios de autenticación de Rupay.
Estado | response.gatewayRecommendation |
transaction.authenticationStatus |
response.gatewayCode |
result |
---|---|---|---|---|
|
PROCEED | AUTHENTICATION_AVAILABLE | AUTHENTICATION_IN_PROGRESS | SUCCESS |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_NOT_SUPPORTED | DECLINED | FAILURE |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_UNAVAILABLE | DECLINED | FAILURE |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_NOT_SUPPORTED | DECLINED | FAILURE |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_UNAVAILABLE | DECLINED | FAILURE |
URL | https://evopaymentsmexico.gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{RuPayAuthId} |
Método HTTP | PUT |
{ "apiOperation": "INITIATE_AUTHENTICATION", "order": { "currency": "INR" }, "sourceOfFunds": { "provided": { "card": { "number": "6074829900004946" } } } }
{ "authentication": { "version": "RUPAY" }, "merchant": "TESTMERCHANT", "order": { "authenticationStatus": "AUTHENTICATION_AVAILABLE", "creationTime": "2019-06-12T07:42:39.070Z", "currency": "INR", "id": "802014086", "merchantCategoryCode": "5411", "status": "AUTHENTICATION_INITIATED", "totalAuthorizedAmount": 0, "totalCapturedAmount": 0, "totalRefundedAmount": 0 }, "response": { "gatewayCode": "AUTHENTICATION_IN_PROGRESS", "gatewayRecommendation": "PROCEED" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "number": "607484xxxxxx4936", "scheme": "RUPAY" } }, "type": "CARD" }, "timeOfRecord": "2019-06-12T07:42:39.070Z", "transaction": { "amount": 0, "authenticationStatus": "AUTHENTICATION_AVAILABLE", "currency": "INR", "id": "8286737", "type": "AUTHENTICATION" }, "version": "72" }
Cuando la respuesta de Initiate Authentication ha indicado que la autenticación debe estar disponible (authentication.version=RUPAY) para la tarjeta RuPay, puede enviar la solicitud Authenticate Payer. Debe invocar esta operación cuando el pagador haga clic en el botón "Pagar ahora" en la página de pago.
La operación Authenticate Payer intercambia de forma segura la información necesaria, incluido el número de tarjeta, entre el banco de su adquirente y RuPay PaySecure. PaySecure devuelve un ID de transacción único (tran_ID), que puede usarse en posteriores operaciones Authorization o Pay.
Referencia de la API de Authenticate Payer [REST] [NVP]
Debe enviar esta operación proporcionando los siguientes campos obligatorios:
Authenticate Payer devuelve los siguientes campos:
response.gatewayCode
transaction.authenticationStatus
: proporciona más detalles sobre el estado de autenticación.authentication.payerInteraction
: indica si la interacción del pagador se usó para completar el proceso de autenticación.result
authentication.redirect.html
: código para crear la IU de autenticación. Escriba este contenido en un elemento <DIV> vacío, que sea el último elemento del cuerpo ( <BODY>) de su página de pago.response.gatewayRecommendation
Para determinar el siguiente paso, verifique las recomendaciones del motor de pagos que se proporcionan en el campo response.gatewayRecommendation.
response.gatewayRecommendation |
Siguiente paso |
---|---|
PROCEED | Puede proceder a completar el proceso de autenticación permitiendo que el pagador responda a la Autenticación con OTP solicitada por el emisor. |
DO_NOT_PROCEED_ABANDON_ORDER | No vuelva a enviar la misma solicitud. El proveedor de servicios de pago, el esquema o el emisor le solicitan que abandone el pedido. |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | Solicite al pagador detalles de pago alternativos (por ejemplo, una tarjeta nueva u otro método de pago) y vuelva a enviar la solicitud con los nuevos detalles. No vuelva a enviar la misma solicitud. |
Si el motor de pagos le recomienda continuar (PROCEED
), pegue el contenido del campo de respuesta authentication.redirect.html
en la página que se muestra al pagador.
La tabla siguiente muestra la respuesta de Initiate Authentication para los diversos escenarios de autenticación de Rupay.
Estado | response.gatewayRecommendation |
transaction.authenticationStatus |
authentication.payerInteraction |
response.gatewayCode |
result |
---|---|---|---|---|---|
|
PROCEED | AUTHENTICATION_PENDING | REQUIRED | PENDING | PENDING |
|
DO_NOT_PROCEED_ABANDON_ORDER | AUTHENTICATION_REJECTED | NOT_REQUIRED | DECLINED | FAILURE |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_UNAVAILABLE | NOT_POSSIBLE | DECLINED | FAILURE |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_UNAVAILABLE | NOT_POSSIBLE | DECLINED | FAILURE |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_UNAVAILABLE | NOT_POSSIBLE | DECLINED | FAILURE |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_UNAVAILABLE | NOT_POSSIBLE | DECLINED | FAILURE |
El motor de pagos redirige el explorador del pagador a la IU de validación con OTP del emisor (usando authentication.redirect.html
), donde se solicitará al pagador que introduzca una OTP válida, después de lo cual se le redirigirá a su sitio web. Los siguientes campos se devuelven en la devolución de llamada cuando el explorador del pagador se ha devuelto a su sitio web.
Puede determinar el resultado de la autenticación utilizando el valor devuelto en el campo response.gatewayRecommendation
.
response.gatewayRecommendation |
Siguiente paso |
---|---|
PROCEED | Puede proceder al pago porque la autenticación fue correcta. Si la autorización para el pago fue correcta, continúe con la captura de los fondos y, si procede, envíe la mercancía. |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | Solicite al pagador detalles de pago alternativos (por ejemplo, una tarjeta nueva u otro método de pago) y vuelva a enviar la solicitud con los nuevos detalles. No vuelva a enviar la misma solicitud. |
El motor de pagos actualiza los campos de respuesta de autenticación del pagador después de recuperar los resultados de la autenticación con OTP.
Estado | response.gatewayRecommendation |
transaction.authenticationStatus |
authentication.payerInteraction |
response.gatewayCode |
result |
---|---|---|---|---|---|
|
PROCEED | AUTHENTICATION_SUCCESSFUL | REQUIRED | APPROVED | SUCCESS |
|
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | AUTHENTICATION_FAILED | REQUIRED | DECLINED | FAILURE |
URL | https://evopaymentsmexico.gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{RuPayAuthId} |
Método HTTP | PUT |
{ "apiOperation": "AUTHENTICATE_PAYER", "order": { "amount": "33.00", "currency": "INR" }, "sourceOfFunds": { "provided": { "card": { "number": "6074849900004936", "expiry": { "month": "01", "year": "39" }, "securityCode": "111" } } }, "device": { "ipAddress": "103.14.160.193", "browser": "MOZILLA/4.0 (COMPATIBLE; MSIE 5.0; WINDOWS 95)", "browserDetails": { "acceptHeaders": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" } }, "authentication": { "redirectResponseUrl": "<host>/merchantSimulator/jsp/simple/output.jsp" } }
{ "authentication": { "method": "DYNAMIC", "payerInteraction": "REQUIRED", "redirectHtml": "document.getElementById('redirectToNpciForm').submit();", "version": "RUPAY" }, "merchant": "TESTMERCHANT", "order": { "authenticationStatus": "AUTHENTICATION_PENDING", "creationTime": "2019-06-12T07:53:52.190Z", "currency": "INR", "id": "983684879", "merchantCategoryCode": "5411", "status": "AUTHENTICATION_INITIATED", "totalAuthorizedAmount": 0, "totalCapturedAmount": 0, "totalRefundedAmount": 0 }, "response": { "gatewayCode": "PENDING", "gatewayRecommendation": "PROCEED" }, "result": "PENDING", "sourceOfFunds": { "provided": { "card": { "expiry": { "month": "1", "year": "39" }, "number": "607484xxxxxx4936", "scheme": "RUPAY" } }, "type": "CARD" }, "timeOfRecord": "2019-06-12T07:53:52.190Z", "transaction": { "acquirer": { "merchantId": "TESTMERCHANT" }, "amount": 33, "authenticationStatus": "AUTHENTICATION_PENDING", "currency": "INR", "id": "745991098", "type": "AUTHENTICATION" }, "version": "72" }
Cuando el resultado de la operación Authenticate Payer indica que se puede proceder con el pago (response.gatewayRecommendation=PROCEED), puede iniciar una operación Authorize o Pay. Además de los campos estándar, debe proporcionar los siguientes campos:
Referencia de la API de ID de transacción de autenticación [REST] [NVP]
URL | https://evopaymentsmexico.gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid} |
Método HTTP | PUT |
{ "apiOperation":"PAY", "order":{ "amount":"100", "currency":"INR" }, "sourceOfFunds":{ "provided":{ "card":{ "expiry":{ "month":"01", "year":"39" }, "number":"6074819900004939", "securityCode":"111" } }, "type":"CARD" }, "authentication": { "transactionId":"8286737" } }
{ "authentication": { "transactionId": "471707320" }, "authorizationResponse": { "transactionIdentifier": "500000000000000000000002347854" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "TESTMERCHANT", "order": { "amount": 100.00, "chargeback": { "amount": 0, "currency": "INR" }, "creationTime": "2019-07-03T09:08:28.309Z", "currency": "INR", "id": "802014086", "merchantCategoryCode": "4511", "status": "CAPTURED", "totalAuthorizedAmount": 100.00, "totalCapturedAmount": 100.00, "totalRefundedAmount": 0.00 }, "response": { "acquirerCode": "00", "acquirerMessage": "Success", "gatewayCode": "APPROVED" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "RUPAY", "expiry": { "month": "1", "year": "39" }, "fundingMethod": "DEBIT", "issuer": "DMBB9990001", "number": "607481xxxxxx4939", "scheme": "RUPAY", "storedOnFile": "NOT_STORED", "tags": "{\"RUPAY_BIN_STATUS_FLAG\":\"ACTIVE\",\"RUPAY_BIN_MESSAGE_TYPE\":\"SMS\"}" } }, "type": "CARD" }, "timeOfRecord": "2019-07-03T09:08:28.309Z", "transaction": { "acquirer": { "id": "<acquirer_id>", "merchantId": "423555234334123" }, "amount": 100.00, "authorizationCode": "143835", "currency": "INR", "frequency": "SINGLE", "id": "108379916", "receipt": "918409000035", "source": "INTERNET", "terminal": "88011019", "type": "PAYMENT" }, "version": "72" }