Zacznij akceptować płatności za pomocą Bancontact, najpopularniejszej metody płatności online w Belgii, utrzymując pozycję lidera na rynku zarówno w transakcjach internetowych, jak i osobistych.
Aby dokonać płatności za pomocą Bancontact, klienci są kierowani do witryny internetowej lub aplikacji mobilnej w celu autoryzacji. Wprowadzają dane swojej karty lub skanują kod QR, a następnie autoryzują płatność.
Następnie wracają na Twoją stronę internetową i natychmiast powiadamiają Cię o powodzeniu lub niepowodzeniu płatności.
Opcja płatności | Kategoria | Kraj | Waluta | Cechy | Integracje |
---|---|---|---|---|---|
Bancontact | Karty | Belgia | EUR | Częściowy zwrot pieniędzy Zwroty Anulowanie | API Formularz płatności Wtyczka Prestashop Wtyczka WooCommerce Wtyczka Magento |
Jak korzystać z Bancontact
Przepływ pracy przebiega w następujący sposób:
- Na stronie sprzedawcy klient wybiera Bancontact.
- Klient zostaje przekierowany na stronę płatności Bancontact, gdzie ma możliwość wprowadzenia numeru PAN lub zeskanowania kodu QR.
- Kończą płatność:
a. Jeśli konsument zdecyduje się na wprowadzenie numeru PAN, zostanie przekierowany do banku wydającego w celu uwierzytelnienia 3DS.
b. Jeśli konsument zeskanuje kod QR, potwierdza płatność w aplikacji Bancontact. - Konsument zostaje przekierowany na stronę internetową sprzedawcy.
- Sprzedawca otrzymuje potwierdzenie płatności.
- Następnie sprzedawca może wysłać zamówienie/dostarczyć towar konsumentowi.
Jak to działa
Poniżej znajdziesz najważniejsze kroki wymagane do integracji metody płatności Bancontact.
Krok 1: Utwórz zamówienie
Krok 2: Uzyskaj Link do płatności
Krok 3: Uzyskaj status płatności
Krok 1: Utwórz zamówienie
Pamiętaj, aby utworzyć żądanie zamówienia z Bancontact („BNCT”) jako wybraną metodą płatności (transaction.paymentMethod) i ustawić preferencje językowe klienta w CustomerInfo.customerLanguage.
Krok 2: Uzyskaj Link do płatności
Przejdź do linku do płatności opisanego poniżej, aby przekierować klienta na bezpieczną stronę płatności w celu uwierzytelnienia i autoryzacji płatności.
Należy pamiętać, że poniższe żądanie wymaga nagłówka autoryzacji zawierającego podpis transakcji uzyskany w poprzednim kroku.
Punkty końcowe:
Środowisko | URL | Metoda działania i punkt końcowy | Opis operacji |
---|---|---|---|
PROD | api.sibsgateway.com | POST {version-id}/payments/{id}/pbl/payment-link | Wykonaj transakcję i przekieruj użytkownika do Hosta płatności. |
TEST | stargate-cer.qly.site[1|2].sibs.pt | POST {version-id}/payments/{id}/pbl/payment-link | Wykonaj transakcję i przekieruj użytkownika do Hosta płatności. |
Upewnij się, że uwzględniłeś następujące istotne elementy zgodnie ze specyfikacją:
Lokalizacja | Element danych | Typ | Stan | Opis |
---|---|---|---|---|
Ścieżka | id | Ciąg | Obowiązkowy | Służy do identyfikacji transakcji |
Parametry nagłówka:
Lokalizacja | Element danych | Typ | Stan | Opis |
---|---|---|---|---|
Nagłówek żądania | Typ zawartości | Ciąg | Obowiązkowy | aplikacja/json |
Nagłówek żądania | Upoważnienie | Ciąg | Obowiązkowy | Podsumowanie autoryzacji |
Parametry żądania:
Lokalizacja | Element danych | Typ | Stan | Opis |
---|---|---|---|---|
Treść żądania | userAcceptanceIndicator | Wartość logiczna | Obowiązkowy | Wskazuje, czy użytkownik zaakceptował Regulamin, aby kontynuować płatność. |
Treść żądania | gatewayId | Ciąg | Obowiązkowy | Kanał płatności Identyfikator kanału, którego Klient będzie używał do dokonywania płatności. Wartość: 'bcmc’ – Bancontact; |
Treść żądania | informacja | Informacja | Obowiązkowy | Obiekt definiujący dodatkowe informacje o transakcji. |
Poproś o Body.info | deviceInfo | Informacje o urządzeniu | Opcjonalny | Obiekt definiujący informacje o urządzeniu klienta. |
Poproś o Body.info.deviceInfo | browserAcceptHeader | ciąg | Opcjonalny | Nagłówek akceptacji przeglądarki |
Poproś o Body.info.deviceInfo | browserJavaEnabled | ciąg | Opcjonalny | Przeglądarka Java włączona |
Poproś o Body.info.deviceInfo | browserLanguage | ciąg | Opcjonalny | Język przeglądarki |
Poproś o Body.info.deviceInfo | browserColorDepth | ciąg | Opcjonalny | Głębia kolorów przeglądarki |
Poproś o Body.info.deviceInfo | browserScreenHeight | ciąg | Opcjonalny | Wysokość ekranu przeglądarki |
Poproś o Body.info.deviceInfo | browserScreenWidth | ciąg | Opcjonalny | Szerokość ekranu przeglądarki |
Poproś o Body.info.deviceInfo | browserTZ | ciąg | Opcjonalny | Strefa czasowa przeglądarki |
Poproś o Body.info.deviceInfo | browserUserAgent | ciąg | Opcjonalny | Agent użytkownika przeglądarki |
Poproś o Body.info.deviceInfo | systemFamily | ciąg | Opcjonalny | Rodzina systemowa |
Poproś o Body.info.deviceInfo | systemVersion | ciąg | Opcjonalny | Wersja systemu |
Poproś o Body.info.deviceInfo | systemArchitecture | ciąg | Opcjonalny | architektura systemu |
Poproś o Body.info.deviceInfo | deviceManufacturer | ciąg | Opcjonalny | Producent urządzenia |
Poproś o Body.info.deviceInfo | deviceModel | ciąg | Opcjonalny | Model urządzenia |
Poproś o Body.info.deviceInfo | deviceID | ciąg | Opcjonalny | Unikalna identyfikacja urządzenia |
Poproś o Body.info.deviceInfo | applicationName | ciąg | Opcjonalny | Nazwa aplikacji |
Poproś o Body.info.deviceInfo | applicationVersion | ciąg | Opcjonalny | Wersja aplikacji |
Poproś o Body.info.deviceInfo | geoLocalization | ciąg | Opcjonalny | Geolokalizacja |
Poproś o Body.info.deviceInfo | ipAddress | ciąg | Opcjonalny | Adres IP |
Treść żądania | customerInfo | Informacja dla klientow | Opcjonalny | Tablica krotności wartości klucza. |
Poproś o Body.customerInfo | klucz | ciąg | Obowiązkowy | Używane do podawania „nazwy klienta”, „e-maila klienta”. |
Poproś o Body.customerInfo | wartość | ciąg | Obowiązkowy | Używane do podawania „nazwy klienta”, „e-maila klienta”. |
Treść żądania | sprzedawca | Sprzedawca | Opcjonalny | Dane sprzedawcy |
Zapytanie o Body.merchant | merchantURL | ciąg | Obowiązkowy | Adres URL sklepu sprzedawcy do przekierowania. |
Zapytanie o Body.merchant | appToAppURL | ciąg | Opcjonalny | Niestandardowy adres URL aplikacji do przekierowania klienta z powrotem do aplikacji, co spowodowało płatność. Ma zastosowanie, gdy identyfikator bramy to „bcmc”. Zastępuje adres URL sprzedawcy dla przepływów mobilnych. |
Poproś o Body.info | accountInfo | Informacje o koncie | Opcjonalny | Dane związane z kontem. Ma zastosowanie, gdy identyfikator bramy to „bcmc” |
Poproś o Body.info.accountInfo | holderName | Max100Text | Opcjonalny | Nazwa właściciela konta. Format UTF-8 . |
Poproś o Body.info.accountInfo | customerCountry | Kod kraju | Opcjonalny | Kod kraju klienta. Alpha2 |
Oto przykładowy sposób uzyskania linku do płatności:
{
"userAcceptanceIndicator": true,
"gatewayId": "bcmc",
"info": {
"deviceInfo": {
"browserAcceptHeader": "application/json, text/plain, */*",
"browserJavaEnabled": "false",
"browserLanguage": "en",
"browserColorDepth": "24",
"browserScreenHeight": "1080",
"browserScreenWidth": "1920",
"browserTZ": "-60",
"browserUserAgent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
"geoLocalization": "Lat: 38.7350528 | Long: -9.2143616",
"systemFamily": "Windows",
"systemVersion": "Windows",
"deviceID": "498bfd4c3a3645b38667a7037b616c18",
"applicationName": "Chrome",
"applicationVersion": "106"
},
"customerInfo": [
{
"key": "customerName",
"value": "Test Name"
},
{
"key": "customerEmail",
"value": email@provider.com
}
],
"accountInfo": {
"holderName": "Test Name",
"customerCountry": "BE"
}
},
"merchant": {
"appToAppURL": https://egadget2.azurewebsites.net/#/returns?id={{transactionId}},
"merchantURL": https://egadget2.azurewebsites.net/#/returns?id={{transactionId}}
}
}
Po pomyślnym zakończeniu operacji otrzymany zostanie status płatności „oczekujący”.
Użytkownik zostaje następnie przekierowany do środowiska potwierdzenia płatności, po czym bezproblemowo powróci do adresu URL sprzedawcy.
Krok 3: Uzyskaj status płatności
W dowolnym momencie możesz wykonać operację „Pobierz status”, aby sprawdzić status.
Nagłówek HTTP autoryzacji jest ustawiony na token nośnika, tak jak był używany podczas początkowej realizacji transakcji.
GET {transactionID}/status
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>’
Content-Type: application/json
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 | Akcja |
---|---|---|---|
HTTP-200 | Sukces | Odpowiedź powodzenia | 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 prawidłowej 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 zapytań | Przekroczono limit szybkości wywołań API. | Informacje na temat limitów stawek 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 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. |