Integration Types
Alte caracteristici
Card Payments
Mobile Wallets
Alternative Payment Methods
Resources
Folosind procesul de Validare cu PayPal sau Plată cu PayPal, puteți configura un acord de facturare pentru un plătitor, care vă va permite să inițiați o tranzacție de referință (abonament/plată periodică sau la cerere) pe baza acestui acord de facturare, fără aprobări suplimentare din partea plătitorului. Plătitorul se autentifică în PayPal o singură dată pentru a își da acordul. După aprobarea unui acord de facturare, nu mai este necesar ca plătitorul să se autentifice în PayPal pentru a confirma plățile ulterioare.
Ca cerință preliminară, trebuie să contactați PayPal pentru a activa permisiunea de procesare a acordurilor de facturare și a tranzacțiilor de referință.
Procesul de validare este după cum urmează:
Tokenize Browser Payment
către gateway și veți redirecționa plătitorul către adresa URL PayPal returnată în răspuns. Consultați Inițierea acordului de facturare. La primul pas, creați o sesiune trimițând o solicitare Create Session
către gateway de pe serverul web. Operația returnează un ID de sesiune pe care îl puteți utiliza pentru a referenția sesiunea respectivă.
Referință API Create Session[REST][NVP]
Completați următoarele câmpuri în solicitarea Tokenize Browser Payment
pentru a iniția un acord de facturare și a personaliza experiența plătitorului, prezentată de PayPal.
token
: Simbolul pe care doriți să îl creați sau să îl actualizați. Detaliile acordului sunt stocate pentru simbolul respectiv. sourceOfFunds.type = PAYPAL
session.id
: Identificatorul sesiunii de plată (returnat la Pasul 1) care va fi actualizat cu simbolul care conține detaliile acordului.sourceOfFunds.provided.paypal.billingAgreement.description
: Descrierea dvs. pentru acordul de facturare PayPal. Această descriere este afișată pentru plătitor atunci când acestuia i se solicită să aprobe acordul de facturare.sourceOfFunds.provided.paypal.billingAgreement.name
: Numele dvs. pentru acordul de facturare PayPal.sourceOfFunds.provided.paypal.billingAgreement.cardinality
: Indică numărul de acorduri de facturare între dvs. și plătitorul respectiv. Puteți seta această valoare la:MULTIPLE
: Indică faptul că aveți mai multe acorduri de facturare cu plătitorul respectiv. Acest lucru înseamnă că un nou acord va fi returnat în răspunsul la fiecare solicitare.SINGLE
: Indică faptul că aveți un singur acord de facturare cu plătitorul respectiv. Acest lucru înseamnă că același acord va fi returnat în răspunsul la fiecare solicitare.browserPayment.returnUrl
: Adresa URL la care doriți să direcționați browserul plătitorului după aprobarea acordului de facturare cu PayPal.browserPayment.paypal.agreementConfirmation
: Indică acțiunea pe care PayPal o afișează plătitorului înainte ca acesta să fie redirecționat înapoi pe site-ul dvs. web. Puteți seta această valoare la: AGREE
: Această acțiune este afișată ca „Acceptare și continuare” pe site-ul web PayPal. Acest lucru înseamnă că, după ce plătitorul aprobă acordul de facturare, iar browserul acestuia revine pe site-ul dvs web, nu veți procesa o plată bazată pe acordul de facturare respectiv în acel moment.AGREE_AND_PAY
: Această acțiune este afișată ca „Acceptare și plată” pe site-ul web PayPal. Acest lucru înseamnă că, după ce plătitorul aprobă acordul de facturare, iar browserul acestuia revine pe site-ul dvs web, veți procesa o plată bazată pe acordul de facturare respectiv.browserPayment.paypal.displayShippingAddress
: Indică dacă doriți ca PayPal să afișeze adresa de livrare pentru plătitor pe site-ul web PayPal. Puteți seta această valoare la „true” sau „false”. browserPayment.paypal.overrideShippingAddress
: Indică dacă doriți să permiteți plătitorului să modifice adresa de livrare pentru plata efectuată pe site-ul web PayPal. Puteți seta această valoare la „true” sau „false”.După trimiterea acestei solicitări, trebuie să redirecționați browserul plătitorului către adresa URL returnată în câmpul browserPayment.redirectUrl
.
Referință API Tokenize Browser Payment [REST][NVP]
Iată un exemplu de solicitare Tokenize Browser Payment
în care simbolul este generat prin strategia „Furnizat de comerciant” de generare a simbolurilor.
URL | https://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId} |
Metoda HTTP | POST |
{ "apiOperation": "TOKENIZE_BROWSER_PAYMENT", "browserPayment": { "paypal": { "agreementConfirmation": "AGREE_AND_PAY", "displayShippingAddress": true, "overrideShippingAddress": false }, "returnUrl": "https://<return_url>" }, "correlationId": "f4d8b752-4f68-47c6-81e7-2ee488f821a0", "session": { "id": "SESSION0002567768179L82204264I7" }, "shipping": { "address": { "city": "<city>", "country": "<country>", "postcodeZip": "<post_code>", "stateProvince": "<state>", "street": "test1", "street2": "test2" }, "contact": { "firstName": "<merchant_first_name>", "lastName": "<merchant_last_name>" } }, "sourceOfFunds": { "provided": { "paypal": { "billingAgreement": { "description": "Test Billing Agreement", "name": "Test Name", "cardinality": "MULTIPLE" } } }, "type": "PAYPAL" }, "token": "975890899756" }
{ "browserPayment": { "redirectUrl": "https://<redirect_url>" }, "correlationId": "f4d8b752-4f68-47c6-81e7-2ee488f821a0", "merchant": "<test_merchant_Id>", "response": { "gatewayCode": "NO_VERIFICATION_PERFORMED" }, "result": "SUCCESS", "session": { "id": "SESSION0002567768179L82204264I7" } }
Simbolul, fie cel generat de gateway, fie cel furnizat de dvs. în solicitarea Tokenize Browser Payment
, este stocat într-o sesiune de plată și este returnat în răspunsul Tokenize Browser Payment
.
Dacă sunteți configurat pentru simboluri generate de gateway, trimiteți imediat o solicitare Retrieve Session
folosind session.id
și obțineți valoarea returnată în câmpul sourceOfFunds.token
. Dacă plătitorul nu a putut configura cu succes acordul de facturare, simbolul nu este returnat.
Dacă sunteți configurat pentru simboluri furnizate de comerciant, mergeți la Pasul 3: Apelarea detaliilor acordului de facturare.
Iată un exemplu de solicitare Retrieve Session pentru un ID de sesiune obținut din răspunsul Tokenize Browser Payment
, unde simbolul a fost generat de gateway.
URL | https://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/session/{sessionId} |
Metoda HTTP | GET |
{ "merchant": "<test_merchant>", "session": { "id": "SESSION0002567768179L82204264I7", "updateStatus": "SUCCESS", "version": "82cbc9f602" }, "sourceOfFunds": { "token": "975890899756" }, "version": "72" }
Pentru a continua personalizarea experienței plătitorilor la PayPal, puteți furniza parametri suplimentari atunci când configurați acordul la PayPal.
Tokenize Browser Payment
și configurația acordului de facturare PayPal astfel încât să creați experiența dorită a plătitorului în timpul aprobării acordului de facturare.Înainte de a continua cu o plată bazată pe acordul de facturare, trebuie să verificați dacă simbolul care conține detaliile acordului este valid. Aceasta deoarece plătitorul poate alege să anuleze acordul de facturare pe site-ul web PayPal, caz în care simbolul va deveni nevalid. Dacă plata continuă utilizând un simbol nevalid, tranzacția va eșua.
Atunci când plătitorul a revenit la pagina specificată de browserPayment.returnUrl
, puteți remite o solicitare Retrieve Token
. Trebuie să furnizați ID-ul simbolului pentru a apela detaliile acordului de facturare. Detaliile următoare sunt returnate dacă plătitorul s-a înregistrat cu succes pentru acordul de facturare. În caz contrar, este returnată eroarea „simbol negăsit”.
sourceOfFunds.provided.paypal.billingAgreement.cardinality
sourceOfFunds.provided.paypal.billingAgreement.description
sourceOfFunds.provided.paypal.billingAgreement.id
sourceOfFunds.provided.paypal.billingAgreement.name
sourceOfFunds.provided.paypal.payerId
sourceOfFunds.provided.paypal.accountEmail
sourceOfFunds.provided.paypal.accountHolder
Iată un exemplu de solicitare Retrieve Token pentru un ID de simbol obținut din răspunsul Retrieve Session
sau furnizat de dvs. în solicitarea Tokenize Browser Payment
.
URL | https://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/token/{tokenId} |
Metoda HTTP | GET |
{ "repositoryId": "TEST8108F6CF-6899-42", "result": "SUCCESS", "shipping": { "address": { "city": "<city>", "country": "<country>", "postcodeZip": "<pos_code>", "stateProvince": "<state>", "street": "test1", "street2": "test2" }, "contact": { "firstName": "<merchant_first_name>", "lastName": "<merchant_last_name>" } }, "sourceOfFunds": { "provided": { "paypal": { "accountEmail": "test@test.com", "accountHolder": "FirtName LastName", "billingAgreement": { "cardinality": "MULTIPLE", "description": "Test Billing Agreement", "id": "B-NGxIf31554266975867", "name": "Test Name" }, "payerId": "K4ZK9KRAXRVNA" } }, "type": "PAYPAL" }, "status": "VALID", "token": "975890899756", "usage": { "lastUpdated": "2019-04-03T04:49:48.029Z", "lastUpdatedBy": "<test_merchant>", "lastUsed": "2019-04-03T04:49:48.029Z" }, "verificationStrategy": "NONE" }
Dacă acordul de facturare este aprobat și valid, trebuie să inițiați imediat o plată pe baza acordului de facturare dacă setați browserPayment.paypal.agreementConfirmation
=AGREE_AND_PAY
în solicitarea Tokenize Browser Payment
.
În solicitarea Pay, completați următoarele câmpuri în plus față de câmpurile standard:
sourceOfFunds.type = PAYPAL
sourceOfFunds.token
: Furnizați ID-ul simbolului care identifică pe gateway detaliile acordului de facturare (primite de la PayPal). Puteți utiliza acest ID de simbol pentru plățile unice și periodice.Puteți vedea detaliile acordului de facturare pentru o tranzacție Authorize sau Pay efectuând o operațiune Retrieve Transaction
sau folosind portalul Merchant Administration.
Iată un exemplu de solicitare de tranzacție de plată folosind simbolul care identifică la PayPal detaliile acordului de facturare.
URL | https://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid} |
Metoda HTTP | PUT |
{ "apiOperation": "PAY", "order": { "amount": "123.46", "currency": "USD", "description": "Quantity description", "item": [ { "name": "name", "quantity": "40", "sku": "sku", "unitPrice": "2.8" } ], "itemAmount": "112.00", "tax": [ { "amount": "0.29", "rate": "9.77" } ], "taxAmount": "11.46" }, "shipping": { "address": { "city": "<city>", "country": "<country>", "postcodeZip": "<pos_code>", "stateProvince": "<state>", "street": "test1", "street2": "test2" }, "contact": { "email": "test@test.com", "firstName": "FirstName" } }, "sourceOfFunds": { "token": "975890899756" } }