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:
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.
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:
- Zaloguj się do swojego konta Apple Developer.
- Wybierz opcję Certificates, IDs & Profiles.
- Wybierz opcję Identifiers.
- Dodaj nowy Merchant ID, wybierając znak + w prawej górnej części ekranu.
- Wprowadź ID oraz opis i wybierz opcję Continue.
- Potwierdź wprowadzone dane, wybierając opcję Register.
Utworzenie Apple Pay Payment Processing Certificate
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:
- Zaloguj się do swojego konta Apple Developer.
- Wybierz opcję Certificates, IDs & Profiles.
- Wybierz opcję Identifiers.
- 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.
- W sekcji Apple Pay Payment Processing Certificate wybierz opcję Create Certificate.
- Na następnym ekranie wybierz opcję Continue.
- 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.
- Pobierz wygenerowany certyfikat.
- Pobrany certyfikat (plik
apple_pay.cer
) wyślij przez formularz kontaktowy PayU (wybierz: Sprzedaję z PayU > Integracja > Inne pytanie?).
Walidacja domeny
Dotyczy tylko integracji web.
W celu walidacji domeny wykonaj kolejno następujące kroki:
- Zaloguj się do swojego konta Apple Developer.
- Wybierz opcję Certificates, IDs & Profiles.
- Wybierz opcję Identifiers.
- 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.
- W sekcji Merchant Domains wybierz opcję Add Domain.
- Wprowadź nazwę swojej domeny i wybierz opcję Continue.
Notatka
Domena musi obsługiwać HTTPS. Sprawdź, czy ustawienia serwera są zgodne z Apple guidelines.
- Pobierz plik
apple-developer-merchantid-domain-association.txt
.NotatkaPobierz plik tylko raz przed wykonaniem walidacji domeny! Ponowne pobranie generuje nową zawartość pliku, co może skutkować błędem w procesie walidacji domeny.
- Umieść pobrany plik na serwerze, w miejscu podanym przez Apple.
- Wybierz opcję Verify.
Utworzenie Apple Pay Merchant Identity Certificate
Dotyczy tylko integracji web.
W celu utworzenia Apple Pay Merchant Identity Certificate wykonaj kolejno następujące kroki:
- Zaloguj się do swojego konta Apple Developer.
- Wybierz opcję Certificates, IDs & Profiles.
- Wybierz opcję Identifiers.
- 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.
- W sekcji Apple Pay Merchant Identity Certificate wybierz opcję Create Certificate.
- Wykonaj kroki opisane na stronie Apple w celu przygotowania pliku CSR, a następnie wybierz opcję Continue.
- Wczytaj wygenerowany plik CSR, korzystając z opcji Choose File a następnie wybierz opcję Continue.
- Pobierz wygenerowany certyfikat (
merchant_id.cer
) i otwórz go w aplikacji Keychain Access na komputerze Mac. - Wybierz zaimportowany certyfikat w aplikacji Keychain Access i wyeksportuj do formatu
.p12
(Personal Information Exchange). - (opcjonalnie) Wykonaj polecenie:
Jeżeli preferujesz format
openssl pkcs12 -in merchant_id.p12 -out merchant_id.pem -nodes -clcerts
.p12
dla certyfikatów i łatwiej jest Tobie nimi zarządzać w tym formacie, to możesz pominąć wykonanie tego kroku. - 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
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": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5jCCA4ugAwIBAgIIaGD2mdnMpw8wCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE2MDYwMzE4MTY0MFoXDTIxMDYwMjE4MTY0MFowYjEoMCYGA1UEAwwfZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtU0FOREJPWDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgjD9q8Oc914gLFDZm0US5jfiqQHdbLPgsc1LUmeY+M9OvegaJajCHkwz3c6OKpbC9q+hkwNFxOh6RCbOlRsSlaOCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwHQYDVR0OBBYEFAIkMAua7u1GMZekplopnkJxghxFMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0kAMEYCIQDaHGOui+X2T44R6GVpN7m2nEcr6T6sMjOhZ5NuSo1egwIhAL1a+/hp88DKJ0sv3eT3FxWcs71xmbLKD/QJ3mWagrJNMIIC7jCCAnWgAwIBAgIISW0vvzqY2pcwCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0NjMwWhcNMjkwNTA2MjM0NjMwWjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATwFxGEGddkhdUaXiWBB3bogKLv3nuuTeCN/EuT4TNW1WZbNa4i0Jd2DSJOe7oI/XYXzojLdrtmcL7I6CmE/1RFo4H3MIH0MEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZXJvb3RjYWczMB0GA1UdDgQWBBQj8knET5Pk7yfmxPYobD+iu/0uSzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFLuw3qFYM4iapIqZ3r6966/ayySrMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAQBgoqhkiG92NkBgIOBAIFADAKBggqhkjOPQQDAgNnADBkAjA6z3KDURaZsYb7NcNWymK/9Bft2Q91TaKOvvGcgV5Ct4n4mPebWZ+Y1UENj53pwv4CMDIt1UQhsKMFd2xd8zg7kGf9F3wsIW2WT8ZyaYISb1T4en0bmcubCYkhYQaZDwmSHQAAMYIBjTCCAYkCAQEwgYYwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTAghoYPaZ2cynDzANBglghkgBZQMEAgEFAKCBlTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xODA5MTExMjEzMjhaMCoGCSqGSIb3DQEJNDEdMBswDQYJYIZIAWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIBNaremBDR0D1ce2XAumx48/cBQTmTUCIKOorS691HalMAoGCCqGSM49BAMCBEgwRgIhAMo2KJMjjTBM+utlcDXhhr9tJwKWPNSCA7n4FVzANThwAiEAqsxTTm92dw0ZO38YaxnZu3WmRa8HnVM8KsxhhDceOyAAAAAAAAA=",
"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.
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
Status HTTP | Kod statusu | Opis statusu | Opis |
---|---|---|---|
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. |