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, Francja, Niemcy, Polska, Portugalia, Rumunia, Słowacja, Słowenia | 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:
Location | Data Element | Type | Condition | Description |
---|---|---|---|---|
Request Body | tokenInfo | TokenInfo | Conditional | Payment Tokens |
Request Body.tokenInfo | tokenName | String | Optional | Token Name |
Request Body.tokenInfo | tokenType | String | Mandatory | Token Type. Possible values are („ApplePay”, „GooglePay”). |
Request Body.tokenInfo | value | String | Mandatory | Token Value |
Request Body | info | Info | Mandatory | Object that defines the transaction additional information. |
Request Body.info | deviceInfo | DeviceInfo | Mandatory | Object that defines the customer device information. |
Request Body.info.deviceInfo | browserAcceptHeader | String | Optional | Browser Accept Header |
Request Body.info.deviceInfo | browserJavaEnabled | String | Optional | Browser Java Enabled |
Request Body.info.deviceInfo | browserJavascriptEnabled | String | Optional | Browser Javascript Enabled |
Request Body.info.deviceInfo | browserLanguage | String | Optional | browser Language |
Request Body.info.deviceInfo | browserColorDepth | String | Optional | browser Color Depth |
Request Body.info.deviceInfo | browserScreenHeight | String | Optional | browser Screen Height |
Request Body.info.deviceInfo | browserScreenWidth | String | Optional | browser Screen Width |
Request Body.info.deviceInfo | browserTZ | String | Optional | Browser Time Zone |
Request Body.info.deviceInfo | browserUserAgent | String | Optional | Browser User Agent |
Request Body.info.deviceInfo | systemFamily | String | Optional | System Family |
Request Body.info.deviceInfo | systemVersion | String | Optional | System Version |
Request Body.info.deviceInfo | systemArchitecture | String | Optional | System Architecture |
Request Body.info.deviceInfo | deviceManufacturer | String | Optional | System Manufacturer |
Request Body.info.deviceInfo | deviceModel | String | Optional | Device Model |
Request Body.info.deviceInfo | deviceID | String | Optional | Device Unique Identification |
Request Body.info.deviceInfo | applicationName | String | Optional | Application Name |
Request Body.info.deviceInfo | applicationVersion | String | Optional | Application Version |
Request Body.info.deviceInfo | geoLocalization | String | Optional | Geolocation |
Request Body.info.deviceInfo | ipAddress | String | Optional | IP Address |
Request Body.info | customerInfo | CustomerInfo | Mandatory | Key Value tuple array. |
Request Body.info.customerInfo | key | String | Optional | |
Request Body.info.customerInfo | value | String | Optional |
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:
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. |