Apple Pay on the Web

RSS for tag

Apple Pay on the Web allows you to accept Apple Pay on your website using JavaScript-based APIs.

Posts under Apple Pay on the Web tag

105 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

Apple Pay on website
ApplePay.tsx Sometimes when we load the Apple sheet for the first time, the onshippingcontactselected is not called at all, although there is a default address selected, when we try again it works. In some cases as well the Apple sheet freezes, all the buttons become un clickable. There are no errors. I'm testing on Mac version 11.5.2. please see the attached the code.
0
0
389
Oct ’23
Expired certificate apple-pay-gateway.apple.com
Hi, the certificate apple-pay-gateway.apple.com (https://developer.apple.com/documentation/apple_pay_on_the_web/setting_up_your_server) used for payments has expired : Server Key and Certificate #1 Subject apple-pay-gateway.apple.com Fingerprint SHA256: 19a1e3eeb0b13c3aefe03d4c02de6befb4200430ead97ee4150b3e0eaad89ec6 Pin SHA256: 38yRXBg6sU+IsJldFjKUj6TwTqkbVymXhyvMBWxMtV0= Common names apple-pay-gateway.apple.com Alternative names cn-apple-pay-gateway-tj-pod2.apple.com apple-pay-gateway-nc-pod1.apple.com apple-pay-gateway-nc-pod4.apple.com apple-pay-gateway-sh-pod2.apple.com cn-apple-pay-gateway-pr-pod3.apple.com apple-pay-gateway-pr-pod3.apple.com apple-pay-gateway-nc.apple.com apple-pay-gateway-tj-pod1.apple.com apple-pay-gateway-tj-pod2.apple.com apple-pay-gateway-pr-pod5.apple.com cn-apple-pay-gateway-nc-pod4.apple.com cn-apple-pay-gateway-pr-pod1.apple.com cn-apple-pay-gateway-sh-pod3.apple.com cn-apple-pay-gateway.apple.com cn-apple-pay-gateway-tj-pod3.apple.com apple-pay-gateway-nc-pod2.apple.com apple-pay-gateway-pr-pod1.apple.com apple-pay-gateway-pr-pod4.apple.com apple-pay-gateway-sh-pod3.apple.com cn-apple-pay-gateway-sh-pod1.apple.com cn-apple-pay-gateway-nc-pod3.apple.com cn-apple-pay-gateway-pr-pod2.apple.com apple-pay-gateway-nc-pod3.apple.com apple-pay-gateway-pr-pod.apple.com apple-pay-gateway-nc-pod5.apple.com apple-pay-gateway-tj-pod3.apple.com cn-apple-pay-gateway-pr-pod4.apple.com apple-pay-gateway-sh-pod1.apple.com cn-apple-pay-gateway-nc-pod5.apple.com apple-pay-gateway-pr-pod2.apple.com cn-apple-pay-gateway-sh-pod.apple.com cn-apple-pay-gateway-nc-pod1.apple.com apple-pay-gateway.apple.com cn-apple-pay-gateway-nc-pod2.apple.com cn-apple-pay-gateway-sh-pod2.apple.com apple-pay-gateway-pr.apple.com cn-apple-pay-gateway-tj-pod1.apple.com apple-pay-gateway-nc-pod.apple.com Serial Number 0b2ffee60fc2a32e5046bf43075c1f89 Valid from Tue, 18 Jul 2023 10:53:06 UTC Valid until Mon, 16 Oct 2023 11:03:06 UTC (expired 38 minutes and 13 seconds ago) EXPIRED Trusted : No NOT TRUSTED
1
0
660
Oct ’23
Merchant Validation Returns in cURL error 56
Trying to use Apple Pay with the Payment Request API, created a merchant validation with the following details: URL: https://apple-pay-gateway.apple.com/paymentservices/startSession Body: {"merchantIdentifier":"merchant.xxxxxxxxxxxxx","domainName":"labs.xxxxxxxx.com","displayName":"Mxxxxx"} The response is: cURL error 56: OpenSSL SSL_read: OpenSSL/1.1.1p: error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 alert certificate required, errno 0 Any ideas why this could be?
1
0
577
Oct ’23
Getting 401 when registering a merchant in sandbox
Hello, I am getting a 401 when calling https://apple-pay-gateway-cert.apple.com/paymentservices/registerMerchant to register a merchant and link it to a merchant identity. The merchant identity has been created, and both the merchant identity and the payment processing certificates have been created. I have then dowloaded the merchant identity certificate from Apple, and create a keystore with the private key used to create the CSR. The command I am issuing is the following: curl -v --cert-type P12 --cert keystore.p12:passwordForKeystore -d '{"domainNames":["test-domain.com","live-domain.com"], "partnerMerchantName":"merchant-partner-name", "partnerInternalMerchantIdentifier":"merchant-partner-internal-identifier", "encryptTo":"merchant.identity.certificate.name"}' -H "Content-Type: application/json" -X POST https://apple-pay-gateway-cert.apple.com/paymentservices/registerMerchant The response I am getting is the following: * SSL certificate verify ok. * using HTTP/1.1 > POST /paymentservices/registerMerchant HTTP/1.1 > Host: apple-pay-gateway-cert.apple.com > User-Agent: curl/8.1.2 > Accept: */* > Content-Type: application/json > Content-Length: 304 > < HTTP/1.1 401 Unauthorized < x-keystone-correlationid: cdcf1cc6-1f6f-4b92-bd6c-245a602bcaa3 < content-type: application/json < content-length: 87 < date: Thu, 05 Oct 2023 08:28:18 GMT < x-envoy-upstream-service-time: 14 < x-apay-service-response-details: via_upstream < { "statusMessage": "Payment Services Exception Unauthorized", "statusCode": "401" * Connection #0 to host apple-pay-gateway-cert.apple.com left intact } Has anyone had the same issue?
0
0
488
Oct ’23
Register merchant with apple-pay-gateway-cert
Hello everyone, I would like to register a merchant with a merchant identifier, calling https://apple-pay-gateway-cert.apple.com/paymentservices/registerMerchant, but I am getting a 401 error. The payment processing certificate and the merchant identity certificate (with name merchant.com.identity.us.test) have already been defined on the apple account account. I am executing this post request: curl -v --cert-type P12 --cert keystore.p12:passwordForMyKeystore -d '{"domainNames":["my-test-domain.com","my-live-test-domain.com"], "partnerMerchantName":"TESTMERCH1", "partnerInternalMerchantIdentifier":"test-merch-partner", "encryptTo":"merchant.com.identity.us.test"}' -H "Content-Type: application/json" -X POST https://apple-pay-gateway-cert.apple.com/paymentservices/registerMerchant The keystore.p12 I am using in the above post request, has been created with the identity certificate (merchant.com.identity.us.test) and with the private key created when generating the CSR. The response I am getting is this one: * ALPN: server accepted http/1.1 * Server certificate: * subject: CN=apple-pay-gateway-cert.apple.com; O=Apple Inc.; L=Cupertino; ST=California; C=US; serialNumber=C0806592; jurisdictionStateOrProvinceName=California; jurisdictionCountryName=US; businessCategory=Private Organization * start date: Jul 17 17:32:39 2023 GMT * expire date: Oct 15 17:42:39 2023 GMT * subjectAltName: host "apple-pay-gateway-cert.apple.com" matched cert's "apple-pay-gateway-cert.apple.com" * issuer: C=US; O=Apple Inc.; CN=Apple Public EV Server RSA CA 1 - G1 * SSL certificate verify ok. * using HTTP/1.1 > POST /paymentservices/registerMerchant HTTP/1.1 > Host: apple-pay-gateway-cert.apple.com > User-Agent: curl/8.1.2 > Accept: */* > Content-Type: application/json > Content-Length: 304 > < HTTP/1.1 401 Unauthorized < x-keystone-correlationid: cdcf1cc6-1f6f-4b92-bd6c-245a602bcaa3 < content-type: application/json < content-length: 87 < date: Thu, 05 Oct 2023 08:28:18 GMT < x-envoy-upstream-service-time: 14 < x-apay-service-response-details: via_upstream < { "statusMessage": "Payment Services Exception Unauthorized", "statusCode": "401" * Connection #0 to host apple-pay-gateway-cert.apple.com left intact } Have I done anything wrong in generating the Keystore? Kind regards, Antonio.
0
0
698
Oct ’23
applePay Acceptable Use - Currency Sale - Apple Approval
Has anyone had experience of selling foreign currency using Apple Pay? If so, what steps did you complete to get Apple Approval? The Acceptable use guidelines state "You may not incorporate Apple Pay into a website that: ... Involves the purchase or transfer of currency (including cryptocurrencies) unless approved by Apple" I would like to provide Apple Pay as a payment option on website and app's that sell currency to customers but can't find any guidance of how to get Apple approval.
0
0
365
Sep ’23
The content of Oslo merchant validation is incorrect
Hi. I am integrating with the Apple Pay on my website. I am trying to perform a request via Postman to register a merchant - just testing if body of request is valid, if it actually registers a merchant etc. While I am doing so I get the following error: { "statusMessage": "Payment Services Exception Domain check failed with the following errors. No domains were registered.\nDomain verification failed for pspId=ENCRYPTED_MERCHANT_ID domain=xyz.com url=/.well-known/apple-developer-merchantid-domain-association errorMessage=The content of Oslo merchant validation is incorrect", "statusCode": "400" } Note that domain name and pspId were censored for security reason. I have no idea what does that error mean. Our domain is verified. We have domain verification file on the endpoint /.well-known/apple-developer-merchantid-domain-association errorMessage - otherwise our domain could not be registered. I have also checked it manually many times if it is there and everything looked fine. We have an active payment processing certificate. We have a merchant identity certificate. I use it on the serwer and on Postman for both apple-pay-gateway.apple.com and apple-pay-gateway-cert.apple.com. Requesta sent to Sandbox pass and return status 200. Request body: { "domainNames": ["xyz.com"], "encryptTo": "merchant.com.our.identifier", "partnerInternalMerchantIdentifier": "xyz25", "partnerMerchantName": "Some name" } Data is replaced with placeholders. I am 100% sure that fields encryptTo and domainNames are valid. Thank you in advance for any help.
1
0
659
Oct ’23
ApplePayButton Error
I just making Apple Pay Button on my websites using CSS, but i dont know why the 'Type=check-out', 'lang="vi"' not working. Another type like buy, top-up still show button with text on Vietnamese language, but with 'Type=check-out" dont show anything text. Does Apple Pay Button support type check-out with Vietnamese language? Here my code: <html lang="vi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> @supports (-webkit-appearance: -apple-pay-button) { .apple-pay-button { display: inline-block; -webkit-appearance: -apple-pay-button; -apple-pay-button-type: check-out; /* Use any supported button type. */ } .apple-pay-button-black { -apple-pay-button-style: black; } } @supports not (-webkit-appearance: -apple-pay-button) { .apple-pay-button { display: inline-block; background-size: 100% 60%; background-repeat: no-repeat; background-position: 50% 50%; border-radius: 5px; padding: 0px; box-sizing: border-box; min-width: 200px; min-height: 32px; max-height: 64px; border: 0; } .apple-pay-button-black { background-image: -webkit-named-image(apple-pay-logo-white); background-color: black; color: white; } } </style> </head> <body> <div class="applePayButtonContainer"> <button class="apple-pay-button apple-pay-button-black" lang="vi" onclick="onApplePayButtonClicked()">Apple Pay</button> </div> </body> </html>
0
0
437
Sep ’23
Do I need to enroll for "Apple Developer Program" paying $99 for Sandbox Apple ID also
Hello all, I am trying to integrate Apple Pay in my application. And for that I need to add some sandbox/test user accounts for the development. I've setup 2FA and provided all the necessary details for this sandbox Apple ID. But I am still not able to login to applestoreconnect and getting following error message during login: "To access App Store Connect, you must be an individual or team member in the Apple Developer Program, or invited by an individual to access their content in App Store Connect." My question is Should I pay another $99 for this sandbox Apple ID also? I've already signed up for Apple Developer Program and paid $99 for 1 year for my organization. I can invite other team members without any additional cost by I am not able to invite existing email/Apple ID as Sandbox testers. I am confused. Thank you for your help.
0
0
680
Sep ’23
Merchant or device token?
I'm trying to get a merchant token using the apple demo code including the "recurringPaymentRequest" subitem. My question is, how do I know what sort of token Apple returned? The documentation I've found says “Apple Pay issues an Apple Pay Merchant Token if the user’s payment network supports merchant-specific payment tokens. Otherwise, Apple Pay issues a device token for the payment request.” I believe our payment network (TSYS) supports this, but I think I'm only getting device tokens (they appear to only allow one charge). Is there something within the onpaymentauthorized event object that definitively identifies what sort of token we received?
3
0
488
Sep ’23
I want to integrate ApplePay in our Angular application.
I want to implement ApplePay on Angular. There are two ways to implement it (JS API and Payment Request API) and I would like to use the API method as I want to do as much as processing in server side. By looking at the following page, it's hard to understand the difference between JS API and Payment Request API. https://applepaydemo.apple.com/ Surprisingly I can't find any example code for Angular to use ApplePay. I can't believe no one has used ApplePay on Angular before. May be there is another/better way to do it? In Angular it's even tricky to get the window instance. I have tried the solutions in this question and managed to inject window instance using a service provider. I can display the ApplePay button on appropriate devices but I am getting the following error when calling the ApplePaySession object. Apparenlty the injected window is not the top level one.
1
0
1.4k
Oct ’23
How to get access to Apple Pay Register Merchant APIs?
Hi, We’re trying to use the Apple Pay Register Merchant API and are getting an unauthorised error when we try to access the the Request for API form Error Message: Sorry, you cannot view this page. The Apple ID you signed in with does not have permission to view this page. If you’re currently a member of the Apple Developer Program, you or your Account Holder may need to update your account by agreeing to the latest license agreement in order to access this page. To view your current membership status and benefits, visit your account. But our account is already a part of Apple Developer Program.
1
0
362
1w
Apple Pay/NMI - Recurring Charges
Hi, I am currently integrating Apple Pay into a subscription web app. Our payment processor is NMI. Everything is working for individual charges. However, I am unable to get recurring payments to work. I tried to re-charge the initial token but NMI returns "DO NOT HONOR". How do I get access to a rechargeable token? The .onpaymentmethodselected event listener is only returning PaymentMethod: {type: "Credit"}. No token there. I tried to utilize tokenNotificationURL but it seems like the webhook is never being triggered. I setup a custom endpoint on my node.js server and I utilzed Ngrok to tunnel to my localhost. I also tried webhook.site but none of these solutions received anything from apple pay. I also changed the recurring payment interval to "minute" to test if the token would become chargeable again after 60 seconds - which didn't work either. How do I get access to a token that I can re-charge on a monthly basis?
1
0
1k
Oct ’23
Apple pay is not available for this website Error
I'm getting "Apple pay is not available for this website" error on SB after the onpaymentmethodselected event (not getting error onvalidatemerchant event) and the onPaymentAuthorised doesn't get hit at all. Here's my session data { "epochTimestamp":1652440219969, "expiresAt":1652443819969, "merchantSessionIdentifier":"SSH37EBB5A957294F0FBBD4F9C496317E1E_916523AAED1343F5BC5815E12BEE9250AFFDC1A17C46B0DE5A943F0F94927C24", "nonce":"51b5b6b1", "merchantIdentifier":"1B0FD6FCF62FBDA91A08BA2A18F4283AC1FFF6B69FC191B9F886482370BFC729", "domainName":"d176lcemp34qxj.cloudfront.net", "displayName":"Shamim", "signature":"308006092a864886f70d010702a0803080020101310f300d06096086480165030402010500308006092a864886f70d0107010000a080308203e43082038ba003020102020859d8a1bcaaf4e3cd300a06082a8648ce3d040302307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553301e170d3231303432303139333730305a170d3236303431393139333635395a30623128302606035504030c1f6563632d736d702d62726f6b65722d7369676e5f5543342d53414e44424f5831143012060355040b0c0b694f532053797374656d7331133011060355040a0c0a4170706c6520496e632e310b30090603550406130255533059301306072a8648ce3d020106082a8648ce3d030107034200048230fdabc39cf75e202c50d99b4512e637e2a901dd6cb3e0b1cd4b526798f8cf4ebde81a25a8c21e4c33ddce8e2a96c2f6afa1930345c4e87a4426ce951b1295a38202113082020d300c0603551d130101ff04023000301f0603551d2304183016801423f249c44f93e4ef27e6c4f6286c3fa2bbfd2e4b304506082b0601050507010104393037303506082b060105050730018629687474703a2f2f6f6373702e6170706c652e636f6d2f6f63737030342d6170706c65616963613330323082011d0603551d2004820114308201103082010c06092a864886f7636405013081fe3081c306082b060105050702023081b60c81b352656c69616e6365206f6e207468697320636572746966696361746520627920616e7920706172747920617373756d657320616363657074616e6365206f6620746865207468656e206170706c696361626c65207374616e64617264207465726d7320616e6420636f6e646974696f6e73206f66207573652c20636572746966696361746520706f6c69637920616e642063657274696669636174696f6e2070726163746963652073746174656d656e74732e303606082b06010505070201162a687474703a2f2f7777772e6170706c652e636f6d2f6365727469666963617465617574686f726974792f30340603551d1f042d302b3029a027a0258623687474703a2f2f63726c2e6170706c652e636f6d2f6170706c6561696361332e63726c301d0603551d0e041604140224300b9aeeed463197a4a65a299e4271821c45300e0603551d0f0101ff040403020780300f06092a864886f76364061d04020500300a06082a8648ce3d0403020347003044022074a1b324db4249430dd3274c5074c4808d9a1f480e3a85c5c1362566325fbca3022069369053abf50b5a52f9f6004dc58aad6c50a7d608683790e0a73ad01e4ad981308202ee30820275a0030201020208496d2fbf3a98da97300a06082a8648ce3d0403023067311b301906035504030c124170706c6520526f6f74204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553301e170d3134303530363233343633305a170d3239303530363233343633305a307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b30090603550406130255533059301306072a8648ce3d020106082a8648ce3d03010703420004f017118419d76485d51a5e25810776e880a2efde7bae4de08dfc4b93e13356d5665b35ae22d097760d224e7bba08fd7617ce88cb76bb6670bec8e82984ff5445a381f73081f4304606082b06010505070101043a3038303606082b06010505073001862a687474703a2f2f6f6373702e6170706c652e636f6d2f6f63737030342d6170706c65726f6f7463616733301d0603551d0e0416041423f249c44f93e4ef27e6c4f6286c3fa2bbfd2e4b300f0603551d130101ff040530030101ff301f0603551d23041830168014bbb0dea15833889aa48a99debebdebafdacb24ab30370603551d1f0430302e302ca02aa0288626687474703a2f2f63726c2e6170706c652e636f6d2f6170706c65726f6f74636167332e63726c300e0603551d0f0101ff0404030201063010060a2a864886f7636406020e04020500300a06082a8648ce3d040302036700306402303acf7283511699b186fb35c356ca62bff417edd90f754da28ebef19c815e42b789f898f79b599f98d5410d8f9de9c2fe0230322dd54421b0a305776c5df3383b9067fd177c2c216d964fc6726982126f54f87a7d1b99cb9b0989216106990f09921d00003182018d30820189020101308186307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553020859d8a1bcaaf4e3cd300d06096086480165030402010500a08195301806092a864886f70d010903310b06092a864886f70d010701301c06092a864886f70d010905310f170d3232303531333131313031395a302a06092a864886f70d010934311d301b300d06096086480165030402010500a10a06082a8648ce3d040302302f06092a864886f70d01090431220420463e324ef2a67be4caad2196e90cd77e4a215ee2e2dee5ebb37bc5f18d4f0e76300a06082a8648ce3d04030204483046022100b1aef11ea8f5940eef195c13d0879528ff6ddd59a671aaede8bdb0a4a0aafc290221009257a1f32bfea292d8cd819682343d840b75a1d332c3154c33b701a3b8c0166b000000000000", "operationalAnalyticsIdentifier":"Shamim:1B0FD6FCF62FBDA91A08BA2A18F4283AC1FFF6B69FC191B9F886482370BFC729", "retries":0, "pspId":"1D867D2918895F195CF99A0BCCA8B3E63C0AB3FC997F254501617482BBCF21F9" } and this is the url that i'm testing with https://d176lcemp34qxj.cloudfront.net/MerchantSiteSB.html Can somebody please assist to find the issue? or how should i get more details on the error?
5
0
2.2k
Oct ’23