Tworzenie tokena
Token jednorazowy (single-use)
Istnieją dwa scenariusze użytkowe tokena jednorazowego:
- jednorazowa płatność tokenem - użyj formularza Secure Form z wartością SINGLE przekazaną jako argument do metody tokenize. Umożliwi ci to tokenizację karty i wygenerowanie jednorazowego tokena, który może być użyty tylko do jednej płatności.
- pierwsza płatność z zapisaniem karty w celu jej przyszłego użycia - użyj formularza Secure Form z wartością MULTI przekazaną jako argument do metody tokenize. Umożliwi ci to tokenizację karty i wygenerowanie jednorazowego tokena, którego użyjesz do jednorazowej płatności i zapisania danej karty (wygenerowanie tokena wielokrotnego użytku - TOKC_).
Token wielokrotnego użytku (multi-use)
Token wielorazowy (TOKC_) tworzony jest po pierwszym użyciu tokena jednorazowego (TOK_), Google Pay Token lub Apple Pay Token. Istnieją dwa scenariusze, w których możesz utworzyć token wielokrotnego użytku:
- Tworzenie tokena wielokrotnego użytku podczas zakupu - z jednoczesnym obciążeniem karty.
- Tworzenie tokena wielokrotnego użytku bez zakupu - z podaniem kwoty równej 0.
Kiedy karta jest zapisywana bez dokonywania rzeczywistego zakupu, ważne jest unikanie tworzenia zamówienia o kwocie innej niż 0, która później zostanie anulowana. Takie podejście jest zabronione przez systemy kart płatniczych (Visa i Mastercard). Zamiast tego musisz ustawić kwotę całkowitą na 0.
Tworzenie tokena wielokrotnego użytku podczas zakupu
Tworzenie tokena podczas zakupu jest standardowym i najczęstszym sposobem zapisywania karty.
Standardowe żądanie zamówienia powinienenś rozszerzyć o sekcje buyer
ipayMethod
gdzie jednorazowy token (TOK_) jest użyty jako wartość parametru value
.
Wartość parametru cardOnFile
powinieneś ustawić na FIRST (szczegółowy opis parametru cardOnFile
znajdziesz w sekcji Create an Order w naszej referencji API).
Twój POS powinien być skonfigurowany pod kątem tworzenia tokenów wielorazowych.
W sekcji buyer
powinieneś przesłać parametr extCustomerId
z identyfikatorem klienta w Twoim systemie. Parametr ten służy do pobierania zapisanych przez klienta metod płatności.
- Przykład zapisania tokena podczas zakupu
- Przykład zapisania tokena podczas zakupu - Apple Pay
- Przykład zapisania tokena podczas zakupu - Google Pay
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": "FIRST",
"extOrderId":"g1d5q9lpxz5rg556qiue0q",
"products":[
{
"name": "Laptop",
"unitPrice":"15000",
"quantity": "1"
}
],
"buyer": {
"extCustomerId": "id_12345",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"language": "en"
},
"payMethods": {
"payMethod": {
"value": "TOK_1IHRPT6HKSSS3H62K0GS8pElP862",
"type": "CARD_TOKEN"
}
},
"deviceFingerprint": "1436437b3265e8311c0495a233dcd0a7"
}'
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": "FIRST",
"extOrderId":"g1d5q9lpxz5rg556qiue0q",
"products":[
{
"name": "Laptop",
"unitPrice":"15000",
"quantity": "1"
}
],
"buyer": {
"extCustomerId": "id_12345",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"language": "en"
},
"payMethods": {
"payMethod": {
"value": "jp",
"type": "PBL",
"authorizationCode":"ewogICJ2ZXJzaW9uIjogIkVDX3YxIiwKICAiZGF0YSI6ICJEakk4RXo3blBoVm83NDJhR0V6QUJ6L1RmeENQdDlMU2RmMi9oKzB4SWdWSmJpM2ZRcWQ0bHYzb2dvVEkzU1E3dlpyREFXSThnMmxiZDVzZmxYQkhjMHord1NleWJzQ2NxWkIzbjFlZFJGWFU3KzZEWW1kaEZGV1dDZWp3VWM2WFpXbXNTYVZORVFmK0tjMFNlWXJqOEVza2RhcGo4YllYL1FYeFhTUHFTNElLU2pCK2YzTzBnVVhTcTdMSy9qQTlkbCtCYldXMGwzZ1hFUlU2bjVyY1luZE81cm5qaXdOVXBubTdFTUlNZk5VK0lQYnN1YnBMODJrYkwyTWRNSkIxZ3JlbDAzSjRKS2xkNkcwcEZTbWpSMm1GL3hCWS95S2tBRFJob1FrVmxEUmljdUtWTXBkUlhYYklRancveVJrTHYvdThpeTF3WEk1WW1FQkIrVzRRcFBZc3V4eXM5NGdNUGFLaGNhRUsvT2FUMDk5YUZyTkJlemJ1TE1UY1R6YmhYT3BQd1duOXBrQUswZVpOT1E9PSIsCiAgInNpZ25hdHVyZSI6ICJNSUFHQ1NxR1NJYjNEUUVIQXFDQU1JQUNBUUV4RHpBTkJnbGdoa2dCWlFNRUFnRUZBRENBQmdrcWhraUc5dzBCQndFQUFLQ0FNSUlENWpDQ0E0dWdBd0lCQWdJSWFHRDJtZG5NcHc4d0NnWUlLb1pJemowRUF3SXdlakV1TUN3R0ExVUVBd3dsUVhCd2JHVWdRWEJ3YkdsallYUnBiMjRnU1c1MFpXZHlZWFJwYjI0Z1EwRWdMU0JITXpFbU1DUUdBMVVFQ3d3ZFFYQndiR1VnUTJWeWRHbG1hV05oZEdsdmJpQkJkWFJvYjNKcGRIa3hFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVE1CNFhEVEUyTURZd016RTRNVFkwTUZvWERUSXhNRFl3TWpFNE1UWTBNRm93WWpFb01DWUdBMVVFQXd3ZlpXTmpMWE50Y0MxaWNtOXJaWEl0YzJsbmJsOVZRelF0VTBGT1JFSlBXREVVTUJJR0ExVUVDd3dMYVU5VElGTjVjM1JsYlhNeEV6QVJCZ05WQkFvTUNrRndjR3hsSUVsdVl5NHhDekFKQmdOVkJBWVRBbFZUTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFZ2pEOXE4T2M5MTRnTEZEWm0wVVM1amZpcVFIZGJMUGdzYzFMVW1lWStNOU92ZWdhSmFqQ0hrd3ozYzZPS3BiQzlxK2hrd05GeE9oNlJDYk9sUnNTbGFPQ0FoRXdnZ0lOTUVVR0NDc0dBUVVGQndFQkJEa3dOekExQmdnckJnRUZCUWN3QVlZcGFIUjBjRG92TDI5amMzQXVZWEJ3YkdVdVkyOXRMMjlqYzNBd05DMWhjSEJzWldGcFkyRXpNREl3SFFZRFZSME9CQllFRkFJa01BdWE3dTFHTVpla3Bsb3Bua0p4Z2h4Rk1Bd0dBMVVkRXdFQi93UUNNQUF3SHdZRFZSMGpCQmd3Rm9BVUkvSkp4RStUNU84bjVzVDJLR3cvb3J2OUxrc3dnZ0VkQmdOVkhTQUVnZ0VVTUlJQkVEQ0NBUXdHQ1NxR1NJYjNZMlFGQVRDQi9qQ0J3d1lJS3dZQkJRVUhBZ0l3Z2JZTWdiTlNaV3hwWVc1alpTQnZiaUIwYUdseklHTmxjblJwWm1sallYUmxJR0o1SUdGdWVTQndZWEowZVNCaGMzTjFiV1Z6SUdGalkyVndkR0Z1WTJVZ2IyWWdkR2hsSUhSb1pXNGdZWEJ3YkdsallXSnNaU0J6ZEdGdVpHRnlaQ0IwWlhKdGN5QmhibVFnWTI5dVpHbDBhVzl1Y3lCdlppQjFjMlVzSUdObGNuUnBabWxqWVhSbElIQnZiR2xqZVNCaGJtUWdZMlZ5ZEdsbWFXTmhkR2x2YmlCd2NtRmpkR2xqWlNCemRHRjBaVzFsYm5SekxqQTJCZ2dyQmdFRkJRY0NBUllxYUhSMGNEb3ZMM2QzZHk1aGNIQnNaUzVqYjIwdlkyVnlkR2xtYVdOaGRHVmhkWFJvYjNKcGRIa3ZNRFFHQTFVZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5OWpjbXd1WVhCd2JHVXVZMjl0TDJGd2NHeGxZV2xqWVRNdVkzSnNNQTRHQTFVZER3RUIvd1FFQXdJSGdEQVBCZ2txaGtpRzkyTmtCaDBFQWdVQU1Bb0dDQ3FHU000OUJBTUNBMGtBTUVZQ0lRRGFIR091aStYMlQ0NFI2R1ZwTjdtMm5FY3I2VDZzTWpPaFo1TnVTbzFlZ3dJaEFMMWErL2hwODhES0owc3YzZVQzRnhXY3M3MXhtYkxLRC9RSjNtV2FnckpOTUlJQzdqQ0NBbldnQXdJQkFnSUlTVzB2dnpxWTJwY3dDZ1lJS29aSXpqMEVBd0l3WnpFYk1Ca0dBMVVFQXd3U1FYQndiR1VnVW05dmRDQkRRU0F0SUVjek1TWXdKQVlEVlFRTERCMUJjSEJzWlNCRFpYSjBhV1pwWTJGMGFXOXVJRUYxZEdodmNtbDBlVEVUTUJFR0ExVUVDZ3dLUVhCd2JHVWdTVzVqTGpFTE1Ba0dBMVVFQmhNQ1ZWTXdIaGNOTVRRd05UQTJNak0wTmpNd1doY05Namt3TlRBMk1qTTBOak13V2pCNk1TNHdMQVlEVlFRRERDVkJjSEJzWlNCQmNIQnNhV05oZEdsdmJpQkpiblJsWjNKaGRHbHZiaUJEUVNBdElFY3pNU1l3SkFZRFZRUUxEQjFCY0hCc1pTQkRaWEowYVdacFkyRjBhVzl1SUVGMWRHaHZjbWwwZVRFVE1CRUdBMVVFQ2d3S1FYQndiR1VnU1c1akxqRUxNQWtHQTFVRUJoTUNWVk13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVR3RnhHRUdkZGtoZFVhWGlXQkIzYm9nS0x2M251dVRlQ04vRXVUNFROVzFXWmJOYTRpMEpkMkRTSk9lN29JL1hZWHpvakxkcnRtY0w3STZDbUUvMVJGbzRIM01JSDBNRVlHQ0NzR0FRVUZCd0VCQkRvd09EQTJCZ2dyQmdFRkJRY3dBWVlxYUhSMGNEb3ZMMjlqYzNBdVlYQndiR1V1WTI5dEwyOWpjM0F3TkMxaGNIQnNaWEp2YjNSallXY3pNQjBHQTFVZERnUVdCQlFqOGtuRVQ1UGs3eWZteFBZb2JEK2l1LzB1U3pBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUI4R0ExVWRJd1FZTUJhQUZMdXczcUZZTTRpYXBJcVozcjY5NjYvYXl5U3JNRGNHQTFVZEh3UXdNQzR3TEtBcW9DaUdKbWgwZEhBNkx5OWpjbXd1WVhCd2JHVXVZMjl0TDJGd2NHeGxjbTl2ZEdOaFp6TXVZM0pzTUE0R0ExVWREd0VCL3dRRUF3SUJCakFRQmdvcWhraUc5Mk5rQmdJT0JBSUZBREFLQmdncWhrak9QUVFEQWdObkFEQmtBakE2ejNLRFVSYVpzWWI3TmNOV3ltSy85QmZ0MlE5MVRhS092dkdjZ1Y1Q3Q0bjRtUGViV1orWTFVRU5qNTNwd3Y0Q01ESXQxVVFoc0tNRmQyeGQ4emc3a0dmOUYzd3NJVzJXVDhaeWFZSVNiMVQ0ZW4wYm1jdWJDWWtoWVFhWkR3bVNIUUFBTVlJQmpUQ0NBWWtDQVFFd2dZWXdlakV1TUN3R0ExVUVBd3dsUVhCd2JHVWdRWEJ3YkdsallYUnBiMjRnU1c1MFpXZHlZWFJwYjI0Z1EwRWdMU0JITXpFbU1DUUdBMVVFQ3d3ZFFYQndiR1VnUTJWeWRHbG1hV05oZEdsdmJpQkJkWFJvYjNKcGRIa3hFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVEFnaG9ZUGFaMmN5bkR6QU5CZ2xnaGtnQlpRTUVBZ0VGQUtDQmxUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncweE9EQTVNVEV4TWpFek1qaGFNQ29HQ1NxR1NJYjNEUUVKTkRFZE1Cc3dEUVlKWUlaSUFXVURCQUlCQlFDaENnWUlLb1pJemowRUF3SXdMd1lKS29aSWh2Y05BUWtFTVNJRUlCTmFyZW1CRFIwRDFjZTJYQXVteDQ4L2NCUVRtVFVDSUtPb3JTNjkxSGFsTUFvR0NDcUdTTTQ5QkFNQ0JFZ3dSZ0loQU1vMktKTWpqVEJNK3V0bGNEWGhocjl0SndLV1BOU0NBN240RlZ6QU5UaHdBaUVBcXN4VFRtOTJkdzBaTzM4WWF4blp1M1dtUmE4SG5WTThLc3hoaERjZU95QUFBQUFBQUFBPSIsCiAgImhlYWRlciI6IHsKICAgICJlcGhlbWVyYWxQdWJsaWNLZXkiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWk16bFdPeDhYbzhwWGxPdnpZT055K2d2VXk1OVpPZXVDb3Yza3pjN2ZFU2N6WlR5dm1BOWRVOUFkVk1GYVl5ZkNYbE1HNW9lZGkzV3k0eXVicWZ4dGc9PSIsCiAgICAicHVibGljS2V5SGFzaCI6ICJ4ckpxVUZPMmpONWVkR1M4aUVUa2ZOWHR3cW53U3FSVVVyUUpCeXNGcFo4PSIsCiAgICAidHJhbnNhY3Rpb25JZCI6ICJhYTBiNzdmYmI0ZjY0Y2QzZTVkZWVmNjUxNzc5MzhiMmQ4MzZlMGQ3ZDkzZDU4MDAwZDhkNTRjZmNhMTlhZTEzIgogIH0KfQ=="
}
},
"deviceFingerprint": "1436437b3265e8311c0495a233dcd0a7"
}'
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": "FIRST",
"extOrderId":"g1d5q9lpxz5rg556qiue0q",
"products":[
{
"name": "Laptop",
"unitPrice":"15000",
"quantity": "1"
}
],
"buyer": {
"extCustomerId": "id_12345",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"language": "en"
},
"payMethods": {
"payMethod": {
"value": "ap",
"type": "PBL",
"authorizationCode": "eyJzaWduYXR1cmUiOiJNRVVDSVFEWTN3QlF5SEI0c1pja3RSb0pYS3htK09MY2pIekN2ZERlR24yM29YMGtrd0lnS3puUkZaWkwrc0RNdjFiNWN1RCtZdXJYTVpyYVlCc3I5aGJyYXZWWTVSb1x1MDAzZCIsInByb3RvY29sVmVyc2lvbiI6IkVDdjEiLCJzaWduZWRNZXNzYWdlIjoie1wiZW5jcnlwdGVkTWVzc2FnZVwiOlwiY0k4N3RMcXpxVEd5Q0ZuTU1DVldjVEh3M3hoWUlLK0NFbnVRNzRLK25sTHBDZ09sZnBTY2liOWpkczRzeER0TjZDdW5DcUNTTWZkLzN5SGVlUnk2YUN4MXl5cWNUNGV5Nk51ZWVCem5wckpwa21WVmdJMUpIV0xRdDRoekFYTVVBY1lBU1lMT2FiS1A5ZlVadkhrT0JEeXRENTMxanB6TlhhK1NwYy96cnBHekZLeDJDNFZVOXNDOTVxOWkrZXkra3I3Wk1OVkNPRkpQV1h1N2xLWjEwNUlPT3Fveko2LzcwTUtteFAzak04OWVlcSsvMTlRbnlIalFMWGZuUVB2UWppVUpLR0NjUktETGxyYjNYb1k1WlVVekdmTjVlWkNMekNWZzBoV0Vid1UrNko3S1dZSnlXK1dyMXI4YmFnTjl6V3NyTUtoRHBzUWJIZnl6Yit5QnpGVW94ZVVnTDRhN0ZlVnZFbGxJY0h0cXN2VENmNkZFTlYyMGFGNVZMRHY1cXpVa1YrUHpUQUliRkV1YWJBMEdvZDlVYlZDVlZ2N25NOFFGenZSUGh6WVlGVkZUbjRKSHZMMnFaNHBBUjlsRSt3XFx1MDAzZFxcdTAwM2RcIixcImVwaGVtZXJhbFB1YmxpY0tleVwiOlwiQlBITEM0c0JIcGVuWTFNMGl4bWlETXVXSlRhVEpPcWdnUlV3dGdCSk1jQnAyOFZzeEhEN3pQSTc5ODV4NEY1RWpNUDV5OGovY3VVemJlL2NHUGpPS0drXFx1MDAzZFwiLFwidGFnXCI6XCJSYVhyUE9VdWM1aXczb3hEYTBDMk1PamFLeGd4SVJRdndPc3BtdEZWMHpVXFx1MDAzZFwifSJ9"
}
},
"deviceFingerprint": "1436437b3265e8311c0495a233dcd0a7"
}'
Szczegółowe informacje na temat parametrów, znajdziesz w sekcji Create an Order w naszej referencji API.
W ciele zamówienia wyróżniony został obiekt payMethods
zawierający jednorazowy token (TOK_).
Jeśli transakcja została przeprowadzona z wykorzystaniem Google Pay lub Apple Pay, uzyskany token może zostać wykorzystany do transakcji inicjowanych przez merchanta (cardOnFile: STANDARD_MERCHANT
). Tak utworzony token nie może zostać wykorzystany do transakcji inicjowanej przez klienta (cardOnFile: STANDARD_CARDHOLDER
).
POS wykorzystany w przykładzie nie ma włączonej tokenizacji.
{
"status": {
"statusCode": "WARNING_CONTINUE_3DS",
"severity": "WARNING"
},
"redirectUri": "{redirectUri}",
"iframeAllowed": true,
"threeDsProtocolVersion": "3DS2"
"orderId": "ORDER_ID",
"payMethods": {
"payMethod": {
"card": {
"number": "424242******4242",
"expirationMonth": "12",
"expirationYear": "2017"
},
"type": "CARD_TOKEN",
"value": "TOKC_KPNZVSLJUNR4DHF5NPVKDPJGMX7"
}
}
}
W powyższej odpowiedzi wyróżniony został wygenerowany token wielokrotnego użytku (TOKC_), który może zostać użyty do przyszłych płatności daną kartą.
Powyższa odpowiedź zakłada, że wymagane jest dodatkowe uwierzytelnienie 3DS. Więcej szczegółów znajdziesz w sekcji Obsługa 3DS.
PayU zawiadamia o statusie transakcji na adres podany w parametrze notifyUrl
. Więcej szczegółów na ten temat znajdziesz w sekcji Powiadomienia.
Tworzenie tokena wielokrotnego użytku bez zakupu
Zanim ta funkcja zostanie włączona w środowisku produkcyjnym lub testowym (sandbox) wymagana jest specjalna konfiguracja. W celu jej włączenia skontaktuj się ze swoim przedstawicielem handlowym w PayU by dowiedzieć się czy będziesz mógł korzystać z tej usługi.
W niektórych przypadkach możesz potrzebować zapisać informacje o karcie bez dokonania faktycznego zakupu przez kupującego. Ten scenariusz jest przydatny, np. gdy oferujesz bezpłatne okresy próbne lub chcesz umożliwić klientom zachowanie danych karty do wykorzystania w przyszłości bez natychmiastowej opłaty. W takich przypadkach możesz zażądać utworzenia tokena wielokrotnego użytku (TOKC_) dla określonej karty.
Tworzenie tokenów wielokrotnego użytku bez dokonywania zakupu wiąże się z pewnymi specjalnymi warunkami:
-
Standardowe zamówienie powinno być rozszerzone o sekcje
buyer
ipayMethod
gdzie jednorazowy token (TOK_) jest użyty jako wartość parametruvalue
. -
Wartość parametru
totalAmount
powinna być ustawiona na 0 (pamiętaj, że w celu zachowania spójności API nadal wymagany jest parametrcurrency
). -
Obiekt
products
nie jest wymagany. -
Transakcje na kwotę 0 są zawsze odbierane automatycznie - nawet gdy płatności kartowe zostały skonfigurowane inaczej. Transakcje na kwotę 0 nie mogą otrzymać statusu WAITING_FOR_CONFIRMATION, zawsze przechodzą ze statusu PENDING na COMPLETED lub CANCELED
-
Transakcje na kwotę 0 nie są możliwe dla "sklepów" skonfigurowanych jako marketplace, gdzie wymagana jest sekcja
shoppingCarts
. -
Wartość parametrów
cardOnFile
/recurring
powinna być ustawiona na FIRST (szczegółowy opis parametrucardOnFile
/recurring
znajdziesz w sekcji Create an Order naszej referencji API). -
Transakcje na kwotę 0 są możliwe tylko w przypadku płatności kartami.
-
Twój POS powinien być skonfigurowany do tworzenia tokenów wilokrotnego użytku.
-
Twój "sklep" w panelu merchanta powinien być skonfigurowany do przyjmowania transakcji na kwotę 0.
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":"0",
"cardOnFile": "FIRST",
"extOrderId":"4ifibqsc9nwkvanq6rcfm9",
"buyer": {
"extCustomerId": "id_12345",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"language": "en"
},
"payMethods": {
"payMethod": {
"value": "TOK_1IHRPT6HKSSS3H62K0GS8pElP862",
"type": "CARD_TOKEN"
}
},
"deviceFingerprint": "3707dda5515f445886e3b6fff404039b"
}'
Szczegółowe informacje na temat parametrów, zanjdziesz w sekcji Create an Order w naszej referencji API.
Wyróżnione w powyższym zamówieniu zostały:
- parametr
totalAmount
z wartością 0 - zgodnie z wcześniej wspomnianymi wymaganiami, - obiekt
payMethods
z jednorazowym tokenem (TOK_), potrzebnym podczas pierwszej płatności do wygenerowania tokena wielorazowego użytku (TOKC_).
POS Wykorzystany w przykładzie nie ma włączonej tokenizacji.
{
"status": {
"statusCode": "WARNING_CONTINUE_3DS",
"severity": "WARNING"
},
"redirectUri": "{redirectUri}",
"iframeAllowed": true,
"threeDsProtocolVersion": "3DS2"
"orderId": "ORDER_ID",
"payMethods": {
"payMethod": {
"card": {
"number": "424242******4242",
"expirationMonth": "12",
"expirationYear": "2017"
},
"type": "CARD_TOKEN",
"value": "TOKC_KPNZVSLJUNR4DHF5NPVKDPJGMX7"
}
}
}
W powyższej odpowiedzi wyróżniony został token wielokrotnego użytku (TOKC_), który może zostać użyty do przyszłych płatności daną kartą.
Powyższa odpowiedź zakłada również, że wymagane jest dodatkowe uwierzytelnienie 3DS. Więcej szczegółów znajdziesz w sekcji Obsługa 3DS.
PayU zawiadamia o statusie transakcji na adres podany w parametrze notifyUrl
. Więcej szczegółów na ten temat znajdziesz w sekcji Powiadomienia.
Zapisane tokeny wielokrotnego użytku (TOKC_) powinieneś za każdym razem pobierać z PayU zamiast kopiować je z odpowiedzi do zamówienia. Pobranie tokenów z PayU zapewni ci dostęp do dodatkowych informacji, takich jak (data ważności tokenu, status tokenu, itp.)