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ść:
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ę.
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ę.
- 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
Odpowiednie ustawienie tych parametrów pozwoli na zwiększenie konwersji dla kart płatniczych.
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.
{
"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).
{
"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.
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.
{
"orderId": "ORDER_ID",
"status": {
"statusCode": "WARNING_CONTINUE_CVV",
"severity": "WARNING"
},
"redirectUri": "{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.