Przejdź do głównej zawartości

Apple Pay

Wstęp

Apple Pay™ to portfel cyfrowy, który upraszcza płatności kartą, umożliwiając szybkie i bezproblemowe transakcje bez konieczności wielokrotnego wprowadzania danych karty. Ta opcja jest kompatybilna z określonymi przeglądarkami oraz urządzeniami Apple, takimi jak telefony i komputery.

Apple Pay jest dostępne dla wybranych przeglądarek oraz urządzeń (telefonów i komputerów) firmy Apple. Pełną listę wspieranych krajów oraz urządzeń znajdziesz na stronach Apple:

Notatka

Poniższy opis dotyczy udostępnienia tej usługi w aplikacji mobilnej lub poprzez wywołanie aplikacji Apple Pay bezpośrednio ze strony odbiorcy płatności (sklepu internetowego).

Konfiguracja Apple Pay

Aby obsługiwać płatności Apple Pay w swojej aplikacji mobilnej lub na stronie internetowej w pierwszej kolejności potrzebujesz konta Apple Development Account oraz złożenia wniosku o przystąpienie do Apple Developer Program. Zatwierdzenie wniosku może trwać kilka dni. Następnie musisz wykonać następujące czynności:

  • utworzyć identyfikator Merchant ID,
  • utworzyć Apple Pay Payment Processing Certificate,
  • utworzyć Apple Pay Merchant Identity – dotyczy tylko integracji web,
  • zwalidować domenę – dotyczy tylko integracji web.
Notatka

Jeżeli nie chcesz korzystać z integracji web, możesz pominąć dwa ostatnie etapy.

Utworzenie identyfikatora Merchant ID

W celu utworzenia identyfikatora Merchant ID wykonaj kolejno następujące kroki:

  1. Zaloguj się do swojego konta Apple Developer.
  2. Wybierz opcję Certificates, IDs & Profiles.
  3. Wybierz opcję Identifiers.
  4. Dodaj nowy Merchant ID, wybierając znak + w prawej górnej części ekranu.
  5. Wprowadź ID oraz opis i wybierz opcję Continue.
  6. Potwierdź wprowadzone dane, wybierając opcję Register.

Utworzenie Apple Pay Payment Processing Certificate

Notatka

Przed utworzeniem certyfikatu skontaktuj się z nami (wybierz: Sprzedaję z PayU > Integracja > Inne pytanie?) aby otrzymać plik CSR, który jest niezbędny w poniższym procesie.

W celu utworzenia identyfikatora Payment Processing Certificate, wykonaj kolejno następujące kroki:

  1. Zaloguj się do swojego konta Apple Developer.
  2. Wybierz opcję Certificates, IDs & Profiles.
  3. Wybierz opcję Identifiers.
  4. Wybierz utworzony Merchant ID i wybierz opcję Edit. Możesz ułatwić sobie wyszukiwanie korzystając z filtra Merchant IDs w prawej górnej części ekranu.
  5. W sekcji Apple Pay Payment Processing Certificate wybierz opcję Create Certificate.
  6. Na następnym ekranie wybierz opcję Continue.
  7. Otrzymany z działu wsparcia IT PayU plik CSR załaduj na stronie, korzystając z opcji Choose File, a następnie wybierz opcję Continue.
  8. Pobierz wygenerowany certyfikat.
  9. Pobrany certyfikat (plik apple_pay.cer) wyślij przez formularz kontaktowy PayU (wybierz: Sprzedaję z PayU > Integracja > Inne pytanie?).

Walidacja domeny

Notatka

Dotyczy tylko integracji web.

W celu walidacji domeny wykonaj kolejno następujące kroki:

  1. Zaloguj się do swojego konta Apple Developer.
  2. Wybierz opcję Certificates, IDs & Profiles.
  3. Wybierz opcję Identifiers.
  4. Wybierz utworzony Merchant ID i wybierz opcję Edit. Możesz ułatwić sobie wyszukiwanie korzystając z filtra Merchant IDs w prawej górnej części ekranu.
  5. W sekcji Merchant Domains wybierz opcję Add Domain.
  6. Wprowadź nazwę swojej domeny i wybierz opcję Continue.
    Notatka

    Domena musi obsługiwać HTTPS. Sprawdź, czy ustawienia serwera są zgodne z Apple guidelines.

  7. Pobierz plik apple-developer-merchantid-domain-association.txt.
    Notatka

    Pobierz plik tylko raz przed wykonaniem walidacji domeny! Ponowne pobranie generuje nową zawartość pliku, co może skutkować błędem w procesie walidacji domeny.

  8. Umieść pobrany plik na serwerze, w miejscu podanym przez Apple.
  9. Wybierz opcję Verify.

Utworzenie Apple Pay Merchant Identity Certificate

Notatka

Dotyczy tylko integracji web.

W celu utworzenia Apple Pay Merchant Identity Certificate wykonaj kolejno następujące kroki:

  1. Zaloguj się do swojego konta Apple Developer.
  2. Wybierz opcję Certificates, IDs & Profiles.
  3. Wybierz opcję Identifiers.
  4. Wybierz utworzony Merchant ID i wybierz opcję Edit. Możesz ułatwić sobie wyszukiwanie korzystając z filtra Merchant IDs w prawej górnej części ekranu.
  5. W sekcji Apple Pay Merchant Identity Certificate wybierz opcję Create Certificate.
  6. Wykonaj kroki opisane na stronie Apple w celu przygotowania pliku CSR, a następnie wybierz opcję Continue.
  7. Wczytaj wygenerowany plik CSR, korzystając z opcji Choose File a następnie wybierz opcję Continue.
  8. Pobierz wygenerowany certyfikat (merchant_id.cer) i otwórz go w aplikacji Keychain Access na komputerze Mac.
  9. Wybierz zaimportowany certyfikat w aplikacji Keychain Access i wyeksportuj do formatu .p12 (Personal Information Exchange).
  10. (opcjonalnie) Wykonaj polecenie:
    openssl pkcs12 -in merchant_id.p12 -out merchant_id.pem -nodes -clcerts
    Jeżeli preferujesz format .p12 dla certyfikatów i łatwiej jest Tobie nimi zarządzać w tym formacie, to możesz pominąć wykonanie tego kroku.
  11. Wgraj utworzony certyfikat w preferowanym sobie formacie na serwer. Będzie on niezbędny do utworzenia Apple Pay Payment Session w procesie walidacji sklepu podczas tworzenia płatności.

Integracja

Notatka

W przypadku korzystania z płatności wielowalutowych wraz z Apple Pay w integracji white-label, podczas tworzenia Apple Pay Session, należy wykorzystać kwotę już po przewalutowaniu, policzoną według opisu.

Integracja iOS

Aby zintegrować aplikację mobilną z płatnością Apple Pay, postępuj zgodnie z instrukcją na stronie Apple Developer poświęconej Apple Pay.

Aby integracja była łatwiejsza, wykorzystaj dokumentację PayU | Mobile.

Integracja web

Aby zintegrować stronę internetową z płatnością Apple Pay, postępuj zgodnie z instrukcją na stronie Apple Developer.

W trakcie tworzenia Apple Pay Session zwróć uwagę, że PayU wspiera tylko karty płatnicze Visa oraz MasterCard w wariancie 3DS, co implikuje odpowiednie sparametryzowanie tworzonego żądania Apple Pay (niezależnie od tego czy korzystasz z Apple Pay JS API czy Payment Request API):

var request = {
...,
supportedNetworks: ['visa', 'masterCard'],
merchantCapabilities: ['supports3DS'],
...
}

Zwróć również uwagę, że dla każdej tworzonej sesji należy obsłużyć zdarzenia:

  • onvalidatemerchant - przy czym zwróć uwagę, że żądanie utworzenia Apple Pay Payment Session musi być z części serwerowej Twojej aplikacji web;
  • onpaymentauthorized - gdzie w odpowiedzi Apple zwróci obiekt PaymentData (JSON), w polu event.payment.token.paymentData przesyłając bezpiecznie zaszyfrowany Token Apple Pay.

Przykładowy Token Apple Pay:

{
"version": "EC_v1",
"data": "DjI8Ez7nPhVo742aGEzABz/TfxCPt9LSdf2/h+0xIgVJbi3fQqd4lv3ogoTI3SQ7vZrDAWI8g2lbd5sflXBHc0z+wSeybsCcqZB3n1edRFXU7+6DYmdhFFWWCejwUc6XZWmsSaVNEQf+Kc0SeYrj8Eskdapj8bYX/QXxXSPqS4IKSjB+f3O0gUXSq7LK/jA9dl+BbWW0l3gXERU6n5rcYndO5rnjiwNUpnm7EMIMfNU+IPbsubpL82kbL2MdMJB1grel03J4JKld6G0pFSmjR2mF/xBY/yKkADRhoQkVlDRicuKVMpdRXXbIQjw/yRkLv/u8iy1wXI5YmEBB+W4QpPYsuxys94gMPaKhcaEK/OaT099aFrNBezbuLMTcTzbhXOpPwWn9pkAK0eZNOQ==",
"signature": "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",
"header": {
"ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZMzlWOx8Xo8pXlOvzYONy+gvUy59ZOeuCov3kzc7fESczZTyvmA9dU9AdVMFaYyfCXlMG5oedi3Wy4yubqfxtg==",
"publicKeyHash": "xrJqUFO2jN5edGS8iETkfNXtwqnwSqRUUrQJBysFpZ8=",
"transactionId": "aa0b77fbb4f64cd3e5deef65177938b2d836e0d7d93d58000d8d54cfca19ae13"
}
}

Tworzenie zamówienia Apple Pay

Aby obciążyć kartę płatniczą zapisaną w Apple Pay, należy w żądaniu zamówienia umieścić rozszerzony obiekt payMethods.

Obiekt payMethods.payMethod musi zawierać pole authorizationCode, którego wartość to parametr Token Apple Pay zakodowany funkcją Base64. Natomiast pole payMethod.value powinno mieć wartość jp, a payMethod.type wartość PBL.

Kodowanie tokenu Apple Pay

Korzystając z PayU SDK, nie musisz samodzielnie kodować tokenu Apple Pay. SDK automatycznie zakoduje wymagane pola.

"payMethods": {
"payMethod": {
"value": "jp",
"type": "PBL",
"authorizationCode": "ewogICJ2ZXJzaW9uIjogIkVDX3YxIiwKICAiZGF0YSI6ICJEakk4RXo3blBoVm83NDJhR0V6QUJ6L1RmeENQdDlMU2RmMi9oKzB4SWdWSmJpM2ZRcWQ0bHYzb2dvVEkzU1E3dlpyREFXSThnMmxiZDVzZmxYQkhjMHord1NleWJzQ2NxWkIzbjFlZFJGWFU3KzZEWW1kaEZGV1dDZWp3VWM2WFpXbXNTYVZORVFmK0tjMFNlWXJqOEVza2RhcGo4YllYL1FYeFhTUHFTNElLU2pCK2YzTzBnVVhTcTdMSy9qQTlkbCtCYldXMGwzZ1hFUlU2bjVyY1luZE81cm5qaXdOVXBubTdFTUlNZk5VK0lQYnN1YnBMODJrYkwyTWRNSkIxZ3JlbDAzSjRKS2xkNkcwcEZTbWpSMm1GL3hCWS95S2tBRFJob1FrVmxEUmljdUtWTXBkUlhYYklRancveVJrTHYvdThpeTF3WEk1WW1FQkIrVzRRcFBZc3V4eXM5NGdNUGFLaGNhRUsvT2FUMDk5YUZyTkJlemJ1TE1UY1R6YmhYT3BQd1duOXBrQUswZVpOT1E9PSIsCiAgInNpZ25hdHVyZSI6ICJNSUFHQ1NxR1NJYjNEUUVIQXFDQU1JQUNBUUV4RHpBTkJnbGdoa2dCWlFNRUFnRUZBRENBQmdrcWhraUc5dzBCQndFQUFLQ0FNSUlENWpDQ0E0dWdBd0lCQWdJSWFHRDJtZG5NcHc4d0NnWUlLb1pJemowRUF3SXdlakV1TUN3R0ExVUVBd3dsUVhCd2JHVWdRWEJ3YkdsallYUnBiMjRnU1c1MFpXZHlZWFJwYjI0Z1EwRWdMU0JITXpFbU1DUUdBMVVFQ3d3ZFFYQndiR1VnUTJWeWRHbG1hV05oZEdsdmJpQkJkWFJvYjNKcGRIa3hFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVE1CNFhEVEUyTURZd016RTRNVFkwTUZvWERUSXhNRFl3TWpFNE1UWTBNRm93WWpFb01DWUdBMVVFQXd3ZlpXTmpMWE50Y0MxaWNtOXJaWEl0YzJsbmJsOVZRelF0VTBGT1JFSlBXREVVTUJJR0ExVUVDd3dMYVU5VElGTjVjM1JsYlhNeEV6QVJCZ05WQkFvTUNrRndjR3hsSUVsdVl5NHhDekFKQmdOVkJBWVRBbFZUTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFZ2pEOXE4T2M5MTRnTEZEWm0wVVM1amZpcVFIZGJMUGdzYzFMVW1lWStNOU92ZWdhSmFqQ0hrd3ozYzZPS3BiQzlxK2hrd05GeE9oNlJDYk9sUnNTbGFPQ0FoRXdnZ0lOTUVVR0NDc0dBUVVGQndFQkJEa3dOekExQmdnckJnRUZCUWN3QVlZcGFIUjBjRG92TDI5amMzQXVZWEJ3YkdVdVkyOXRMMjlqYzNBd05DMWhjSEJzWldGcFkyRXpNREl3SFFZRFZSME9CQllFRkFJa01BdWE3dTFHTVpla3Bsb3Bua0p4Z2h4Rk1Bd0dBMVVkRXdFQi93UUNNQUF3SHdZRFZSMGpCQmd3Rm9BVUkvSkp4RStUNU84bjVzVDJLR3cvb3J2OUxrc3dnZ0VkQmdOVkhTQUVnZ0VVTUlJQkVEQ0NBUXdHQ1NxR1NJYjNZMlFGQVRDQi9qQ0J3d1lJS3dZQkJRVUhBZ0l3Z2JZTWdiTlNaV3hwWVc1alpTQnZiaUIwYUdseklHTmxjblJwWm1sallYUmxJR0o1SUdGdWVTQndZWEowZVNCaGMzTjFiV1Z6SUdGalkyVndkR0Z1WTJVZ2IyWWdkR2hsSUhSb1pXNGdZWEJ3YkdsallXSnNaU0J6ZEdGdVpHRnlaQ0IwWlhKdGN5QmhibVFnWTI5dVpHbDBhVzl1Y3lCdlppQjFjMlVzSUdObGNuUnBabWxqWVhSbElIQnZiR2xqZVNCaGJtUWdZMlZ5ZEdsbWFXTmhkR2x2YmlCd2NtRmpkR2xqWlNCemRHRjBaVzFsYm5SekxqQTJCZ2dyQmdFRkJRY0NBUllxYUhSMGNEb3ZMM2QzZHk1aGNIQnNaUzVqYjIwdlkyVnlkR2xtYVdOaGRHVmhkWFJvYjNKcGRIa3ZNRFFHQTFVZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5OWpjbXd1WVhCd2JHVXVZMjl0TDJGd2NHeGxZV2xqWVRNdVkzSnNNQTRHQTFVZER3RUIvd1FFQXdJSGdEQVBCZ2txaGtpRzkyTmtCaDBFQWdVQU1Bb0dDQ3FHU000OUJBTUNBMGtBTUVZQ0lRRGFIR091aStYMlQ0NFI2R1ZwTjdtMm5FY3I2VDZzTWpPaFo1TnVTbzFlZ3dJaEFMMWErL2hwODhES0owc3YzZVQzRnhXY3M3MXhtYkxLRC9RSjNtV2FnckpOTUlJQzdqQ0NBbldnQXdJQkFnSUlTVzB2dnpxWTJwY3dDZ1lJS29aSXpqMEVBd0l3WnpFYk1Ca0dBMVVFQXd3U1FYQndiR1VnVW05dmRDQkRRU0F0SUVjek1TWXdKQVlEVlFRTERCMUJjSEJzWlNCRFpYSjBhV1pwWTJGMGFXOXVJRUYxZEdodmNtbDBlVEVUTUJFR0ExVUVDZ3dLUVhCd2JHVWdTVzVqTGpFTE1Ba0dBMVVFQmhNQ1ZWTXdIaGNOTVRRd05UQTJNak0wTmpNd1doY05Namt3TlRBMk1qTTBOak13V2pCNk1TNHdMQVlEVlFRRERDVkJjSEJzWlNCQmNIQnNhV05oZEdsdmJpQkpiblJsWjNKaGRHbHZiaUJEUVNBdElFY3pNU1l3SkFZRFZRUUxEQjFCY0hCc1pTQkRaWEowYVdacFkyRjBhVzl1SUVGMWRHaHZjbWwwZVRFVE1CRUdBMVVFQ2d3S1FYQndiR1VnU1c1akxqRUxNQWtHQTFVRUJoTUNWVk13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVR3RnhHRUdkZGtoZFVhWGlXQkIzYm9nS0x2M251dVRlQ04vRXVUNFROVzFXWmJOYTRpMEpkMkRTSk9lN29JL1hZWHpvakxkcnRtY0w3STZDbUUvMVJGbzRIM01JSDBNRVlHQ0NzR0FRVUZCd0VCQkRvd09EQTJCZ2dyQmdFRkJRY3dBWVlxYUhSMGNEb3ZMMjlqYzNBdVlYQndiR1V1WTI5dEwyOWpjM0F3TkMxaGNIQnNaWEp2YjNSallXY3pNQjBHQTFVZERnUVdCQlFqOGtuRVQ1UGs3eWZteFBZb2JEK2l1LzB1U3pBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUI4R0ExVWRJd1FZTUJhQUZMdXczcUZZTTRpYXBJcVozcjY5NjYvYXl5U3JNRGNHQTFVZEh3UXdNQzR3TEtBcW9DaUdKbWgwZEhBNkx5OWpjbXd1WVhCd2JHVXVZMjl0TDJGd2NHeGxjbTl2ZEdOaFp6TXVZM0pzTUE0R0ExVWREd0VCL3dRRUF3SUJCakFRQmdvcWhraUc5Mk5rQmdJT0JBSUZBREFLQmdncWhrak9QUVFEQWdObkFEQmtBakE2ejNLRFVSYVpzWWI3TmNOV3ltSy85QmZ0MlE5MVRhS092dkdjZ1Y1Q3Q0bjRtUGViV1orWTFVRU5qNTNwd3Y0Q01ESXQxVVFoc0tNRmQyeGQ4emc3a0dmOUYzd3NJVzJXVDhaeWFZSVNiMVQ0ZW4wYm1jdWJDWWtoWVFhWkR3bVNIUUFBTVlJQmpUQ0NBWWtDQVFFd2dZWXdlakV1TUN3R0ExVUVBd3dsUVhCd2JHVWdRWEJ3YkdsallYUnBiMjRnU1c1MFpXZHlZWFJwYjI0Z1EwRWdMU0JITXpFbU1DUUdBMVVFQ3d3ZFFYQndiR1VnUTJWeWRHbG1hV05oZEdsdmJpQkJkWFJvYjNKcGRIa3hFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVEFnaG9ZUGFaMmN5bkR6QU5CZ2xnaGtnQlpRTUVBZ0VGQUtDQmxUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncweE9EQTVNVEV4TWpFek1qaGFNQ29HQ1NxR1NJYjNEUUVKTkRFZE1Cc3dEUVlKWUlaSUFXVURCQUlCQlFDaENnWUlLb1pJemowRUF3SXdMd1lKS29aSWh2Y05BUWtFTVNJRUlCTmFyZW1CRFIwRDFjZTJYQXVteDQ4L2NCUVRtVFVDSUtPb3JTNjkxSGFsTUFvR0NDcUdTTTQ5QkFNQ0JFZ3dSZ0loQU1vMktKTWpqVEJNK3V0bGNEWGhocjl0SndLV1BOU0NBN240RlZ6QU5UaHdBaUVBcXN4VFRtOTJkdzBaTzM4WWF4blp1M1dtUmE4SG5WTThLc3hoaERjZU95QUFBQUFBQUFBPSIsCiAgImhlYWRlciI6IHsKICAgICJlcGhlbWVyYWxQdWJsaWNLZXkiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWk16bFdPeDhYbzhwWGxPdnpZT055K2d2VXk1OVpPZXVDb3Yza3pjN2ZFU2N6WlR5dm1BOWRVOUFkVk1GYVl5ZkNYbE1HNW9lZGkzV3k0eXVicWZ4dGc9PSIsCiAgICAicHVibGljS2V5SGFzaCI6ICJ4ckpxVUZPMmpONWVkR1M4aUVUa2ZOWHR3cW53U3FSVVVyUUpCeXNGcFo4PSIsCiAgICAidHJhbnNhY3Rpb25JZCI6ICJhYTBiNzdmYmI0ZjY0Y2QzZTVkZWVmNjUxNzc5MzhiMmQ4MzZlMGQ3ZDkzZDU4MDAwZDhkNTRjZmNhMTlhZTEzIgogIH0KfQ=="
}
}

Dalsze przetwarzanie żądania podlega standardowemu procesowi, który jest opisany w sekcji Tworzenie nowego zamówienia.

Ponieważ zamówienia z metodą płatności Apple Pay będą rozliczane tak, jak standardowe płatności kartą, warto rozważyć integrację usługi pobierania danych transakcji. W ten sposób odróżnisz karty wpisane przez formularz PayU od kart pobranych z Apple Pay.

Testowanie Apple Pay

Metoda płatności Apple Pay jest dostępna również w środowisku Sandbox – w procesie integracji sugerujemy utworzenie niezależnego identyfikatora Merchant ID (np. z końcówką „.test” w nazwie), a tym samym kompletu certyfikatów.

Ponieważ Apple Pay nie jest domyślną metodą płatności, prosimy o kontakt z naszym działem wsparcia po rejestracji w środowisku Sandbox, ale przed przystąpieniem do integracji z wykorzystaniem metody płatności Apple Pay. W odpowiedzi otrzymasz również plik CSR dla środowiska Sandbox.

Przed przystąpieniem do testów w Sandboxie, zapoznaj się również z instrukcją testowania Apple.

Zalecane jest skorzystanie z kart o numerach:

  • 5204 2477 5000 1471
  • 4761 1200 1000 0492

Te numery są skonfigurowane w Sandboxie PayU tak, aby płatność kończyła się sukcesem.

Kody statusów

Możliwe błędy
Status HTTPKod statusuOpis statusuOpis
400 Bad request
ERROR_VALUE_INVALID
Bad Request: Amount is different in request and token.
Kwota w tokenie Apple Pay niezgodna z kwotą totalAmount.
400 Bad request
ERROR_VALUE_INVALID
Bad Request: Transactions with same id found.
Token Apple Pay został już wykorzystany.
400 Bad request
ERROR_VALUE_INVALID
Bad Request: Apple Pay token too old.
Token Apple Pay utracił ważność.
400 Bad request
ERROR_VALUE_INVALID
Bad Request: Currency is different in request and token.
Waluta w tokenie Apple Pay niezgoda z walutą żądania.
400 Bad request
ERROR_VALUE_INVALID
Apple Pay Certificate used for token creation unknown to PayU.
Należy zweryfikować poprawność wartości publicKeyHash. Jeśli mimo to błąd występuję, wymagany jest kontakt z działem wsparcia.
400 Bad request
ERROR_VALUE_INVALID
Invalid apple pay token: header is empty.
Brak pola header w tokenie z Apple lub jest ono puste.
400 Bad request
ERROR_VALUE_INVALID
Invalid apple pay token: data is empty.
Brak pola data w tokenie z Apple lub jest ono puste.
400 Bad request
ERROR_VALUE_INVALID
Invalid apple pay token: signature is empty.
Brak pola signature w tokenie z Apple lub jest ono puste.
400 Bad request
ERROR_VALUE_INVALID
Invalid apple pay token: ephemeralPublicKey is empty.
Brak pola ephemeralPublicKey w tokenie z Apple lub jest ono puste.
400 Bad request
ERROR_VALUE_INVALID
Invalid apple pay token: publicKeyHash is empty.
Brak pola publicKeyHash w tokenie z Apple lub jest ono puste.
400 Bad request
ERROR_VALUE_INVALID
Invalid apple pay token: transactionId is empty.
Brak pola transactionId w tokenie z Apple lub jest ono puste.