- Ghid de integrare
- Caracteristici acceptate (Securitate)
- Autentificarea 3-D Secure
Autentificarea 3-D Secure
Autentificarea 3-Domain Secure™ (3-D Secure sau 3DS) este concepută pentru a proteja achizițiile online împotriva fraudei cu carduri de credit, permițându-vă să autentificați plătitorul înainte de a trimite o tranzacție de tip Authorization sau Pay. Autentificarea 3DS funcționează prin redirecționarea plătitorului către emitentul cardului, unde introduce o parolă înregistrată anterior.
Mastercard Gateway acceptă autentificarea 3DS prin Mastercard SecureCode™, Verified by Visa™, J/Secure™, American Express SafeKey™ și Diners Club ProtectBuy™.
Cerințe preliminare
- Trebuie să fiți înregistrat la achizitorul dvs. pentru a utiliza 3DS.
- Trebuie să aveți activată o schemă 3DS în profilul dvs. de comerciant din Mastercard Gateway.
Experiența plătitorului 3DS
Această secțiune descrie un exemplu de proces de validare pentru site-ul magazinului dvs., unde plătitorul este autentificat folosind 3DS.
Procesul de validare pentru o autentificare cu succes este următorul:
- Un plătitor navighează pe site-ul magazinului dvs., selectează unul sau mai multe produse, continuă către pagina de plată și selectează ca metodă de plată un card care acceptă 3DS.
- Verificați înscrierea 3DS: Solicitați Mastercard Gateway să consulte cu schema cardului pentru a afla dacă respectivul card este înscris la 3DS
- Autentificare plătitor: După confirmarea înscrierii cardului, redirecționați browserul plătitorului către pagina de autentificare 3DS a emitentului cardului. Plătitorul introduce parola 3DS și trimite informația. Emitentul returnează rezultatul autentificării către dvs.
- Procesare rezultat ACS: Solicitați Mastercard Gateway să proceseze rezultatul autentificării. Mastercard Gateway vă furnizează detaliile răspunsului de autentificare primit de la emitent.
- Utilizare rezultat 3DS într-o operațiune de plată: Trimiteți plata pentru procesare.
- Afișați pentru plătitor pagina de confirmare a comenzii.
Integrare pentru a utiliza autentificarea 3DS
Această secțiune descrie modul de integrare cu Mastercard Gateway pentru utilizarea 3DS.
Puteți să verificați dacă un card este înscris, furnizând următoarele câmpuri în solicitarea Check 3DS Enrollment:
3DSecureId
: identificatorul dvs. unic pentru această autentificare. Va trebui să includeți acest identificator, identic, în toate operațiunile ulterioare.3DSecure.authenticationRedirect.responseUrl
: adresa URL către care doriți să redirecționați plătitorul după finalizarea procesului de autentificare 3DSorder.amount
: valoarea totală a comenziiorder.currency
: moneda comenziisourceOfFunds.provided.card.*
sausession.id
sausourceOfFunds.token
: detaliile cardului utilizat pentru plată.Simbolul din rețea
Gateway-ul poate procesa simbolurile din rețea în solicitarea Verificare înscriere 3DS. Simbolurile din rețea obținute de la serviciul de creare de simboluri Mastercard Digital Enablement Service (MDES) și furnizorii de servicii de creare de simbol Visa Token Service (VTS) sunt acceptate în prezent.
Dacă ați obținut un simbol în rețea prin integrarea directă în furnizorul de servicii de creare de simboluri, atunci trebuie să furnizați detaliile simbolului folosind următoarele câmpuri (simboluri MDES acceptate începând cu DirectAPI v54 și simboluri VTS acceptate începând cu DirectAPI v55):
sourceOfFunds.type=SCHEME_TOKEN
: Permite gateway-ului să identifice sursa fondurilor, introdusă în solicitare sub forma unui simbol din rețea.sourceOfFunds.provided.card.number
: Simbolul din rețea. Completați valoarea pentru „PAN simbol” în MDES sau „Simbol” în VTS.sourceOfFunds.provided.card.expiry
: (opțional) Data expirării simbolului din rețea.
Dacă ați fost activat pentru crearea de simboluri de rețea de către your payment service provider, orice solicitare către gateway pentru un simbol de gateway va încerca, de asemenea, să genereze un simbol de rețea corespunzător. Gateway-ul va încerca, de asemenea, crearea de simboluri în rețea pentru orice carduri aplicabile deja stocate în depozitul de simboluri de pe gateway. Solicitarea Verificare înscriere 3DS va utiliza simbolul din rețea, dacă este disponibil; în caz contrar, va fi utilizat PAN de finanțare (FPAN) stocat în schimbul simbolului de pe gateway (simboluri MDES acceptate începând cu DirectAPI v55 și simboluri VTS acceptate începând cu DirectAPI v56).
- (Opțional)
3DSecure.goodsDescription:
puteți furniza o scurtă descriere a bunurilor achiziționate. Dacă opțiunea este acceptată de serverul emitentului de control al accesului (ACS), această descriere va fi afișată pe pagina de autentificare prezentată plătitorului.
Gateway-ul returnează rezultatele verificării înscrierii în răspuns:
3DSecure.xid
: un identificator unic al tranzacției, generat de Mastercard Gateway pentru autentificarea 3DS.3DSecure.veResEnrolled
: indică dacă autentificarea plătitorului este disponibilă pentru numărul de card respectiv.
Gateway-ul returnează, de asemenea, response.gatewayRecommendation
, care poate fi utilizat pentru determinarea pasului următor. Această recomandare se bazează pe regulile de filtrare a tranzacțiilor 3DS configurate de dvs. sau your payment service provider.
response.gatewayRecommendation |
Pasul următor |
---|---|
PROCEED | Puteți continua cu autentificarea plătitorului. |
DO_NOT_PROCEED | Nu se continuă autentificarea 3DS a cardului. Puteți oferi plătitorului opțiunea de a încerca o altă metodă de plată. |
Pentru o integrare avansată, puteți determina pasul următor folosind valoarea returnată în câmpul 3DSecure.veResEnrolled
. Acest lucru este rezumat în tabelul de mai jos. Consultați documentația schemei cardului pentru a interpreta câmpul „enrolled” din mesajul de răspuns la verificarea înscrierii (VERes).
3DSecure.veResEnrolled |
Pasul următor |
---|---|
Card înscris | Cardul este înscris la 3DS. Continuați cu autentificarea plătitorului. |
Card neînscris | Cardul nu este înscris la 3DS. Continuați cu operațiunea de plată, incluzând 3DSecureId în solicitare. |
Cardul nu acceptă 3DS | Cardul nu acceptă 3DS și nu puteți continua autentificarea 3DS. |
Autentificare indisponibilă | A apărut o eroare. Continuați cu operațiunea de plată, incluzând 3DSecureId în solicitare. |
Dacă, cardul este înscris (de exemplu, 3DSecure.veResEnrolled = Y)
), atunci trebuie să redirecționați browserul plătitorului către site-ul web al emitentului cardului pentru autentificare. Aceasta se realizează returnând conținutul furnizat în 3DSecure.authenticationRedirect.simple.htmlBodyContent
către browserul plătitorului.
Când procesul de autentificare la site-ul web al emitentului cardului este finalizat, serverul de control al accesului (ACS) al emitentului returnează către dvs. răspunsul de autentificare sub forma unei operațiuni post HTTP către adresa URL de răspuns (3DSecure.authenticationRedirect.responseUrl
) specificată de dvs. în solicitarea de verificare a înscrierii 3DS.
Răspunsul de autentificare pentru plată (PARes), care vă este returnat, este furnizat ca valoare codificată base64. Pentru a decodifica această valoare, transferați PARes în câmpul 3DSecure.paRes
din operațiunea Process ACS Result și trimiteți operațiunea. Gateway-ul furnizează rezultatele autentificării în răspuns:
3DSecure.veResEnrolled
: indică dacă autentificarea plătitorului este disponibilă pentru numărul de card respectiv.3DSecure.paResStatus
: indică rezultatul autentificării plătitorului la emitent. Acest câmp nu este returnat dacă PaRes este nevalid. Consultați documentația relevantă a schemei cardului pentru a determina pasul următor.
Gateway-ul returnează, de asemenea, response.gatewayRecommendation
, care poate fi utilizat pentru determinarea pasului următor. Rețineți că această recomandare se bazează numai pe regulile 3DS de filtrare a tranzacțiilor, configurate de către dvs. sau your payment service provider.
response.gatewayRecommendation |
Pasul următor |
---|---|
PROCEED | Puteți continua cu operațiunea de plată, incluzând 3DSecureId în solicitare. |
DO_NOT_PROCEED | Nu continuați cu trimiterea unei operațiuni de plată. Puteți oferi plătitorului opțiunea de a încerca o altă metodă de plată. |
Pentru o integrare avansată, puteți determina pasul următor folosind valoarea returnată în câmpul 3DSecure.paResStatus
. Acest lucru este rezumat în tabelul de mai jos. Consultați documentația schemei cardului pentru a interpreta câmpul „status” din mesajul PARes.
3DSecure.paResStatus |
Pasul următor |
---|---|
Autentificare realizată cu succes | Autentificarea plătitorului a avut succes. Continuați cu operațiunea de plată, incluzând 3DSecureId în solicitare. |
Autentificare eșuată | Autentificarea plătitorului a eșuat. Trebuie să nu continuați cu operațiunea de plată. Este contrar regulilor schemei să continuați. |
Autentificare încercată | A fost încercată autentificarea plătitorului, dar nu a putut fi finalizată. Continuați cu operațiunea de plată, incluzând 3DSecureId în solicitare. |
Autentificare indisponibilă | A apărut o eroare. Continuați cu operațiunea de plată, incluzând 3DSecureId în solicitare. |
Dacă rezultatul operațiunii Check 3DS Enrollment sau Process ACS indică faptul că puteți continua plata, puteți să inițiați o operațiune Authorize sau Pay. Includeți în solicitare codul 3DSecureId
furnizat în operațiunea Check 3DS Enrollment. Nu este necesar să includeți niciunul dintre parametrii din grupul de parametri 3-D Secure, deoarece gateway-ul va utiliza valoarea 3DSecureId
pentru a căuta rezultatele autentificării pe care le-a salvat în momentul în care ați solicitat procesarea rezultatului autentificării. Gateway-ul va transmite achizitorului informațiile solicitate.
result = ERROR
în răspunsul pentru operațiunea de plată. Puteți oferi plătitorului opțiunea de a încerca o altă metodă de plată.Alte opțiuni
Înainte de a verifica înscrierea la 3DS, puteți trimite o solicitare de cotație de schimb pentru conversie valutară dinamică (DCC) pentru a afla moneda plătitorului și valoarea comenzii în acea monedă. Dacă plătitorul acceptă oferta DCC, trebuie să includeți informațiile DCC în solicitarea Check 3DS Enrollment.
Codul HTML necesar pentru formularul utilizat pentru redirecționarea plătitorului pentru autentificare poate fi generat utilizând una dintre următoarele două metode de generare a paginii:
Simple
: Mastercard Gateway generează formularul HTML. Formularul completat este returnat în cadrul răspunsului Check 3DS Enrollment. Aceasta este opțiunea implicită.Customized
: Vă veți genera propriul formular HTML personalizat, utilizând parametrii furnizați în răspunsul Check 3DS Enrollment.
Răspunsul la operațiunea Check 3DS Enrollment va include informațiile necesare pentru opțiunea selectată.
(Opțional) Personalizați formularul simplu
Puteți să modificați formularul simplu generat prin setarea 3DSecure.authenticationRedirect.pageGenerationMode = SIMPLE
în solicitarea Check 3DS Enrollment, specificând apoi valori pentru unul sau mai mulți parametri:
3DSecure.authenticationRedirect.simple.expectedHtmlEncoding
3DSecure.authenticationRedirect.simple.redirectDisplayBackgroundColor
3DSecure.authenticationRedirect.simple.redirectDisplayContinueButtonText
3DSecure.authenticationRedirect.simple.redirectDisplayTitle
(Opțional) Generați propriul formular personalizat
Puteți să specificați faptul că veți genera propriul dvs. formular setând 3DSecure.authenticationRedirect.pageGenerationMode = CUSTOMIZED
în solicitarea Check 3DS Enrollment. Răspunsul va include următorii parametri:
3DSecure.authenticationRedirect.customized.acsUrl
: Adresa URL a serverului de control al accesului (ACS) al emitentului, unde plătitorul poate fi autentificat.3DSecure.authenticationRedirect.customized.paReq
: Mesajul Solicitare autentificare plătitor (PAReq), ce va fi trimis către ACS pentru a iniția autentificarea plătitorului.
Includeți aceste valori în formularul dvs., împreună cu adresa URL la care să fie returnat plătitorul după finalizarea autentificării.
Un exemplu de formular personalizat este prezentat mai jos.
<!-- Populate the form action attribute with the value returned in the 3DSecure.authenticationRedirect.customized.acsUrl response parameter -->
<form name="3dsRedirect" action="[3DSecure.authenticationRedirect.customized.acsUrl]" method="POST" accept-charset="UTF-8">
<!-- Populate the mandatory PaReq parameter with the value returned in the 3DSecure.authenticationRedirect.customized.paReq response parameter. -->
<input type="hidden" name="PaReq" value="[3DSecure.authenticationRedirect.customized.paReq]"/>
<!-- Populate the mandatory TermUrl value with the URL to which you want the payer returned when the authentication process has completed. This should be the same value as supplied in the 3DSecure.authenticationRedirect.responseUrl parameter to the CHECK_ENROLLMENT request. -->
<input type="hidden" name="TermUrl" value="https://merchant.com/3ds/return"/>
<!-- The ACS will echo the contents of the mandatory MD parameter when the payer is returned to the URL specified in the TermUrl parameter. You can use this parameter to establish a link between the ACS request and response. -->
<input type="hidden" name="MD" value="[mdvalue]"/>
<input type="submit" value="Click here to continue" class="button">
</form>
Referință API personalizare formular la Check 3DS Enrollment[REST] [NVP]
Dacă ați utilizat un MPI 3DS extern pentru a autentifica plătitorul, trebuie să furnizați informațiile referitoare la autentificare în grupul de parametri de autentificare pentru operațiunea Pay sau Authorize.
Toate câmpurile sunt opționale, deoarece starea de autentificare a tranzacției indică dacă acestea v-au fost sau nu furnizate de către MPI 3DS extern. Dacă, însă, dispuneți de aceste date, este recomandat să le furnizați.
authentication.3ds.acsEci
: Indicatorul de comerț electronic care vă poate fi returnat în mesajul de răspuns de autentificare.authentication.3ds.authenticationToken
: Valoarea codificată base64 generată de emitentul cardului care vă poate fi returnată în mesajul de răspuns de autentificare.authentication.3ds.transactionId
: Un identificator unic al tranzacției, generat de gateway pentru autentificarea 3DS. Acest câmp corespunde XID, care este un identificator generat de gateway în numele comerciantului. Un XID trimis în acest câmp trebuie să aibă formatul base64.authentication.3ds1.paResStatus:
Indică rezultatul autentificării plătitorului la emitent.authentication.3ds1.veResEnrolled:
Indică dacă autentificarea plătitorului este disponibilă sau nu pentru numărul de card furnizat.
authentication.3ds.authenticationToken
.Referință API 3DS pre-autentificat la autorizare [REST] [NVP]
Dacă doriți să recuperați rezultatele autentificării, în orice moment, utilizați operațiunea Retrieve 3DS Result.
Întrebări frecvente
Gateway-ul furnizează starea de înscriere și starea de autentificare în câmpul 3DSecure.veResEnrolled
, respectiv câmpul 3DSecure.paResStatus
.
VERes este mesajul returnat de schema cardului către gateway ca răspuns la o solicitare de verificare a înscrierii la 3DS. PARes este mesajul de răspuns returnat către gateway ca răspuns la o solicitare de autentificare a plătitorului.
Consultați documentația schemei cardului pentru a interpreta valorile returnate în câmpurile 3DSecure.veResEnrolled
și 3DSecure.paResStatus
.
Dacă ați furnizat detalii 3DS pentru o tranzacție, căutați comanda sau tranzacția în Merchant Administration. Vizualizați detaliile comenzii, apoi selectați legătura pentru a vizualiza detaliile de autentificare.
Dacă doriți să vizualizați detaliile de autentificare pentru o autentificare pentru care nu ați continuat cu plata (de exemplu, autentificarea a eșuat), atunci utilizați opțiunea de căutare Autentificări în Merchant Administration.
Da, puteți evita autentificarea 3DS pentru plătitori atunci când asiguratorul extern al riscului consideră că plata are un nivel scăzut de risc. Pentru mai multe informații, consultați Dynamic 3DS.
Vă puteți testa integrarea pentru realizarea autentificării 3DS prin intermediul Mastercard Gateway, utilizând emulatorul ACS. Acesta vă permite să selectați un anumit rezultat de autentificare 3DS (returnat în răspunsul la tranzacție în câmpul 3DSecure.paResStatus
).