Această pagină descrie modul de integrare pe gateway pentru utilizarea autentificării RuPay cu ajutorul API de autentificare.
Diagrama de mai jos ilustrează procesul de autentificare pentru o plată în cazul căreia plătitorul este autentificat prin RuPay PaySecure.
Procesul de autentificare pentru o autentificare RuPay efectuată cu succes este următorul:
Această secțiune descrie modul de integrare pe gateway pentru utilizarea autentificării RuPay a plătitorului.
Operațiunea Initiate Authentication este utilizată pentru a determina dacă autentificarea RuPay a plătitorului este disponibilă pentru comerciant și cardul respectiv. Dacă tipul cardului este RuPay, gateway-ul determină eligibilitatea codului BIN al cardului RuPay pentru tranzacțiile de comerț electronic.
Referința API Initiate Authentication [REST] [NVP]
Puteți iniția autentificarea RuPay completând următoarele câmpuri în solicitarea Initiate Authentication:
Dacă autentificarea RuPay a plătitorului este disponibilă, gateway-ul returnează authentication.version=RUPAY
și următoarele câmpuri:
response.gatewayCode
transaction.authenticationStatus
: Furnizează mai multe detalii privind starea de autentificare.result
response.gatewayRecommendation
Pentru a determina pasul următor, verificați recomandarea gateway-ului, furnizată în câmpul response.gatewayRecommendation.
response.gatewayRecommendation |
Pasul următor |
---|---|
PROCEED | Puteți continua cu autentificarea plătitorului folosind operațiunea Authenticate Payer. |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | Solicitați plătitorului detalii alternative de plată (de exemplu, un card nou sau altă metodă de plată) și retrimiteți solicitarea cu noile detalii. Nu retrimiteți aceeași solicitare. |
Tabelul de mai jos prezintă răspunsul Initiate Authentication pentru diferitele scenarii de autentificare RuPay.
Stare | 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://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{RuPayAuthId} |
Metoda 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" }
Acolo unde răspunsul la operațiunea Initiate Authentication a indicat disponibilitatea autentificării (authentication.version=RUPAY) pentru cardul RuPay, puteți trimite solicitarea Authenticate Payer. Aceasta trebuie invocată atunci când plătitorul face clic pe butonul „Plătiți acum” de pe pagina de validare.
Operațiunea Authenticate Payer transmite în mod securizat informațiile necesare, inclusiv numărul cardului, între banca achizitoare și RuPay PaySecure. PaySecure returnează un ID unic al tranzacției (tran_ID), care poate fi utilizat pentru operațiunile de autorizare sau plată ulterioare.
Referința API Authenticate Payer [REST] [NVP]
Trebuie să trimiteți această operațiune completând următoarele câmpuri obligatorii:
Operațiunea Authenticate Payer returnează următoarele câmpuri:
response.gatewayCode
transaction.authenticationStatus
: Furnizează mai multe detalii privind starea de autentificare.authentication.payerInteraction
: Indică dacă interacțiunea cu plătitorul a fost utilizată pentru finalizarea procesului de autentificare.result
authentication.redirect.html
: Cod de creare a IU de autentificare. Introduceți acest conținut într-un element <DIV> gol care reprezintă ultimul element din <CORPUL> paginii de plată.response.gatewayRecommendation
Pentru a determina pasul următor, verificați recomandarea gateway-ului, furnizată în câmpul response.gatewayRecommendation.
response.gatewayRecommendation |
Pasul următor |
---|---|
PROCEED | Puteți continua cu finalizarea procesului de autentificare, permițând plătitorului să răspundă la autentificarea OTP solicitată de emitent. |
DO_NOT_PROCEED_ABANDON_ORDER | Nu trimiteți din nou aceeași solicitare. Furnizorul de servicii de plată, schema sau emitentul vă solicită să abandonați comanda. |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | Solicitați plătitorului detalii alternative de plată (de exemplu, un card nou sau altă metodă de plată) și retrimiteți solicitarea cu noile detalii. Nu retrimiteți aceeași solicitare. |
Dacă gateway-ul recomandă PROCEED
, atunci lipiți conținutul câmpului authentication.redirect.html
din răspuns pe pagina afișată pentru plătitor.
Tabelul de mai jos prezintă răspunsul Initiate Authentication pentru diferitele scenarii de autentificare RuPay.
Stare | 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 |
Gateway-ul redirecționează browserul plătitorului către IU de validare OTP (folosind authentication.redirect.html
), unde plătitorului i se va solicita să introducă o OTP validă, după care plătitorul va fi redirecționat înapoi către site-ul dvs. web. Următoarele câmpuri sunt returnate în callback odată ce browserul plătitorului revine la site-ul dvs web.
Puteți determina rezultatul autentificării folosind valoarea returnată în câmpul response.gatewayRecommendation
.
response.gatewayRecommendation |
Pasul următor |
---|---|
PROCEED | Puteți continua cu plata, deoarece autentificarea a fost efectuată. Dacă autorizarea plății a reușit, cu rambursarea fondurilor și, dacă este cazul, cu expedierea bunurilor. |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | Solicitați plătitorului detalii alternative de plată (de exemplu, un card nou sau altă metodă de plată) și retrimiteți solicitarea cu noile detalii. Nu retrimiteți aceeași solicitare. |
Gateway-ul actualizează câmpurile răspunsului Authenticate Payer după apelarea rezultatelor din cadrul autentificării OTP.
Stare | 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://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{RuPayAuthId} |
Metoda 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" }
Dacă rezultatul operațiunii Authenticate Payer indică faptul că puteți continua plata (response.gatewayRecommendation=PROCEED), puteți să inițiați o operațiune Authorize sau Pay. În plus față de câmpurile standard, trebuie să completați următoarele câmpuri:
Referință API ID tranzacție de autentificare [REST] [NVP]
URL | https://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid} |
Metoda 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" }
Copyright © 2023 UniCredit Bank