Podczas konwencjonalnego procesu płatności klienci zazwyczaj muszą podać różne dane osobowe, w tym informacje o karcie, adresy rozliczeniowe i wysyłkowe, adres e-mail lub numer telefonu. Jednak Apple Pay znacznie usprawnia ten proces, umożliwiając klientom łatwe dokonywanie płatności kartą kredytową za pomocą płynnego i bezpiecznego procesu z wykorzystaniem uwierzytelniania Touch ID lub Face ID.
Po wybraniu przycisku Apple Pay:
- Klient otrzymuje przyjazny dla użytkownika arkusz płatności.
- Klienci wybierają preferowaną kartę płatniczą spośród dostępnych opcji.
- W celu zwiększenia bezpieczeństwa klienci potwierdzają swoją tożsamość za pomocą uwierzytelniania biometrycznego, takiego jak Face ID lub Touch ID, przed sfinalizowaniem płatności.
Opcja płatności | Kategoria | Kraje | Waluty | Cechy | Integracje |
---|---|---|---|---|---|
Apple Pay | Cyfrowy portfel | Czechy, Estonia, Francja, Niemcy, Polska, Portugalia, Rumunia, Słowacja | CZK, EUR, PLN, RON | Wstępnie autoryzowane przechwytywanie Zakup jednorazowy Częściowe przechwytywanie Częściowy zwrot kosztów Subscrypcje Zwrot kosztów Anulowanie | API Formularz Płatności Wtyczka Prestashop Wtyczka WooCommerce Wtyczka Magento |
Przed rozpoczęciem
Aby móc otrzymywać płatności Apple Pay, konieczne jest ustawienie i skonfigurowanie integracji Apple Pay, co również wymaga użycia certyfikatu.
Upewnij się, że Twój serwer jest odpowiednio przygotowany do bezpiecznej komunikacji z Apple Pay, spełniając te warunki wstępne.
- Działająca domena z ważnym certyfikatem SSL
- Dostępność terminala Secure Shell (SSH) do użytku.
- Odpowiednie uprawnienia przyznane w celu uzyskania dostępu do plików serwera, ułatwiające przesyłanie niezbędnych plików na serwer.
Więcej informacji można znaleźć na stronie Ustawienie Serwara.
Jak skonfigurować Apple Pay
Aby skonfigurować i włączyć Apple Pay do płatności, pierwszym krokiem jest uzyskanie Apple Development Account i ubieganie się o Apple Developer Program albo Enterprise. Należy liczyć się z kilkudniowym oczekiwaniem na zatwierdzenie.
Proces ten wymaga zalogowania się przy użyciu konta Apple Developer i obejmuje następujące główne kroki:
Krok 1: Utwórz Merchant ID
Krok 2: Wygenerowanie certyfikatu przetwarzania płatności
Krok 3: Zarejestruj domeny, które będą przetwarzać transakcje Apple Pay
Krok 4: Utworzenie certyfikatu tożsamości sprzedawcy
Krok 1: Utwórz Merchant ID
W Apple Developer, pod Certyfikaty, Identifikatory & Profile, utwórz Merchant ID.
Aby uzyskać więcej informacji, zapoznaj się z wytycznymi ApplePay, aby wygenerować identyfikator merchanta.
Krok 2: Wygenerowanie certyfikatu przetwarzania płatności
Twój Account Manager dostarczy ci plik .CSR niezbędny do wygenerowania certyfikatu przetwarzania płatności Apple Pay, jak opisano w bieżącym kroku.
Przejdź do Apple Developer, wybierz merchant ID, i wybierz Stwórz Certyfikat.
Kliknij Wybierz plik aby przesłać dostarczony plik CSR.
Pobierz certyfikat i udostępnij go swojemu Account Manager’owi.
Krok 3: Zarejestruj domeny, które będą przetwarzać transakcje Apple Pay
Przejdź do Apple Developer, wejdź w Certyfikaty, Identyfikatory & Profilei znajdź wcześniej utworzony Merchant ID.
W ramach Apple Pay w sekcji Web, kliknij guzikDodaj domenę i postępuj zgodnie z krokami opisanymi przez Apple.
Aby uzyskać więcej informacji, zapoznaj się z wytycznymi dotyczącym rejestracji domeny sprzedawcy.
Krok 4: Utworzenie certyfikatu tożsamości sprzedawcy
Wygeneruj plik .p12 i powiązane hasło, aby umożliwić transakcje za pośrednictwem bramki płatności SIBS i wyślij je do swojegoAccount Managera w celu uwierzytelnienia komunikacji z serwerami Apple Pay.
Plik .p12 można utworzyć za pomocą różnych środków, w tym OpenSSL, KeyTool lub KeyChain Access (dostępny tylko w systemach Mac).
Opcja 1: Wygenerowanie pliku .p12 przy użyciu OpenSSL
Opcja 2: Utworzenie pliku .p12 przy użyciu Keychain Access (wyłącznie dla komputerów Mac)
Opcja 1: Wygenerowanie pliku .p12 przy użyciu OpenSSL
1. Wygeneruj Certyfikat Signing Request (ecccertreq.csr):
Zadanie to można łatwo wykonać za pomocą polecenia terminala, opisanego poniżej:
openssl req -new -newkey rsa:2048 -nodes -keyout applepay.key -out applepay.csr -subj '/O=My Company/C=PL'
Upewnij się, że CSR został wygenerowany z danymi Twojej firmy. W podanym przykładzie „O=My Company” należy zastąpić rzeczywistą nazwą firmy, a „C=PL” należy zastąpić odpowiednim kodem kraju dla firmy.
Spowoduje to wygenerowanie dwóch plików:
- applepay.key
- applepay.csr
Przechowuj te pliki w miejscu, w którym będziesz mógł się do nich później odwołać.
2. Wgraj Merchant Identity Certificate CSR:
a. Przejdź do Certyfikaty, Identyfikatory & Profile.
b. Wybierz Identyfikatory z paska bocznego.
c. W sekcji Identyfikatory przefiltruj i wybierz Merchant IDs.
d. Wybierz identyfikator merchanta.
e. Kliknij w Stwórz Certyfikat podApple Pay w Web and Merchant Identity Certificate.
f. Kliknij Wybierz Plik. In the dialog that appears, select the certificate request file (applepay.csr), then select Choose.
g. Wybierz Koontynuuj aby kontynuować proces pobierania certyfikatu tożsamości merchanta podpisanego przez Apple.
3. Pobierz podpisany przez Apple certyfikat przetwarzania płatności:
a. Ponownie, przejdź do Certyfikaty, Identyfikatory & Profile.
b. Wybierz Identyfikatory z paska bocznego.
c. W sekcji Identyfikatory wybierz Merchant IDs.
d. Wybierz identyfikator merchanta.
e. Kliknij Pobierz podApple Pay w Web and Merchant Identity Certificate. Spowoduje to zapisanie pliku certyfikatu (apple_pay.cer) w folderze Pobrane.
4. Wygeneruj plik .p12 (ecckeystore.p12):
Konieczne będzie przekonwertowanie pliku .cer na plik .pem przy użyciu następującego polecenia terminala:
openssl x509 -inform der -in apple_pay.cer -out apple_pay.pem
Następnie będzie można wygenerować plik .p12 za pomocą następującego polecenia:
openssl pkcs12 -export -out merchant_id-v2.p12 -inkey applepay.key -in apple_pay.pem
Opcja 2: Utworzenie pliku .p12 przy użyciu Keychain Access (wyłącznie dla komputerów Mac)
1. Wygeneruj żądanie podpisania certyfikatu:
a. Przejdź do folderu Narzędzia w folderze Aplikacje w swoim komputerze Mac i uruchom Keychain Access.
b. Z rozwijanego menu Keychain Access, przejdź do Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority.
c. Wypełnij okno Certificate Information wymaganymi danymi:
– Wprowadź swój adres e-mail i przypisz nazwę do klucza prywatnego.
– Zostaw pole CA Email Address puste.
– Pod Zapytanie jest grupa, zaznacz opcję Zapisz na dysku .
– Wybierz Pozwól mi podać informacje o parze kluczy.
d. Przejdź dalej klikając Kontynuuj w Keychain Access i określ lokalizację pliku.
e. Ustaw Key Pair Information w następujący sposób:
– Algorytm: ECC
– Key Size: 256 bits
f. Zakończ proces generowania CSR, klikając Continue within Keychain Access.
2. Załaduj Merchant Identity Certificate CSR:
a. Przejdź do Certyfikaty, Identyfikatory & Profile.
b. Wybierz Identyfikatory z paska bocznego.
c. W sekcji Identyfikatory przefiltruj i wybierz Merchant IDs.
d. Wybierz identyfikator merchanta.
e. Kliknij Stwórz Certyfikat pod Apple Pay on the Web and Merchant Identity Certificate.
f. Kliknij Wybierz Plik. W wyświetlonym oknie dialogowym wybierz plik żądania certyfikatu (ecccertreq.csr), a następnie wybierz opcję Choose.
g. Wybierz Koontynuuj aby kontynuować proces pobierania certyfikatu tożsamości merchanta podpisanego przez Apple.
3. Pobieranie podpisanego przez Apple Merchant Identity Certificate:
a. Ponownie, przejdź do Certyfikaty, Identyfikatory & Profile.
b. Wybierz Identyfikatory z paska bocznego.
c. W sekcji Identyfikatory wybierz Merchant IDs.
d. Wybierz identyfikator merchanta.
e. Kliknij Pobierz podApple Pay on the Web and Merchant Identity Certificate. Spowoduje to zapisanie pliku certyfikatu (apple_pay.cer) w folderze Pobrane.
4. Wygeneruj plik .p12 (ecckeystore.p12):
a. Double-click the apple_pay.cer file to install it in Keychain Access.
b. Wyeksportuj zarówno certyfikat przetwarzania płatności, jak i parę kluczy do pliku .p12:
– Wybierz Payment Processing Certificate.
– Przytrzymując klawisz Cmd , wybierz również plik pary kluczy.
– Z menu rozwijanego Dostęp do pęku kluczy wybierz opcję Plik > Export Items.
– Podaj nazwę pliku .p12 i zapisz .
Po zakończeniu tego procesu będziesz mógł rozpocząć płatność.
Dokonać płatności
Krok 1: Utwórz zamówienie
Krok 2: Uzyskanie sesji płatności
Krok 3: Złożenie wniosku o płatność
Krok 4: Sprawdź status płatności
Krok 1: Utwórz zamówienie
W pierwszej kolejności należy zainicjować tworzenie zamówienia.
Po wygenerowaniu żądania zamówienia pamiętaj o podaniu „XPAY” jako metody płatności.
Krok 2: Uzyskanie sesji płatności
Po wykonaniu tego kroku konieczne będzie zainicjowanie połączenia synchronicznego w celu skonfigurowania sesji ApplePay.
GET {version-id}/{id}/xpay/payment/applepay-session
Ścieżka i parametry nagłówka:
Lokalizacja | Element Danych | Typ | Stan | Opis |
---|---|---|---|---|
Ścieżka | Id | Ciąg | Warunkowy | Służy do sprawdzania statusu transakcji według identyfikatora transakcji |
Nagłówek żądania | Typ zawartości | Ciąg | Obowiązkowy | application/json |
Nagłówek żądania | Autoryzacja | Ciąg | Obowiązkowy | Podsumowanie autoryzacji |
Pomyślna odpowiedź techniczna jest wskazywana przez status HTTP-200 wraz z wartością returnStatus.statusCode „000”.
Krok 3: Złożenie wniosku o płatność
Następnie złóż wniosek o płatność zgodnie z poniższym szczegółowym komunikatem.
Environment | URL | Operation Method & Endpoint | Operation Description |
---|---|---|---|
PROD | api.sibsgateway.com | POST version-id/{id}/xpay/payment | Requests the payment registered by the previous checkout using xpay payment details inserted by the customer. |
TEST | stargate-cer.qly.site[1|2].sibs.pt | POST version-id/{id}/xpay/payment | Requests the payment registered by the previous checkout using xpay payment details inserted by the customer. |
Poniższy komunikat przedstawia żądanie płatności Apple Pay:
Location | Data Element | Type | Condition | Description |
---|---|---|---|---|
Path | id | String | Conditional | Transaction Id |
Parametry nagłówka:
Lokalizacja | Element Danych | Typ | Stan | Opis |
---|---|---|---|---|
Nagłówek żądania | Typ zawartości | Ciąg | Obowiązkowy | aplikacja/json |
Nagłówek żądania | autoryzacja | Ciąg | Obowiązkowy | Token okaziciela. Na podstawie uwierzytelniania OAuth2 przeprowadzonego na etapie wstępnym. |
Nagłówek żądania | x-ibm-client-id | Ciąg | Obowiązkowy | Token identyfikujący organizację klienta. Jest on podawany podczas procesu onboardingu i należy go stosować podczas każdego połączenia. |
Parametry żądania:
Lokalizacja | Element Danych | Typ | Stan | Opis |
---|---|---|---|---|
Treść żądania | tokenInfo | TokenInfo | Warunkowy | Tokeny płatnicze |
Żądanie Body.tokenInfo | tokenName | Ciąg | Opcjonalny | Nazwa tokena |
Żądanie Body.tokenInfo | tokenType | Ciąg | Obowiązkowe | Typ tokena. Możliwe wartości to („ApplePay”, „GooglePay”). |
Żądanie Body.tokenInfo | value | Ciąg | Obowiązkowe | Wartość tokena |
Treść żądania | info | Informacja | Obowiązkowe | Obiekt definiujący dodatkowe informacje o transakcji. |
Zapytanie Body.info | deviceInfo | Informacje o urządzeniu | Obowiązkowe | Obiekt definiujący informacje o urządzeniu klienta. |
Zapytanie Body.info.deviceInfo | browserAcceptHeader | Ciąg | Opcjonalny | Browser Accept Header |
Zapytanie Body.info.deviceInfo | browserJavaEnabled | Ciąg | Opcjonalny | Przeglądarka Java włączona |
Zapytanie Body.info.deviceInfo | browserJavascriptEnabled | Ciąg | Opcjonalny | Przeglądarka z włączonym JavaScriptem |
Zapytanie Body.info.deviceInfo | browserLanguage | Ciąg | Opcjonalny | Język przeglądarki |
Zapytanie Body.info.deviceInfo | browserColorDepth | Ciąg | Opcjonalny | Głębia kolorów przeglądarki |
Zapytanie Body.info.deviceInfo | browserScreenHeight | Ciąg | Opcjonalny | Wysokość ekranu przeglądarki |
Zapytanie Body.info.deviceInfo | browserScreenWidth | Ciąg | Opcjonalny | szerokość ekranu przeglądarki |
Zapytanie Body.info.deviceInfo | browserTZ | Ciąg | Opcjonalny | Strefa czasowa przeglądarki |
Zapytanie Body.info.deviceInfo | browserUserAgent | Ciąg | Opcjonalny | Agent użytkownika przeglądarki |
Zapytanie Body.info.deviceInfo | systemFamily | Ciąg | Opcjonalny | Rodzina systemowa |
Zapytanie Body.info.deviceInfo | systemVersion | Ciąg | Opcjonalny | Wersja systemu |
Zapytanie Body.info.deviceInfo | systemArchitecture | Ciąg | Opcjonalny | architektura systemu |
Zapytanie Body.info.deviceInfo | deviceManufacturer | Ciąg | Opcjonalny | Producent systemu |
Zapytanie Body.info.deviceInfo | deviceModel | Ciąg | Opcjonalny | Model urządzenia |
Zapytanie Body.info.deviceInfo | deviceID | Ciąg | Opcjonalny | Unikalna identyfikacja urządzenia |
Zapytanie Body.info.deviceInfo | applicationName | Ciąg | Opcjonalny | Nazwa aplikacji |
Zapytanie Body.info.deviceInfo | applicationVersion | Ciąg | Opcjonalny | Wersja aplikacji |
Zapytanie Body.info.deviceInfo | geoLocalization | Ciąg | Opcjonalny | Geolokalizacja |
Zapytanie Body.info.deviceInfo | ipAddress | Ciąg | Opcjonalny | Adres IP |
Zapytanie Body.info | customerInfo | Informacje o kliencie | Obowiązkowe | Tablica krotności wartości klucza. |
Zapytanie Body.info.customerInfo | key | Ciąg | Opcjonalny | |
Zapytanie Body.info.customerInfo | value | Ciąg | Opcjonalny |
Poniżej znajduje się przykład płatności Apple Pay:
{
"info": {
"deviceInfo": {
"browserAcceptHeader": "application/json, text/plain, */*",
"browserJavaEnabled": "false",
"browserJavascriptEnabled": "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"
}
]
},
"tokenInfo": {
"tokenType": "applePay",
"value": "{{appleTokenValue}}"
}
}
Po przetworzeniu płatności otrzymasz odpowiedź wskazującą status transakcji. Dodatkowo możesz w dowolnym momencie wykonać operację „Pobierz status”, aby sprawdzić status.
Krok 4: Sprawdź status płatności
W tym kroku nagłówek HTTP Authorization jest ustawiony na token Bearer, który został użyty w początkowym Checkoucie.
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. |