Przejdź do głównej zawartości

Płacenie tokenem

Aby uzyć tokena przy płatności musisz rozszerzyć standardowe zamówienie o sekcję buyer oraz sekcję payMethods podając token jednorazowy (TOK_) jako wartość parametru value.

Token wielokrotnego użytku (TOKC_) jest tworzony po pierwszym użyciu tokena jednorazowego (TOK_).

W przypadku płatności tokenem wielorazowym (TOKC_) należy pamiętać o ustawieniu parametru cardOnFile lub recurring, który informuje o stronie inicjującej płatność:

  1. cardOnFile:
    • STANDARD_CARDHOLDER - płatność już zapisaną kartą, zainicjowaną przez właściciela karty. W zależności od parametrów płatności (np. wysoka kwota transakcji) możesz oczekiwać silnego uwierzytelnienia (3D Secure i/lub CVV).
    • STANDARD_MERCHANT - odnosi się do płatności dokonanej przy użyciu wcześniej zapisanej karty, zainicjowanej przez sklep lub sprzedawcę bez udziału właściciela karty. Zgodnie z definicją, ten typ płatności nie wymaga silnego uwierzytelniania. Należy jednak pamiętać, że nie można użyć tej opcji, jeśli płatność kartą z parametrem cardOnFile o wartości FIRST nie powiodła się.
  2. recurring:
    • STANDARD - odnosi się do kolejnej płatności w cyklu dokonanej przy użyciu wcześniej zapisanej karty, zainicjowanej przez sklep lub sprzedawcę bez udziału właściciela karty. Zgodnie z definicją, ten typ płatności nie wymaga silnego uwierzytelniania. Należy jednak pamiętać, że nie można użyć tej opcji, jeśli płatność kartą z parametrem recurring o wartości FIRST nie powiodła się.
Notatka

Odpowiednie ustawienie tych parametrów pozwoli na zwiększenie konwersji dla kart płatniczych.

Przykład zamówienia zainicjowanego przez merchanta i wykorzystującego token wielorazowy (TOKC_)
curl -v -X POST https://secure.payu.com/api/v2_1/orders \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd" \
-d '{
"notifyUrl":"https://your.eshop.com/notify",
"customerIp":"127.0.0.1",
"merchantPosId":"145227",
"description":"Laptop",
"currencyCode":"PLN",
"totalAmount":"15000",
"cardOnFile": "STANDARD_MERCHANT",
"extOrderId":"9xl0x8nr1wk7m0i3ltqbja",
"products":[
{
"name": "Laptop",
"unitPrice":"15000",
"quantity": "1"
}
],
"buyer": {
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"language": "en"
},
"payMethods": {
"payMethod": {
"value": "TOKC_2IHRST6HKSST3H62K2GS8pElI862",
"type": "CARD_TOKEN"
}
},
"deviceFingerprint": "0372098a4a90927db053463454491d78"
}'

Szczegółowe informacje na temat parametrów znajdziesz w sekcji Create an Order w naszej referencji API.

Przykład odpowiedzi do zamówienia z tokenem (TOKC_)
{
"orderId": "ORDER_ID",
"payMethods": {
"payMethod": {
"card": {
"number": "424242******4242",
"expirationMonth": "12",
"expirationYear": "2017"
},
"type": "CARD_TOKEN",
"value": "TOKC_KPNZVSLJUNR4DHF5NPVKDPJGMX7"
}
},
"status": {
"statusCode": "SUCCESS",
"statusDesc": "Request successful"
}
}

Powyższa odpowiedź oznacza, że nie ma potrzeby dodatkowego uwierzytelniania płacącego. Pamiętaj, że może być konieczne podanie 3DS lub CVV. Więcej informacji na ten temat znajdziesz w sekcjach Obsługa 3DS i Obsługa CVV2.

PayU zawiadamia o statusie transakcji na adres podany w parametrze notifyUrl. Więcej szczegółów na ten temat znajdziesz w sekcji Powiadomienia.

Obsługa 3DS

W przypadku odpowiedzi z kodem WARNING_CONTINUE_3DS, należy przekierować płatnika na stronę (parametr redirectUri) banku, wydawcy karty w celu dodatkowego uwierzytelnienia płatności w procesie 3D Secure. Uwierzytelnienie jest obecnie zawsze przeprowadzane za pomocą protokołu 3DS2. Protokół określa się poprzez ustawienie wartości pola threeDsProtocolVersion.

Aby dowiedzieć się jak podejść do 3DS 2, przejdź na stronę 3DS 2 (SCA).

Przykład odpowiedzi ze statusem WARNING_CONTINUE_3DS
{
"orderId": "ORDER_ID",
"status": {
"statusCode": "WARNING_CONTINUE_3DS",
"severity": "WARNING"
},
"redirectUri": "{redirectUri}",
"iframeAllowed": true,
"threeDsProtocolVersion": "3DS2"
}

Płatnik po uwierzytelnieniu się na stronie wydawcy karty w procesie 3DS, jest przekierowany z powrotem na adres strony podanej jako wartość parametru continueUrl w standardowym zamówieniu. Przy czym do adresu w zapytaniu (query string) dodawane są dwa parametry:

  • statusCode - wartości SUCCESS lub WARNING_CONTINUE_CVV, wskazujące wynik procesu uwierzytelniania;
  • refReqId - losowy alfanumeryczny ciąg znaków, który służy jako identyfikator.
Przykład
https://your.shop.com/payment?statusCode=SUCCESS&refReqId=5c867936fbb3cc2c373820b4550b4645

W przypadku gdy parametr statusCode przyjął wartość SUCCESS, to oznacza, że zamówienie zostało przyjęte bez potrzeby kolejnego uwierzytelnienia płacącego i możesz oczekiwać na status zamówienia.

Obsługa CVV2

W przypadku odpowiedzi z kodem WARNING_CONTINUE_CVV, należy poprosić płacącego o podanie kodu CVV2/CVC2. W tym celu pobierz wartość parametru redirectUri, wyciągnij wartość parametru refReqId za pomocą metody extractRefReqId i użyj metody sendCvv by wysłać CVV.

Przykład odpowiedzi WARNING_CONTINUE_CVV
{
"orderId": "ORDER_ID",
"status": {
"statusCode": "WARNING_CONTINUE_CVV",
"severity": "WARNING"
},
"redirectUri": "{redirectUri}"
}
Przykład użycia parametru redirectUri
https://secure.payu.com/api/v2/token/token.json?refReqId=11ed628ebe88ef6837d90ebb26f1a8b9

Po podaniu przez płacącego kodu CVV2/CVC2 możesz oczekiwać na status zamówienia.