giropay to niemiecka metoda płatności, która upraszcza zakupy online dzięki szybkim, bezpiecznym i gwarantowanym przelewom bankowym.
Jest to metoda płatności oparta na bankowości internetowej, która umożliwia klientom dokonywanie transakcji online, a środki są pobierane bezpośrednio z ich rachunków bankowych. W zależności od banku klienci mogą potwierdzać płatności za pomocą uwierzytelniania drugiego stopnia lub kodu PIN.
Opcja płatności | Kategoria | Kraj | Waluta | Cechy | Integracje |
---|---|---|---|---|---|
giropay | Bankowość internetowa | Niemcy | EUR | Częściowy zwrot pieniędzy Zwroty pieniędzy Anulowanie | API Formularz płatności Wtyczka Prestashop Wtyczka WooCommerce Wtyczka Magento |
Jak korzystać z giropay
Podróż przebiega w następujący sposób:
- Na stronie sprzedawcy klient wybiera płatność online za pośrednictwem giropay.
- Klient zostaje przekierowany na stronę, na której może wybrać preferowany bank i zostaje przekierowany na stronę bankowości internetowej banku.
- Następnie klient bezpiecznie loguje się do wybranego banku, korzystając z danych uwierzytelniających konta.
- Następnie klientowi prezentowane jest podsumowanie transakcji, umożliwiające mu przejrzenie wszystkich szczegółów transakcji przed autoryzacją płatności.
- Po autoryzacji potwierdzenie transakcji natychmiast dociera do klienta, a konsument zostaje przekierowany na stronę internetową sprzedawcy.
- Sprzedawca zostaje powiadomiony o pomyślnej płatności.
Jak to działa
Poniżej znajdziesz szczegółowy przegląd kluczowych kroków niezbędnych do integracji metody płatności giropay.
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
Upewnij się, że zainicjowałeś żądanie zamówienia z wybraną metodą płatności giropay („GRPY”) (transaction.paymentMethod) i skonfigurowałeś preferencje językowe klienta w CustomerInfo.customerLanguage.
Krok 2: Uzyskaj Link do płatności
Postępuj zgodnie z podanymi instrukcjami, aby uzyskać link do płatności, i 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 | identyfikator | Ciąg | Wymagane | Służy do identyfikacji transakcji |
Parametry nagłówka:
Lokalizacja | Element danych | Typ | Stan | Opis |
---|---|---|---|---|
Nagłówek żądania | Content-Type | Ciąg | Wymagane | aplikacja/json |
Nagłówek żądania | Upoważnienie | Ciąg | Wymagane | Podsumowanie autoryzacji |
Parametry żądania:
Lokalizacja | Element danych | Typ | Stan | Opis |
---|---|---|---|---|
Treść żądania | userAcceptanceIndicator | Wartość logiczna | Wymagane | Wskazuje, czy użytkownik zaakceptował Regulamin, aby kontynuować płatność. |
Treść żądania | gatewayId | Ciąg | Wymagane | Kanał płatności Identyfikator kanału, którego Klient będzie używał do dokonywania płatności. Wartość: 'giropay’ – giropay; |
Treść żądania | informacja | Informacja | Wymagane | Obiekt definiujący dodatkowe informacje o transakcji. |
Zapytanie Body.info | deviceInfo | Informacje o urządzeniu | Opcjonalnie | Obiekt definiujący informacje o urządzeniu klienta. |
Zapytanie Body.info.deviceInfo | browserAcceptHeader | ciąg | Opcjonalnie | Nagłówek akceptacji przeglądarki |
Zapytanie Body.info.deviceInfo | browserJavaEnabled | ciąg | Opcjonalnie | Przeglądarka Java włączona |
Zapytanie Body.info.deviceInfo | browserLanguage | ciąg | Opcjonalnie | Język przeglądarki |
Zapytanie Body.info.deviceInfo | browserColorDepth | ciąg | Opcjonalnie | Głębia kolorów przeglądarki |
Zapytanie Body.info.deviceInfo | browserScreenHeight | ciąg | Opcjonalnie | Wysokość ekranu przeglądarki |
Zapytanie Body.info.deviceInfo | browserScreenWidth | ciąg | Opcjonalnie | Szerokość ekranu przeglądarki |
Zapytanie Body.info.deviceInfo | browserTZ | ciąg | Opcjonalnie | Strefa czasowa przeglądarki |
Zapytanie Body.info.deviceInfo | browserUserAgent | ciąg | Opcjonalnie | Agent użytkownika przeglądarki |
Zapytanie Body.info.deviceInfo | systemFamily | ciąg | Opcjonalnie | Rodzina systemowa |
Zapytanie Body.info.deviceInfo | systemVersion | ciąg | Opcjonalnie | Wersja systemu |
Zapytanie Body.info.deviceInfo | systemArchitecture | ciąg | Opcjonalnie | architektura systemu |
Zapytanie Body.info.deviceInfo | deviceManufacturer | ciąg | Opcjonalnie | Producent urządzenia |
Zapytanie Body.info.deviceInfo | deviceModel | ciąg | Opcjonalnie | Model urządzenia |
Zapytanie Body.info.deviceInfo | deviceID | ciąg | Opcjonalnie | Unikalna identyfikacja urządzenia |
Zapytanie Body.info.deviceInfo | applicationName | ciąg | Opcjonalnie | Nazwa aplikacji |
Zapytanie Body.info.deviceInfo | applicationVersion | ciąg | Opcjonalnie | Wersja aplikacji |
Zapytanie Body.info.deviceInfo | geoLocalization | ciąg | Opcjonalnie | Geolokalizacja |
Zapytanie Body.info.deviceInfo | ipAddress | ciąg | Opcjonalnie | Adres IP |
Treść żądania | customerInfo | Informacja dla klientow | Opcjonalnie | Tablica krotności wartości klucza. |
Zapytanie Body.customerInfo | klucz | ciąg | Wymagane | Używane do podawania „customerName”, „customerEmail”. |
Zapytanie Body.customerInfo | wartość | ciąg | Wymagane | Używane do podawania „customerName”, „customerEmail”. |
Treść żądania | sprzedawca | Sprzedawca | Opcjonalnie | Dane Sprzedawcy |
Zapytanie Body.merchant | merchantURL | ciąg | Wymagane | Adres URL sklepu sprzedawcy do przekierowania. |
Zapytanie Body.info | accountInfo | Informacje o koncie | Opcjonalnie | Dane związane z kontem. Ma zastosowanie, gdy identyfikator bramki to „giropay”, |
Zapytanie Body.info.accountInfo | holderName | Max100Text | Opcjonalnie | Nazwa właściciela konta. Format UTF-8. |
Zapytanie Body.info.accountInfo | customerCountry | Kod kraju | Opcjonalnie | Kod kraju klienta. Alpha2 |
Oto przykładowy sposób uzyskania linku do płatności:
{
"userAcceptanceIndicator": true,
"gatewayId": "giropay",
"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": "DE"
}
},
"merchant": {
"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 okaziciela, 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:
Result Code | statusMsg | Description | Action |
---|---|---|---|
HTTP-200 | Success | Success response | N/A |
HTTP-400 | Bad Request | The JSON payload is not matching the API definition or some mandatory HTTP headers are missing. | Please check in API Market for the correct syntax. |
HTTP-401 | Unauthorized | On the Authorization, Bearer token is invalid/expired or not associated with the Terminal used. | Please check in SIBS Backoffice under the Credentials if the token is valid and create a new one if needed. |
HTTP-403 | Forbidden | The ClientID set on the X-IBM-Client-Id HTTP header is not valid or does not possess a valid subscription to the API. | Please check in SIBS Backoffice under the SPG APP 2.0 if the ClientID is correct. If the problem persists contact SIBS Gateway support for a ClientID reset. |
HTTP-405 | Method Not Allowed | The HTTP Method used is not matching any of the API definitions available. | Please check in API Market for the correct HTTP Method. |
HTTP-429 | Too Many Requests | The API calls rate limit has been exceeded. | Please check in API Market for information on the rate limits that apply to the API. |
HTTP-500 | Internal Server Error | The API call has failed… and its most likely on our side. | You should retry the operation, and if the problem persists contact SIBS Gateway support for assistance. |
HTTP-503 | Service Unavailable | The API call is not currently available. Usually we are always on, but short availability issues may occur during scheduled maintenance. | You should wait and try again later. |