Noțiuni de bază privind sesiunile
O sesiune de plată, sau pur și simplu o sesiune, este un container temporar pentru câmpurile de solicitare care conțin date sensibile despre o anumită comandă. Puteți utiliza o sesiune pentru a permite plătitorului să furnizeze detalii sensibile de plată direct către eGenius Platform. În acest fel, puteți face referire la sesiune în orice solicitare ulterioară de tranzacție, fără a fi nevoie să gestionați direct detaliile de plată. Când eGenius Platform primește o solicitare de tranzacție care face referire la o sesiune, acesta formează tranzacția finală combinând câmpurile din sesiune cu cele furnizate direct în solicitare.
Utilizarea sesiunilor permite existența unor integrări mai sofisticate în care părți diferite ale solicitării sunt decontate în diferite puncte ale procesului de plată sau prin intermediul unor canale diferite. De exemplu, fluxurile de plată atât pentru Hosted Session, cât și pentru unele metode de plată, cum ar fi ClickToPay, folosesc sesiuni pentru a colecta și stoca informații sensibile despre plătitor. Această caracteristică reduce costurile cu cerințele de conformitate și implementare PCI datorită faptului că dvs. nu manipulați și nici nu stocați niciun fel de detalii de plată pe serverul dvs.
Ciclul de viață al unei singure sesiuni acoperă:
- Crearea sesiunii pe serverul dvs.
- Actualizarea sesiunii pe serverul dvs. cu orice informații non-sensibile pe care doriți să le stocați în sesiune.
- Utilizarea sesiunii pe site-ul web sau aplicația dvs. pentru a permite gateway-ului să adune orice detalii sensibile de plată de la plătitor.
- Referințele la sesiune în tranzacțiile de plată sau alte operațiuni de pe serverul dvs.
O singură sesiune durează de obicei aproximativ 15 minute, timp în care puteți trimite una sau mai multe tranzacții de plată, după cum este necesar.
Crearea unei sesiuni
Puteți crea o sesiune utilizând operațiunea Create Session. Opțional, puteți introduce în solicitare limita de autentificare (session.authenticationLimit), care indică numărul de operațiuni care pot fi trimise către gateway folosind ID-ul sesiunii ca parolă. Dacă limita nu este furnizată, gateway-ul setează o valoare implicită. Puteți utiliza ID-ul sesiunii ca parolă în solicitările care utilizează autentificarea sesiunii. Autentificarea sesiunii vă permite să faceți solicitări API direct din aplicația sau site-ul dvs. web (în loc de server) și poate fi folosită pentru solicitări de autentificare 3D Secure.
Operația CREATE SESSION returnează următoarele câmpuri:
- session.id – ID unic de sesiune pe care trebuie să-l furnizați pentru a face referire la sesiune în solicitările ulterioare.
- session.authenticationLimit – Limita introdusă în solicitare sau valoarea implicită a gateway-ului.
- session.aes256Key - Cheie pe care o puteți utiliza pentru a decripta datele sensibile transmise site-ului dvs. web prin browserul sau dispozitivul mobil al plătitorului.
- session.version – Versiunea sesiunii. Puteți utiliza acest câmp pentru a implementa blocarea optimistă a conținutului sesiunii.
- session.updateStatus - Rezumatul rezultatului ultimei încercări de modificare a sesiunii.
| URL | https://egenius.unicredit.ro/api/rest/version/72/merchant/<merchant_ID>/session |
| Metoda HTTP | POST |
{
"session": {
"authenticationLimit": 25
}
}
Actualizarea unei sesiuni
Puteți adăuga sau actualiza câmpuri de solicitare într-o sesiune utilizând operațiunea Update Session. Acesta permite adăugarea datelor plăților și plătitorilor într-o sesiune care poate deveni ulterior un set de date de intrare pentru determinarea riscului asociat cu plătitorul într-o operațiune de autentificare.
Ca alternativă, puteți actualiza o sesiune utilizând operațiunea UPDATE SESSION FROM WALLET cu ClickToPay.
- Când actualizați o sesiune, nu puteți elimina câmpuri din aceasta, puteți doar să suprascrieți valorile pentru câmpurile existente.
- Operația UPDATE SESSION poate fi utilizată pe serverul dvs. pentru a adăuga câmpuri la sesiune. Pentru a adăuga informații sensibile de plată la o sesiune (permițând plătitorului să le furnizeze direct către gateway), trebuie să utilizați câmpurile găzduite de pe pagina dvs. de plată. Pentru mai multe detalii despre cum să gestionați câmpurile găzduite în cadrul sesiunii, consultați Efectuarea unei plăți.
| URL | https://egenius.unicredit.ro/api/rest/version/72/merchant/<merchant_ID>/session/<session_ID> |
| Metoda HTTP | PUT |
{
"order": {
"amount": 100,
"currency": "USD"
}
}
Utilizarea unei sesiuni într-o tranzacție de plată
După ce ați adăugat toate câmpurile relevante la sesiune (direct de pe serverul dvs. sau folosind câmpurile găzduite de pe pagina dvs. de plată), vă puteți referi la acea sesiune în oricare dintre următoarele operațiuni, folosind câmpul session.id:
- Se recomandă să colectați detaliile sesiunii utilizând tranzacția Retrieve Session și să verificați conținutul sesiunii înainte de a iniția o plată sau o operațiune Tokenization.
- Când vă referiți la o sesiune într-o solicitare de operațiune, dacă o valoare pentru același câmp este furnizată atât în sesiunea la care se face referire, cât și în solicitarea de operațiune în sine, se folosește valoarea din solicitarea de operațiune. Pentru mai multe informații, vedeți Surse de date de plată multiple.
- Verify
- Pay
- Authorize
- Standalone Capture
- Standalone Refund
- Create or Update Token
- Payment Options Inquiry
- Initiate Authentication
- Authenticate Payer
Puteți efectua mai multe operațiuni folosind aceeași sesiune, de exemplu PAY și CREATE OR UPDATE TOKEN. Acest lucru este util dacă doriți să inițiați o plată și să stocați un simbol pentru a-l utiliza în plățile viitoare.
Luarea deciziilor de afaceri pe baza conținutului sesiunii
Dacă luați decizii de operare pe baza datelor obținute dintr-o sesiune, ar trebui să utilizați capacitatea de blocare optimistă a sesiunii. Acest lucru vă asigură că datele pe care le utilizați pentru a lua deciziile sunt aceleași cu cele utilizate pentru procesarea operațiunii de solicitare.
- Calcularea valorii comisionului pe baza tipului de card furnizat de către plătitor.
- Calcularea costului de livrare pe baza adresei de livrare furnizată de către plătitor.
Pentru a utiliza capacitatea de blocare optimistă:
- Preluați conținutul sesiunii utilizând operația RETRIEVE SESSION.
- Observați valoarea session.version din răspuns.
- Luați deciziile de afaceri, după cum este necesar.
- Trimiteți solicitarea de operațiune către gateway și includeți valoarea session.version împreună cu ID-ul sesiunii în solicitare.
Dacă conținutul sesiunii s-a modificat, session.version din solicitarea dvs. nu se potrivește cu versiunea curentă și gateway-ul respinge operația cu error.cause=INVALID_REQUEST.