1-click payment - Consilium Invest

Transkrypt

1-click payment - Consilium Invest
1-click payment
Wydanie 1.0rc2
Dotpay Development Team
sie 24, 2016
Spis treści
1 Rejestracja karty
1.1 Rejestracja bezpośrednia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Rejestracja przy pierwszej płatności . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
5
2 Sprawdzenie statusu karty
7
3 Usuniecie
˛
/ unieważnienie identyfikatora karty
7
4 Płatność 1-click
8
4.1 Dla karty nieuczestniczacej
˛
w programie 3-D Secure . . . . . . . . . . . . . . . . . 8
4.2 Dla karty uczestniczacej
˛
w programie 3-D Secure . . . . . . . . . . . . . . . . . . . 10
HTTP Routing Table
12
Niniejszy dokument opisuje przykładowy proces rejestracji (bezpośredniej i pośredniej) karty
oraz proces płatności kanałem kartowym gdzie sklep przekazuje identyfikator wcześniej zarejestrowanej w Dotpay karty (zamiast kompletu danych karty). Szczegółowy opis metod i
parametrów dostepny
˛
jest w dokumentacji usługi „Register Order’‘.
1 Rejestracja karty
1.1 Rejestracja bezpośrednia
W procesie bezpośredniej rejestracji karty zostanie utworzona operacja typu credit_card_registration po stronie Dotpay. Na karcie pojawi sie˛ blokada środków, która później
zostanie zwolniona. W odpowiedzi na request rejestracji karty zostana˛ zwrócone szczegóły
1-click payment, Wydanie 1.0rc2
operacji. W przypadku gdy karta uczestniczy w programie 3-D Secure zostanie także zwrócona sekcja redirect i redirect_simplified_url. W takim przypadku, aby dokończyć proces, należy przekierować płacacego
˛
bezpośrednio na strony banku tj. na adres adres redirect.url
z parametrami redirect.data (alternatywnie przekierowanie można wykonać na uproszczony
adres redirect_simplified_url). Po uwierzytelnieniu sie˛ na stronie wydawcy karty użytkownik
zostanie przekierowany na strony Dotpay a nastepnie
˛
na strony sklepu. Dla zakończonej operacji powstałej w procesie rejestracji (tj. gdy uda sie˛ wykonać blokade˛ środków oraz, w przypadku gdy wymagane, uwierzytelnienie 3-D Secure) w sekcji payment_method.credit_card
poza zamaskowanym numerem karty, zostanie także zwrócony identyfikator karty. Identyfikator karty może zostać także przekazany wraz z notyfikacja˛ na adres urlc (przy założeniu że
adres urlc jest dostepny
˛
po https i posiada poprawny certyfikat).
Parametry na wejściu rzeczonej metody sa˛ zgodne z parametrami wejściowymi dla płatności karta˛ (kompletem danych) opisana˛ w dokumencie „Register Order API” (z dokładnościa˛
do braku parametrów order i payment_method). Parametry na wyjściu sa˛ w pełni zgodne z
odpowiedzia˛ na płatność via „Register Order API’‘.
POST /cards/
JSON Parameters
• seller (object) – dane sprzedawcy
• payer (object) – dane płacacego
˛
• credit_card (object) – dane karty, szczegółowo opisane w dokumencie „Register Order API’‘
• credit_card.customer_id (object) – obligatoryjny identyfikator klient; semantycznie zgodny z opisem parametrem payment_method.credit_card.customer_id
• request_context (object) – kontekst requestu
Response JSON Object
• info (object) – dane informacyjne
• redirect (object) – słownik zwracany w przypadku gdy karta uczestniczy w programie 3-D Secure
• redirect_simplified_url (object) – adres na, który należy przekierować płacacego
˛
(alternatywnie, zamiast obsługi sekcji redirect)
• operation (object) – dane nowo utworzonej operacji
Status Codes
• 201 Created – utworzono
• 400 Bad Request – bład
˛ podczas obsługi requestu
Uwaga: Poniższy opis dotyczy rejestracji karty, która nie uczestniczy w programie 3-D
Secure. Dla karty, która uczestniczy w programie należy postepować
˛
analogicznie jak w
przypadku płatności 1-click taka˛ karta.
˛
Zobacz także:
Płatność 1-click dla karty uczestniczacej
˛
w programie 3-D Secure
1.1
Rejestracja bezpośrednia
2
1-click payment, Wydanie 1.0rc2
1. Posiadacz karty wprowadza jej dane na stronie sklepu, po czym klika „zarejestruj karte’‘.
˛
2. Sklep przekazuje wprowadzone przez posiadacza dane karty do systemu Dotpay zgodnie
z poniższym przykładem.
curl --user login:passwd \
-H'Accept: application/json; indent=4' \
-H'content-type: application/json' \
-XPOST \
-d @request.json \
https://ssl.dotpay.pl/test_payment/payment_api/v1/cards/
plik request.json
{
"seller": {
"account_id": 2000,
"url": "https://ssl.dotpay.pl/test_payment/"
},
"payer": {
"first_name": "Jan",
"last_name": "Kowalski",
"email": "[email protected]"
},
"credit_card": {
"number": "4024007156111378",
"expiration_date": {
"year": 2015,
"month": 12
},
"security_code": "123",
"customer_id": "bed6750c-358f-4f75-8c65-1c650fe6303a"
},
"request_context": {
"ip": "127.0.0.1"
}
}
1.1
Rejestracja bezpośrednia
3
1-click payment, Wydanie 1.0rc2
3. System Dotpay odpytuje o to czy karta uczestniczy w programie 3-D Secure.
4. Jeśli nie uczestniczy to
5. naste˛ puje weryfikacja poprawności danych karty wykonujac
˛ na niej blokade˛ środków.
6. Po udanej weryfikacji
7. środki zostaja˛ natychmiastowo zwolnione.
9. W odpowiedzi na request rejestrujacy
˛ karte˛ system Dotpay zwraca identyfikator zarejestrowanej karty.
HTTP/1.0 201 CREATED
Vary: Accept
Content-Type: application/json
{
"info": {
"status_url": "http://localhost:8000/status/M1187-2882/b81bab..."
},
"operation": {
"href": "http://localhost:8003/api/v1/payments/M1187-2882/",
"number": "M1187-2882",
"creation_datetime": "2015-10-16T06:20:03.161911",
"type": "payment",
"status": "completed",
"amount": "1.00",
"currency": "PLN",
"original_amount": "1.00",
"original_currency": "PLN",
"account_id": "2005",
"related_operation": null,
"description": "card registration",
"control": "",
"payer": {
"first_name": "Jan",
"last_name": "Kowalski",
"email": "[email protected]"
},
"payment_method": {
"channel_id": 100,
"credit_card": {
"masked_number": "XXXX XXXX XXXX 0002",
"brand": {
"name": "Visa",
"codename": "visa",
"logo": "https://ssl.dotpay.pl/test_payment/cloudfs1/m..."
},
"id": "570f95a17968a1fecbb...8047883a31586eed",
"required_security_code": false
}
}
}
}
10. Sklep informuje posiadacza karty o statusie rejestracji karty.
Uwaga: Pole operation.payment_method.credit_card.id prezentowane jest tylko i wyłacznie
˛
gdy operacja jest w statusie completed. W przypadku gdy odpowiedź zostanie zwrócona zanim transakcja zostanie przeprocesowana po stronie acquirera (tj. gdy operation.status ma
wartość new lub processing) należy ponowić odpytanie o szczegóły operacji (GET na adres
1.1
Rejestracja bezpośrednia
4
1-click payment, Wydanie 1.0rc2
podany w operation.href ) po uzyskaniu stosownej notyfikacji o zmianie statusu operacji
przesyłanej na adres urlc.
1.2 Rejestracja przy pierwszej płatności
Uwaga: Poniższy opis dotyczy rejestracji karty, która nie uczestniczy w programie 3-D
Secure. Dla karty, która uczestniczy w programie należy postepować
˛
analogicznie jak w
przypadku płatności 1-click taka˛ karta.
˛
Zobacz także:
Płatność 1-click dla karty uczestniczacej
˛
w programie 3-D Secure
1. Kupujacy
˛ / posiadacz karty, na koniec procesu uzupełniania wymaganych danych do
przeprowadzenia płatności, wprowadza dane karty na stronie sklepu, po czym klika „zapłać’‘.
2. Sklep inicjalizuje proces płatności w Dotpay, przekazujac
˛ dane zamówienia wraz z danymi karty zgodnie z poniższym przykładem.
curl --user login:passwd \
-H'Accept: application/json; indent=4' \
-H'content-type: application/json' \
-XPOST \
-d @request.json \
https://ssl.dotpay.pl/test_payment/payment_api/v1/register_order/
plik request.json
{
"order": {
"account_id": 2019,
"amount": 10.23,
"currency": "PLN",
"description": "opis zamówienia",
"control": "4b65980a-0ca7-458e-9a2a-35b6ee465125",
},
"payer": {
1.2
Rejestracja przy pierwszej płatności
5
1-click payment, Wydanie 1.0rc2
"ip": "127.0.0.1",
"first_name": "Jan",
"last_name": "Kowalski",
"email": "[email protected]",
"address": {
"street": "Wielicka",
"building_number": "72",
"postcode": "99-999",
"city": "Kraków",
"country": "POL"
}
},
"payment_method": {
"channel_id": 248,
"credit_card": {
"cardholder_name": "Jan Kowalski",
"type": "visa",
"number": "4111111111111111",
"expiration_date" {
"year": 2015,
"month": 12
},
"security_code": "123",
"store": true,
"customer_id": "bed6750c-358f-4f75-8c65-1c650fe6303a"
}
}
}
3. System Dotpay odpytuje o to czy karta uczestniczy w programie 3-D Secure.
4. Jeśli nie uczestniczy to
5. Dotpay realizuje zamówienie obcia˛żajac
˛ zadane środki na karcie.
7. W odpowiedzi na request płatności system Dotpay zwraca dane zamówienia oraz identyfikator zarejestrowanej karty.
HTTP/1.0 201 CREATED
Vary: Accept
Content-Type: application/json
{
"info": {
"status_url": "https://ssl.dotpay.pl/test_payment/status/M1974-2688/"
},
"operation": {
"href": "https://ssl.dotpay.pl/test_seller/api/operations/M1974-2688/",
"number": "M1974-2688",
"creation_datetime": "2015-04-17T05:08:49.944236",
"type": "payment",
"status": "new",
"amount": "10.23",
"currency": "PLN",
"original_amount": "10.23",
"original_currency": "PLN",
"account_id": "2019",
"related_operation": null,
"description": "opis zamówienia",
"control": "4b65980a-0ca7-458e-9a2a-35b6ee465125",
"payer": {
"first_name": "Jan",
"last_name": "Kowalski",
"email": "[email protected]"
1.2
Rejestracja przy pierwszej płatności
6
1-click payment, Wydanie 1.0rc2
"address": {
"street": "Wielicka",
"building_number": "72",
"postcode": "99-999",
"city": "Kraków",
"country": "POL"
}
},
"payment_method": {
"channel_id": 248,
"credit_card":
"id": "141ca90b-58c9-46e2-a684-84bcea846f63",
"href": "https://ssl.dotpay.pl/test_payment/payment_api/v1...",
"cardholder_name": "Jan Kowalski",
"type": "visa",
"masked_number": "xxxxxxxxxxxx1111",
"expiration_date" {
"year": 2015,
"month": 12
}
}
}
8. Sklep informuje kupujacego
˛
/ posiadacza karty o statusie realizacji zamówienia oraz
rejestracji karty.
Uwaga: Pole operation.payment_method.credit_card.id prezentowane jest tylko i wyłacznie
˛
gdy operacja jest w statusie completed. W przypadku gdy odpowiedź zostanie zwrócona zanim transakcja zostanie przeprocesowana po stronie acquirera (tj. gdy operation.status ma
wartość new lub processing) należy ponowić odpytanie o szczegóły operacji (GET na adres
podany w operation.href ) po uzyskaniu stosownej notyfikacji o zmianie statusu operacji
przesyłanej na adres urlc.
2 Sprawdzenie statusu karty
GET /cards/(string: id)/
Dane na wyjściu sa˛ zgodne z operation.payment_method.credit_card opisanym w dokumencie „Register Order API’‘.
Status Codes
• 200 OK – ok
• 400 Bad Request – bład
˛ podczas obsługi requestu
• 404 Not Found – nie znaleziono karty
3 Usuniecie
˛
/ unieważnienie identyfikatora karty
Zarejestrowana˛ w Dotpay karte˛ można usunać.
˛
DELETE /cards/(string: id)/
Przykładowy request:
curl --user login:passwd \
-H'Accept: application/json; indent=4' \
-H'content-type: application/json' \
7
1-click payment, Wydanie 1.0rc2
-XDELETE \
https://ssl.dotpay.pl/test_payment/payment_api/v1/cards/141ca90b-58c9...
Status Codes
• 204 No Content – usunieto
˛
• 400 Bad Request – bład
˛ podczas obsługi requestu
4 Płatność 1-click
Po rejestracji (bezpośredniej czy pośredniej) karty w systemie Dotpay sklep jest w posiadaniu identyfikatora karty, przy pomocy którego może zainicjalizować płatność bez podawania
kompletu danych karty. Cały proces zobrazowany jest na poniższych diagramach sekwencji.
4.1 Dla karty nieuczestniczacej
˛
w programie 3-D Secure
1. Kupujacy
˛ / posiadacz karty w sklepie, po wybraniu kanału płatności, wybiera zarejestrowana˛ karte˛ po czym klika „zapłać’‘.
2. Sklep inicjalizuje proces płatności w Dotpay przekazujac
˛ dane zamówienia wraz z identyfikatorem zarejestrowanej karty (oraz znanym sobie customer_id) zgodnie z poniższym
przykładem. W przypadku gdy karta nie umożliwia płatności cyklicznych tj. gdy razem
z identyfikatorem karty zostanie zwrócone pole required_security_code o wartości true
wymagane jest także podanie kodu CVV2/CVC2.
curl --user login:passwd \
-H'Accept: application/json; indent=4' \
-H'content-type: application/json' \
-XPOST \
-d @request.json \
https://ssl.dotpay.pl/test_payment/payment_api/v1/register_order/
plik request.json
{
"order": {
8
1-click payment, Wydanie 1.0rc2
"amount": 10.23,
"currency": "PLN",
"description": "opis zamówienia",
"control": "4b65980a-0ca3-458e-9a2a-35b6ee465125"
},
"seller": {
"account_id": 2005,
"url": "http://www.dotpay.pl"
},
"payer": {
"first_name": "Jan",
"last_name": "Kowalski",
"email": "[email protected]"
},
"payment_method": {
"channel_id": 248,
"credit_card": {
"id": "690de93d1c5c3bb40...107817c57f8cf97894f531899",
"customer_id": "bed6750c-358f-4f75-8c65-1c650fe6303a"
}
},
"request_context": {
"ip": "127.0.0.1"
}
}
3. System Dotpay odpytuje o to czy karta uczestniczy w programie 3-D Secure.
4. A jeśli nie uczestniczy,
5. a kwota płatności mieści sie˛ w dziennym limicie, wykonuje obcia˛żenie karty.
7. W odpowiedzi na request płatności system Dotpay zwraca dane zamówienia.
HTTP/1.0 201 CREATED
Vary: Accept
Content-Type: application/json
{
"info": {
"status_url": "https://ssl.dotpay.pl/test_payment/status/M2563-1111/"
},
"operation": {
"href": "https://ssl.dotpay.pl/test_seller/api/operations/M2563-1111/",
"number": "M2563-1111",
"creation_datetime": "2015-04-17T05:08:49.944236",
"type": "payment",
"status": "completed",
"amount": "10.23",
"currency": "PLN",
"original_amount": "10.23",
"original_currency": "PLN",
"account_id": "2005",
"related_operation": null,
"description": "opis zamówienia",
"control": "4b65980a-0ca7-458e-9a2a-35b6ee465125",
"payer": {
"first_name": "Jan",
"last_name": "Kowalski",
"email": "[email protected]"
"address": {
"street": "Wielicka",
"building_number": "72",
"postcode": "99-999",
4.1
Dla karty nieuczestniczacej
˛
w programie 3-D Secure
9
1-click payment, Wydanie 1.0rc2
"city": "Kraków",
"country": "POL"
}
},
"payment_method": {
"channel_id": 248
"credit_card":
"id": "141ca90b-58c9-46e2-a684-84bcea846f63",
"href": "https://ssl.dotpay.pl/test_payment/payment_api/v1...",
"cardholder_name": "Jan Kowalski",
"brand": {
"name": "Visa",
"codename": "visa",
"logo": "https://ssl.dotpay.pl/test_payment/cloudfs1/m..."
},
"masked_number": "xxxxxxxxxxxx1378",
"expiration_date" {
"year": 2015,
"month": 12
}
}
}
8. Sklep informuje kupujacego
˛
/ posiadacza karty o statusie zamówienia.
Uwaga: Pole operation.payment_method.credit_card.id prezentowane jest tylko i wyłacznie
˛
gdy operacja jest w statusie completed. W przypadku gdy odpowiedź zostanie zwrócona zanim transakcja zostanie przeprocesowana po stronie acquirera (tj. gdy operation.status ma
wartość new lub processing) należy ponowić odpytanie o szczegóły operacji (GET na adres
podany w operation.href ) po uzyskaniu stosownej notyfikacji o zmianie statusu operacji
przesyłanej na adres urlc.
4.2 Dla karty uczestniczacej
˛
w programie 3-D Secure
4.2
Dla karty uczestniczacej
˛
w programie 3-D Secure
10
1-click payment, Wydanie 1.0rc2
Kroki 1 – 4 sa˛ identyczne jak dla wersji bez uwierzytelnienia 3-D Secure.
5. Jeśli karta uczestniczy w programie 3-D Secure system Dotpay zwraca szczegóły operacji
wraz z sekcja˛ redirect i adres redirect_simplified_url.
6. Sklep odpowiedzialny jest za przekierowanie płacacego
˛
na strony issuera bezpośrednio
(obsługa sekcji redirect) badź
˛
pośrednio przez Dotpay (przekierowanie na adres redirect_simplified_url).
7. Płacacy
˛ przechodzi na strony issuera, na których uwierzytelnia sie˛ mechanizmem 3-D
Secure.
8. Issuer przekierowuje płacacego
˛
na strony Dotpay.
9. Jeśli proces uwierzytelnienia przeszedł pomyślnie
10. naste˛ puje obcia˛żenie karty.
12. Płacacy
˛ jest przekierowywany na strony sklepu.
13. Po przejściu na strone˛ sklepu
14. odpytuje on o status operacji wywołujac
˛ request GET na adres podany w operation.href.
15. Sklep informuje kupujacego
˛
/ posiadacza karty o statusie zamówienia.
4.2
Dla karty uczestniczacej
˛
w programie 3-D Secure
11
HTTP Routing Table
/cards
GET /cards/(string:id)/, 7
POST /cards/, 2
DELETE /cards/(string:id)/, 7
12