Sprzedawcy mają możliwość dostosowania się do powracających klientów, oferując możliwość zapisania danych karty do wykorzystania w przyszłości. Można to jednak zrobić wyłącznie na wyraźne żądanie klienta i za jego wyraźną zgodą. Ta wygodna funkcja ma zastosowanie w przypadku transakcji obejmujących rodzaje płatności AUTH i PURS w przypadku korzystania z karty jako metody płatności.
Krok 1: Utworzenie tokena
Działanie 1: Utwórz zamówienie
Działanie 2: Wygeneruj transakcję
Działanie 3: Wykonaj polecenie Uzyskaj status
Utworzenie tokena obejmuje kilka działań, a sprzedawca i posiadacz karty mają do odegrania kilka ról:
- W żądaniu realizacji transakcji sprzedawca umożliwia powracającemu klientowi zapisanie karty do wykorzystania w przyszłości i generuje formularz karty z opcją „zapisz kartę”.
- Żądanie płatności zawiera dane karty i opcję „zapisz kartę”, żądającą od SIBS Gateway przetworzenia płatności i, w przypadku powodzenia, utworzenia tokena karty.
- Odpowiedź na płatność zwraca unikalny token karty i dane karty PCI, dzięki czemu sprzedawca może zapisać je obok danych klienta użytkownikowi w ramach płatności w oparciu o token karty.
Działanie 1: Utwórz zamówienie
Proces tworzenia tokenu rozpoczyna się w momencie rozpoczęcia tworzenia zamówienia poprzez dodanie następujących elementów tokenizacji do treści istniejącego komunikatu zamówienia.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments
Nagłówki żądań:
Autorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6I (...)
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Element danych | Typ | Stan | Opis |
tokenisation | Tokenizacja | Obowiązkowy | Tokeny płatności klientów. Tokeny te są dostarczane na koniec udanej tokenizacji. Obecny tylko do celów tokenizacji. |
tokenisationRequest | TokenisationRequest | Obowiązkowy | Pole udostępniane w żądaniu realizacji transakcji w celu wykonania tokenizacji karty. |
tokeniseCard | Wartość logiczna | Obowiązkowy | Wskazuje, czy zażądano tokenizacji karty. |
Przykładowe żądanie zawiera informacje o tokenizacji w następujący sposób:
{
"merchant": {
"terminalId": 24,
"channel": "web",
"merchantTransactionId": "Order Id: mg990kgc5c",
"transactionDescription": "transaction to create token",
"shopURL": "https://mytest.e-shop.pl/"
},
"transaction": {
"transactionTimestamp": "2023-05-23T07:54:20.418Z",
"description": "transaction statement description",
"moto": false,
"paymentType": "AUTH",
"amount": {
"value": 50.5,
"currency": "PLN"
},
"paymentMethod": [
"CARD"
]
},
"tokenisation": {
"tokenisationRequest": {
"tokeniseCard": true
}
}
}
Działanie 2: Wygeneruj transakcję
Należy zauważyć, że poniższe żądanie wymaga nagłówka autoryzacji z transactionSignature zwróconą z operacji realizacji transakcji i parametrem createToken ustawionym na wartość true.
W tym żądaniu token okaziciela zostaje zastąpiony transakcją odpowiedzi na kasę transactionSignature.
Na tym etapie konieczne jest dodanie do zakupu następujących elementów:
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/card/purchase
Nagłówki żądań:
Authorisation: Digest {transactionSignature}
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Element danych | Typ | Stan | Opis |
cardInfo | Informacje o karcie | Obowiązkowy | Obiekt definiujący pola żądania operacji płatniczej. |
PAN | Ciąg | Obowiązkowy | Podstawowy numer konta (numer karty kredytowej). |
secureCode | Ciąg | Opcjonalny | Kod zabezpieczający (CVV/CVC) powiązany z kartą kredytową. |
validationDate | ISODateTime | Obowiązkowy | Data ważności karty kredytowej. |
cardholderName | Ciąg | Obowiązkowy | Imię i nazwisko posiadacza karty widniejące na karcie kredytowej. |
createToken | Wartość logiczna | Obowiązkowy | Flaga wskazująca, czy utworzyć token do wykorzystania w przyszłości, czy nie (prawda/fałsz). |
Żądanie powinno zawierać:
"cardInfo": {
"PAN": "{{MCRegularCardNum}}",
"secureCode": "{{MCRegularCardCVV}}",
"validationDate": "{{MCRegularCardExpiry}}",
"cardholderName": "TKN {{trxDatetime}}",
"createToken": true
}
Działanie 3: Wykonaj polecenie Uzyskaj status
Status swojej transakcji możesz sprawdzić wysyłając żądanie GET.
Upewnij się, że nagłówek HTTP Authorization jest ustawiony na ten sam token okaziciela, który został użyty w początkowym zleceniu płatniczym.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status
Nagłówki żądań:
Authorization: ‘Bearer <AuthToken>’
X-IBM-Client-Id: ‘<ClientId>’
Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i returnStatus.statusCode=”000″.
Oto kilka przykładów możliwych kodów wyników:
Kod wyniku | statusMsg | Opis | Działanie |
---|---|---|---|
HTTP-200 | Powodzenie | Odpowiedź z powodzeniem. | Nie dotyczy |
HTTP-400 | Zła prośba | Ładunek JSON nie jest zgodny z definicją API lub brakuje niektórych obowiązkowych nagłówków HTTP. | Sprawdź w API Market poprawną składnię. |
HTTP-401 | Nieautoryzowany | W przypadku Autoryzacji token okaziciela jest nieprawidłowy/wygasł lub nie jest powiązany z używanym terminalem. | Sprawdź w SIBS Backoffice w sekcji Poświadczenia, czy token jest ważny i w razie potrzeby utwórz nowy. |
HTTP-403 | Zabroniony | Identyfikator klienta ustawiony w nagłówku HTTP X-IBM-Client-Id jest nieprawidłowy lub nie posiada ważnej subskrypcji interfejsu API. | Sprawdź w SIBS Backoffice w SPG APP 2.0, czy ClientID jest poprawny. Jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną SIBS Gateway w celu zresetowania ClientID. |
HTTP-405 | Niedozwolona metoda | Zastosowana metoda HTTP nie jest zgodna z żadną dostępną definicją API. | Sprawdź w API Market poprawną metodę HTTP. |
HTTP-429 | Zbyt dużo próśb | Przekroczono limit szybkości wywołań API. | Informacje na temat limitów połączeń mających zastosowanie do API można znaleźć w API Market. |
HTTP-500 | Wewnętrzny błąd serwera | Wywołanie API nie powiodło się… i najprawdopodobniej błąd jest to po naszej stronie. | Powinieneś ponowić operację, a jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną SIBS Gateway w celu uzyskania pomocy. |
HTTP-503 | serwis niedostępny | Wywołanie API nie jest obecnie dostępne. Zwykle jesteśmy zawsze aktywni, ale podczas planowej konserwacji mogą wystąpić krótkie problemy z dostępnością. | Powinieneś poczekać i spróbować ponownie później. |
Krok 2: Użycie tokena
Działanie 1: Utwórz zamówienie
Działanie 2: Wygeneruj transakcję
Działanie 3: Wykonaj polecenie Uzyskaj status
Dla powracającego klienta można udostępnić opcję płatności wcześniej tokenizowaną kartą powiązaną z jego kontem w sklepie sprzedawcy, przy użyciu metody AUTH lub PURS.
Proces wykorzystania tokena można zilustrować w następujących etapach:
- Sprzedawca przedstawia klientowi listę dostępnych kart, wyświetlając zamaskowany PAN (częściowy numer konta) i datę ważności. Informacje te są dostarczane przez bramę dostawcy usług (SPG) podczas utworzenia tokena.
- Klient identyfikuje żądaną kartę z listy i wprowadza jej CVV (wartość weryfikacyjną karty).
- Sprzedawca przystępuje do realizacji transakcji i płatności, wykorzystując do transakcji wybraną kartę tokenizowaną.
Zapewnia to płynność transakcji poprzez bezpieczne wykorzystanie przechowywanego tokena do przetwarzania płatności.
Działanie 1: Utwórz zamówienie
Proces wykorzystania tokena rozpoczyna się w momencie rozpoczęcia tworzenia zamówienia, włączając dodatkowy element tokena do istniejącej wiadomości treści zamówienia.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments
Nagłówki żądań:
Autorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6I (...)
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Element danych | Typ | Stan | Opis |
tokenisation | Tokenizacja | Obowiązkowy | Tokeny płatności klientów. Tokeny te są dostarczane na koniec udanej tokenizacji. Obecny tylko do celów tokenizacji. |
paymentTokens | Tokeny płatności | Obowiązkowy | Krotka wartości tokenu. |
tokenType | Ciąg | Obowiązkowy | Typ tokena. Możliwe wartości to ( „Karta”, „E-mail”, „Telefon komórkowy” ). |
wartość | Ciąg | Obowiązkowy | Wartość tokenu. |
Przykład żądania powinien zawierać następujący obiekt „tokenizacji” w celu uwzględnienia tokena płatności:
{
"merchant": {
"terminalId": 24,
"channel": "web",
"merchantTransactionId": "Order Id: bwatdhbew2",
"transactionDescription": "transaction with 3DS",
"shopURL": "https://mytest.e-shop.pl/"
},
"transaction": {
"transactionTimestamp": "2023-05-23T08:06:07.231Z",
"description": "transaction statement description",
"moto": false,
"paymentType": "AUTH",
"amount": {
"value": 50.5,
"currency": "PLN"
},
"paymentMethod": [
"CARD"
]
},
"tokenisation": {
"paymentTokens": [
{
"tokenType": "Card",
"value": "{{tokenValue}}"
}
]
}
}
Odpowiedź będzie zawierać tylko prawidłowe tokeny, które można wykorzystać w następnej akcji:
"tokenList": [
{
"tokenName": "TKN 2023-06-20T11:22:11.474Z",
"tokenType": "Card",
"value": "ODI2YWQ1MGEtMzhlNC00NjA2LTk2YTAtNjdjYTRjY2JiMDU2",
"maskedPAN": "520474******4390",
"expireDate": "2025-12-01T00:00:00.000Z",
"oneClickButton": "false"
}
Działanie 2: Wygeneruj transakcję
Następnie należy wygenerować transakcję dodając element tokeninfo.
Należy pamiętać, że poniższe żądanie wymaga nagłówka autoryzacji z podpisem transakcji zwróconym z operacji realizacji transakcji.
W tym żądaniu token okaziciela zostaje zastąpiony transakcją odpowiedzi na kasę transactionSignature.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/token/purchase
Nagłówki żądań:
Authorisation: Digest {transactionSignature}
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Element danych | Typ | Stan | Opis |
tokenInfo | TokenInfo | Obowiązkowy | Informacje o tokenie. |
wartość | Ciąg | Obowiązkowy | Wartość tokenu. |
secureCode | Ciąg | Opcjonalny | Bezpieczny kod tokenu. |
tokenType | Ciąg | Obowiązkowy | Typ tokena. Możliwe wartości to ( „Karta”, „E-mail”, „Telefon komórkowy” ). |
Przykład żądania powinien zawierać następujący obiekt „tokenInfo” zawierający niezbędne informacje o tokenie:
"tokenInfo": {
"value": "{{tokenValue}}",
"secureCode": "536",
"tokenType": "Card"
}
Działanie 3: Wykonaj polecenie Uzyskaj status
Status swojej transakcji możesz sprawdzić wysyłając żądanie GET.
Upewnij się, że nagłówek HTTP Authorization jest ustawiony na ten sam token okaziciela, który został użyty w początkowym zleceniu płatniczym.
Adres URL żądania:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status
Nagłówki żądań:
Authorization: ‘Bearer <AuthToken>’
X-IBM-Client-Id: ‘<ClientId>’
Pomyślna odpowiedź techniczna składa się ze statusu HTTP-200 i returnStatus.statusCode=”000″.
Kod wyniku | statusMsg | Opis | Działanie |
---|---|---|---|
HTTP-200 | Powodzenie | Odpowiedź z powodzeniem. | Nie dotyczy |
HTTP-400 | Zła prośba | Ładunek JSON nie jest zgodny z definicją API lub brakuje niektórych obowiązkowych nagłówków HTTP. | Sprawdź w API Market poprawną składnię. |
HTTP-401 | Nieautoryzowany | W przypadku Autoryzacji token okaziciela jest nieprawidłowy/wygasł lub nie jest powiązany z używanym terminalem. | Sprawdź w SIBS Backoffice w sekcji Poświadczenia, czy token jest ważny i w razie potrzeby utwórz nowy. |
HTTP-403 | Zabroniony | Identyfikator klienta ustawiony w nagłówku HTTP X-IBM-Client-Id jest nieprawidłowy lub nie posiada ważnej subskrypcji interfejsu API. | Sprawdź w SIBS Backoffice w SPG APP 2.0, czy ClientID jest poprawny. Jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną SIBS Gateway w celu zresetowania ClientID. |
HTTP-405 | Niedozwolona metoda | Zastosowana metoda HTTP nie jest zgodna z żadną dostępną definicją API. | Sprawdź w API Market poprawną metodę HTTP. |
HTTP-429 | Zbyt dużo próśb | Przekroczono limit szybkości wywołań API. | Informacje na temat limitów połączeń mających zastosowanie do API można znaleźć w API Market. |
HTTP-500 | Wewnętrzny błąd serwera | Wywołanie API nie powiodło się… i najprawdopodobniej błąd jest to po naszej stronie. | Powinieneś ponowić operację, a jeśli problem będzie się powtarzał, skontaktuj się z pomocą techniczną SIBS Gateway w celu uzyskania pomocy. |
HTTP-503 | serwis niedostępny | Wywołanie API nie jest obecnie dostępne. Zwykle jesteśmy zawsze aktywni, ale podczas planowej konserwacji mogą wystąpić krótkie problemy z dostępnością. | Powinieneś poczekać i spróbować ponownie później. |