Uwaga: 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).
Jeżeli nie chcesz korzystać z integracji web, możesz pominąć dwa ostatnie etapy.
W celu utworzenia identyfikatora Merchant ID wykonaj kolejno następujące kroki:
Przed utworzeniem certyfikatu skontaktuj się z nami 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:
Dotyczy tylko integracji web.
W celu walidacji domeny wykonaj kolejno następujące kroki:
Domena musi obsługiwać HTTPS. Sprawdź, czy ustawienia serwera są zgodne z wytycznymi Apple.
Pobierz plik tylko raz przed wykonaniem walidacji domeny! Ponowne pobranie generuje nową zawartość pliku, co może skutkować błędem w procesie walidacji domeny.
Dotyczy tylko integracji web.
W celu utworzenia Apple Pay Merchant Identity Certificate wykonaj kolejno następujące kroki:
openssl pkcs12 -in merchant_id.p12 -out merchant_id.pem -nodes -clcertsJeżeli preferujesz format .p12 dla certyfikatów i łatwiej jest Tobie nimi zarządzać w tym formacie, to możesz pominąć wykonanie tego kroku.
W przypadku korzystania z płatności wielowalutowych wraz z Apple Pay w integracji transparentnej, podczas tworzenia Apple Pay Session, należy wykorzystać kwotę już po przewalutowaniu, policzoną według opisu.
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ę techniczną SDK PayU | Mobile.
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'], ... }
Przykładowy Token Apple Pay wygląda tak:
{ "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" } }
Aby obciążyć kartę płatniczą zapisaną w Apple Pay, należy w żądaniu OrderCreateRequest 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.
"payMethods": { "payMethod": { "value": "jp", "type": "PBL", "authorizationCode": "ewogICJ2ZXJzaW9uIjogIkVDX3YxIiwKICAiZGF0YSI6ICJEakk4RXo3blBoVm83NDJhR0V6QUJ6L1RmeENQdDlMU2RmMi9oKzB4SWdWSmJpM2ZRcWQ0bHYzb2dvVEkzU1E3dlpyREFXSThnMmxiZDVzZmxYQkhjMHord1NleWJzQ2NxWkIzbjFlZFJGWFU3KzZEWW1kaEZGV1dDZWp3VWM2WFpXbXNTYVZORVFmK0tjMFNlWXJqOEVza2RhcGo4YllYL1FYeFhTUHFTNElLU2pCK2YzTzBnVVhTcTdMSy9qQTlkbCtCYldXMGwzZ1hFUlU2bjVyY1luZE81cm5qaXdOVXBubTdFTUlNZk5VK0lQYnN1YnBMODJrYkwyTWRNSkIxZ3JlbDAzSjRKS2xkNkcwcEZTbWpSMm1GL3hCWS95S2tBRFJob1FrVmxEUmljdUtWTXBkUlhYYklRancveVJrTHYvdThpeTF3WEk1WW1FQkIrVzRRcFBZc3V4eXM5NGdNUGFLaGNhRUsvT2FUMDk5YUZyTkJlemJ1TE1UY1R6YmhYT3BQd1duOXBrQUswZVpOT1E9PSIsCiAgInNpZ25hdHVyZSI6ICJNSUFHQ1NxR1NJYjNEUUVIQXFDQU1JQUNBUUV4RHpBTkJnbGdoa2dCWlFNRUFnRUZBRENBQmdrcWhraUc5dzBCQndFQUFLQ0FNSUlENWpDQ0E0dWdBd0lCQWdJSWFHRDJtZG5NcHc4d0NnWUlLb1pJemowRUF3SXdlakV1TUN3R0ExVUVBd3dsUVhCd2JHVWdRWEJ3YkdsallYUnBiMjRnU1c1MFpXZHlZWFJwYjI0Z1EwRWdMU0JITXpFbU1DUUdBMVVFQ3d3ZFFYQndiR1VnUTJWeWRHbG1hV05oZEdsdmJpQkJkWFJvYjNKcGRIa3hFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVE1CNFhEVEUyTURZd016RTRNVFkwTUZvWERUSXhNRFl3TWpFNE1UWTBNRm93WWpFb01DWUdBMVVFQXd3ZlpXTmpMWE50Y0MxaWNtOXJaWEl0YzJsbmJsOVZRelF0VTBGT1JFSlBXREVVTUJJR0ExVUVDd3dMYVU5VElGTjVjM1JsYlhNeEV6QVJCZ05WQkFvTUNrRndjR3hsSUVsdVl5NHhDekFKQmdOVkJBWVRBbFZUTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFZ2pEOXE4T2M5MTRnTEZEWm0wVVM1amZpcVFIZGJMUGdzYzFMVW1lWStNOU92ZWdhSmFqQ0hrd3ozYzZPS3BiQzlxK2hrd05GeE9oNlJDYk9sUnNTbGFPQ0FoRXdnZ0lOTUVVR0NDc0dBUVVGQndFQkJEa3dOekExQmdnckJnRUZCUWN3QVlZcGFIUjBjRG92TDI5amMzQXVZWEJ3YkdVdVkyOXRMMjlqYzNBd05DMWhjSEJzWldGcFkyRXpNREl3SFFZRFZSME9CQllFRkFJa01BdWE3dTFHTVpla3Bsb3Bua0p4Z2h4Rk1Bd0dBMVVkRXdFQi93UUNNQUF3SHdZRFZSMGpCQmd3Rm9BVUkvSkp4RStUNU84bjVzVDJLR3cvb3J2OUxrc3dnZ0VkQmdOVkhTQUVnZ0VVTUlJQkVEQ0NBUXdHQ1NxR1NJYjNZMlFGQVRDQi9qQ0J3d1lJS3dZQkJRVUhBZ0l3Z2JZTWdiTlNaV3hwWVc1alpTQnZiaUIwYUdseklHTmxjblJwWm1sallYUmxJR0o1SUdGdWVTQndZWEowZVNCaGMzTjFiV1Z6SUdGalkyVndkR0Z1WTJVZ2IyWWdkR2hsSUhSb1pXNGdZWEJ3YkdsallXSnNaU0J6ZEdGdVpHRnlaQ0IwWlhKdGN5QmhibVFnWTI5dVpHbDBhVzl1Y3lCdlppQjFjMlVzSUdObGNuUnBabWxqWVhSbElIQnZiR2xqZVNCaGJtUWdZMlZ5ZEdsbWFXTmhkR2x2YmlCd2NtRmpkR2xqWlNCemRHRjBaVzFsYm5SekxqQTJCZ2dyQmdFRkJRY0NBUllxYUhSMGNEb3ZMM2QzZHk1aGNIQnNaUzVqYjIwdlkyVnlkR2xtYVdOaGRHVmhkWFJvYjNKcGRIa3ZNRFFHQTFVZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5OWpjbXd1WVhCd2JHVXVZMjl0TDJGd2NHeGxZV2xqWVRNdVkzSnNNQTRHQTFVZER3RUIvd1FFQXdJSGdEQVBCZ2txaGtpRzkyTmtCaDBFQWdVQU1Bb0dDQ3FHU000OUJBTUNBMGtBTUVZQ0lRRGFIR091aStYMlQ0NFI2R1ZwTjdtMm5FY3I2VDZzTWpPaFo1TnVTbzFlZ3dJaEFMMWErL2hwODhES0owc3YzZVQzRnhXY3M3MXhtYkxLRC9RSjNtV2FnckpOTUlJQzdqQ0NBbldnQXdJQkFnSUlTVzB2dnpxWTJwY3dDZ1lJS29aSXpqMEVBd0l3WnpFYk1Ca0dBMVVFQXd3U1FYQndiR1VnVW05dmRDQkRRU0F0SUVjek1TWXdKQVlEVlFRTERCMUJjSEJzWlNCRFpYSjBhV1pwWTJGMGFXOXVJRUYxZEdodmNtbDBlVEVUTUJFR0ExVUVDZ3dLUVhCd2JHVWdTVzVqTGpFTE1Ba0dBMVVFQmhNQ1ZWTXdIaGNOTVRRd05UQTJNak0wTmpNd1doY05Namt3TlRBMk1qTTBOak13V2pCNk1TNHdMQVlEVlFRRERDVkJjSEJzWlNCQmNIQnNhV05oZEdsdmJpQkpiblJsWjNKaGRHbHZiaUJEUVNBdElFY3pNU1l3SkFZRFZRUUxEQjFCY0hCc1pTQkRaWEowYVdacFkyRjBhVzl1SUVGMWRHaHZjbWwwZVRFVE1CRUdBMVVFQ2d3S1FYQndiR1VnU1c1akxqRUxNQWtHQTFVRUJoTUNWVk13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVR3RnhHRUdkZGtoZFVhWGlXQkIzYm9nS0x2M251dVRlQ04vRXVUNFROVzFXWmJOYTRpMEpkMkRTSk9lN29JL1hZWHpvakxkcnRtY0w3STZDbUUvMVJGbzRIM01JSDBNRVlHQ0NzR0FRVUZCd0VCQkRvd09EQTJCZ2dyQmdFRkJRY3dBWVlxYUhSMGNEb3ZMMjlqYzNBdVlYQndiR1V1WTI5dEwyOWpjM0F3TkMxaGNIQnNaWEp2YjNSallXY3pNQjBHQTFVZERnUVdCQlFqOGtuRVQ1UGs3eWZteFBZb2JEK2l1LzB1U3pBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUI4R0ExVWRJd1FZTUJhQUZMdXczcUZZTTRpYXBJcVozcjY5NjYvYXl5U3JNRGNHQTFVZEh3UXdNQzR3TEtBcW9DaUdKbWgwZEhBNkx5OWpjbXd1WVhCd2JHVXVZMjl0TDJGd2NHeGxjbTl2ZEdOaFp6TXVZM0pzTUE0R0ExVWREd0VCL3dRRUF3SUJCakFRQmdvcWhraUc5Mk5rQmdJT0JBSUZBREFLQmdncWhrak9QUVFEQWdObkFEQmtBakE2ejNLRFVSYVpzWWI3TmNOV3ltSy85QmZ0MlE5MVRhS092dkdjZ1Y1Q3Q0bjRtUGViV1orWTFVRU5qNTNwd3Y0Q01ESXQxVVFoc0tNRmQyeGQ4emc3a0dmOUYzd3NJVzJXVDhaeWFZSVNiMVQ0ZW4wYm1jdWJDWWtoWVFhWkR3bVNIUUFBTVlJQmpUQ0NBWWtDQVFFd2dZWXdlakV1TUN3R0ExVUVBd3dsUVhCd2JHVWdRWEJ3YkdsallYUnBiMjRnU1c1MFpXZHlZWFJwYjI0Z1EwRWdMU0JITXpFbU1DUUdBMVVFQ3d3ZFFYQndiR1VnUTJWeWRHbG1hV05oZEdsdmJpQkJkWFJvYjNKcGRIa3hFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVEFnaG9ZUGFaMmN5bkR6QU5CZ2xnaGtnQlpRTUVBZ0VGQUtDQmxUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncweE9EQTVNVEV4TWpFek1qaGFNQ29HQ1NxR1NJYjNEUUVKTkRFZE1Cc3dEUVlKWUlaSUFXVURCQUlCQlFDaENnWUlLb1pJemowRUF3SXdMd1lKS29aSWh2Y05BUWtFTVNJRUlCTmFyZW1CRFIwRDFjZTJYQXVteDQ4L2NCUVRtVFVDSUtPb3JTNjkxSGFsTUFvR0NDcUdTTTQ5QkFNQ0JFZ3dSZ0loQU1vMktKTWpqVEJNK3V0bGNEWGhocjl0SndLV1BOU0NBN240RlZ6QU5UaHdBaUVBcXN4VFRtOTJkdzBaTzM4WWF4blp1M1dtUmE4SG5WTThLc3hoaERjZU95QUFBQUFBQUFBPSIsCiAgImhlYWRlciI6IHsKICAgICJlcGhlbWVyYWxQdWJsaWNLZXkiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWk16bFdPeDhYbzhwWGxPdnpZT055K2d2VXk1OVpPZXVDb3Yza3pjN2ZFU2N6WlR5dm1BOWRVOUFkVk1GYVl5ZkNYbE1HNW9lZGkzV3k0eXVicWZ4dGc9PSIsCiAgICAicHVibGljS2V5SGFzaCI6ICJ4ckpxVUZPMmpONWVkR1M4aUVUa2ZOWHR3cW53U3FSVVVyUUpCeXNGcFo4PSIsCiAgICAidHJhbnNhY3Rpb25JZCI6ICJhYTBiNzdmYmI0ZjY0Y2QzZTVkZWVmNjUxNzc5MzhiMmQ4MzZlMGQ3ZDkzZDU4MDAwZDhkNTRjZmNhMTlhZTEzIgogIH0KfQ==" } }
Dalsze przetwarzanie żądania podlega standardowemu procesowi, który jest opisany w dokumentacji REST API.
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 pobrania danych transakcji. W ten sposób odróżnisz karty wpisane przez formularz PayU od kart pobranych z 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 działem wsparcia IT PayU 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.
Kod HTTP statusu | Kody statusu | Opis |
---|---|---|
400 Bad request | ERROR_VALUE_INVALID (statusDesc: Bad Request Amount is different in request and token) | Kwota w tokenie Apple Pay niezgodna z kwotą totalAmount. |
ERROR_VALUE_INVALID (statusDesc: Bad Request Transactions with same id found) | Token Apple Pay został już wykorzystany. | |
ERROR_VALUE_INVALID (statusDesc: Bad Request Apple Pay token too old) | Token Apple Pay utracił ważność. | |
ERROR_VALUE_INVALID (statusDesc: Bad Request Currency is different in request and token) | Waluta w tokenie Apple Pay niezgoda z walutą żądania. |