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.

Apple Pay on the Web Documentation

Posts under Apple Pay on the Web tag

124 Posts
Sort by:
Post not yet marked as solved
0 Replies
251 Views
Im integrating the cybersource Magento 2 Module for Apple pay https://commercemarketplace.adobe.com/cybersource-global-payment-management.html I have created all the certificates and domain registration etc as mention in the document below https://commercemarketplace.adobe.com/media/catalog/product/cybersource-global-payment-management-3-5-6-ece/user_guides.pdf On frontend we can see the apple pay button, By pressing, we get the payment popup. It validate the merchant and provide us the apple pay session. we pass the session to completeMerchantValidation Session data is below { "session": { "epochTimestamp": 1708324489053, "expiresAt": 1708328089053, "merchantSessionIdentifier": "SSH544DA4D256BE4F6488E8EFC2A5A1E4A0_916523AAED1343F5BC5815E12BEE9250AFFDC1A17C46B0DE5A943F0F94927C24", "nonce": "b27da5ca", "merchantIdentifier": "730A9A8614BF57A050E2111C3579925ADCA174167207862B85F122AD2BFB73EF", "domainName": "https://m2dev-tm.tm8.co.uk/", "displayName": "ApplePayTM", "signature": "308006092a864886f70d010702a0803080020101310d300b0609608648016503040201308006092a864886f70d0107010000a080308203e330820388a00302010202084c304149519d5436300a06082a8648ce3d040302307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553301e170d3139303531383031333235375a170d3234303531363031333235375a305f3125302306035504030c1c6563632d736d702d62726f6b65722d7369676e5f5543342d50524f4431143012060355040b0c0b694f532053797374656d7331133011060355040a0c0a4170706c6520496e632e310b30090603550406130255533059301306072a8648ce3d020106082a8648ce3d03010703420004c21577edebd6c7b2218f68dd7090a1218dc7b0bd6f2c283d846095d94af4a5411b83420ed811f3407e83331f1c54c3f7eb3220d6bad5d4eff49289893e7c0f13a38202113082020d300c0603551d130101ff04023000301f0603551d2304183016801423f249c44f93e4ef27e6c4f6286c3fa2bbfd2e4b304506082b0601050507010104393037303506082b060105050730018629687474703a2f2f6f6373702e6170706c652e636f6d2f6f63737030342d6170706c65616963613330323082011d0603551d2004820114308201103082010c06092a864886f7636405013081fe3081c306082b060105050702023081b60c81b352656c69616e6365206f6e207468697320636572746966696361746520627920616e7920706172747920617373756d657320616363657074616e6365206f6620746865207468656e206170706c696361626c65207374616e64617264207465726d7320616e6420636f6e646974696f6e73206f66207573652c20636572746966696361746520706f6c69637920616e642063657274696669636174696f6e2070726163746963652073746174656d656e74732e303606082b06010505070201162a687474703a2f2f7777772e6170706c652e636f6d2f6365727469666963617465617574686f726974792f30340603551d1f042d302b3029a027a0258623687474703a2f2f63726c2e6170706c652e636f6d2f6170706c6561696361332e63726c301d0603551d0e041604149457db6fd57481868989762f7e578507e79b5824300e0603551d0f0101ff040403020780300f06092a864886f76364061d04020500300a06082a8648ce3d0403020349003046022100be09571fe71e1e735b55e5afacb4c72feb445f30185222c7251002b61ebd6f55022100d18b350a5dd6dd6eb1746035b11eb2ce87cfa3e6af6cbd8380890dc82cddaa63308202ee30820275a0030201020208496d2fbf3a98da97300a06082a8648ce3d0403023067311b301906035504030c124170706c6520526f6f74204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553301e170d3134303530363233343633305a170d3239303530363233343633305a307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b30090603550406130255533059301306072a8648ce3d020106082a8648ce3d03010703420004f017118419d76485d51a5e25810776e880a2efde7bae4de08dfc4b93e13356d5665b35ae22d097760d224e7bba08fd7617ce88cb76bb6670bec8e82984ff5445a381f73081f4304606082b06010505070101043a3038303606082b06010505073001862a687474703a2f2f6f6373702e6170706c652e636f6d2f6f63737030342d6170706c65726f6f7463616733301d0603551d0e0416041423f249c44f93e4ef27e6c4f6286c3fa2bbfd2e4b300f0603551d130101ff040530030101ff301f0603551d23041830168014bbb0dea15833889aa48a99debebdebafdacb24ab30370603551d1f0430302e302ca02aa0288626687474703a2f2f63726c2e6170706c652e636f6d2f6170706c65726f6f74636167332e63726c300e0603551d0f0101ff0404030201063010060a2a864886f7636406020e04020500300a06082a8648ce3d040302036700306402303acf7283511699b186fb35c356ca62bff417edd90f754da28ebef19c815e42b789f898f79b599f98d5410d8f9de9c2fe0230322dd54421b0a305776c5df3383b9067fd177c2c216d964fc6726982126f54f87a7d1b99cb9b0989216106990f09921d00003182018730820183020101308186307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b300906035504061302555302084c304149519d5436300b0609608648016503040201a08193301806092a864886f70d010903310b06092a864886f70d010701301c06092a864886f70d010905310f170d3234303231393036333434395a302806092a864886f70d010934311b3019300b0609608648016503040201a10a06082a8648ce3d040302302f06092a864886f70d010904312204200ec2a0bbeaa1791676d1e55dfa5508f1804078c30819015aa5cf0dff581dbbb7300a06082a8648ce3d040302044630440220583b5904fe628bcf5b717915e71fbe4042bdf2173e7bcfb8528e5c451790b9a702203bd50451d8aa9b426f60b647137294cacff5f43f591503e8c0b61700fb124bab000000000000", "operationalAnalyticsIdentifier": "ApplePayTM:730A9A8614BF57A050E2111C3579925ADCA174167207862B85F122AD2BFB73EF", "retries": 0, "pspId": "730A9A8614BF57A050E2111C3579925ADCA174167207862B85F122AD2BFB73EF" } } but it goes directly to appleSession.oncancel after passing it to completeMerchantValidation Is anyone face the same issue ?
Posted
by atta092.
Last updated
.
Post not yet marked as solved
0 Replies
418 Views
I'm using Apple Pay JS api to enable Apple Pay on the web. Does Apple Pay on the web support Diners Club cards? The apple doc doesn't have a network entry for Diners Club: supportedNetworks But on the DinersClub website indicates a customer can use their Diners card for Apple Pay: https://www.dinersclubus.com/home/consumer-cards/conscards-l2/apple-pay What network name needs to be used when initializing ApplePayPaymentRequest/supportedNetworks array on the payment sheet to indicate that Diners Club is supported?
Posted Last updated
.
Post not yet marked as solved
1 Replies
351 Views
Hi, We would like to test the processing of ApplePay transaction with Visa card for which the Acquirer doesn`t get the liability shift, meaning we get the ECI=7 in the payment token data. In theory, this should be for all cards outside of Europe, but we have noticed that all test cards listed for Visa result in ECI=5, regardless of the Issuer country. Can you please provide us a test card for Visa with ECI=7? Thanks, Dijana
Posted Last updated
.
Post not yet marked as solved
0 Replies
298 Views
We’ve an implementation of apple pay with asia pay as gateway . We want to access that from external iframe . although we’ve been able to load the apple pay widget not able to validate merchant and tokenize in iframe. Please let us know if apple pay with asia pay is available to be used within iframe.
Posted Last updated
.
Post not yet marked as solved
0 Replies
457 Views
Getting issue while doing merchant validation from windows server behind load balancer. "System.IO.IOException: The decryption operation failed, see inner exception.\r\n ---> System.ComponentModel.Win32Exception (0x80090326): The message received was unexpected or badly formatted.\r\n --- End of inner exception stack trace ---\r\n at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](TIOAdapter adapter, Memory`1 buffer)\r\n at System.Net.Http.HttpConnection.InitialFillAsync(Boolean async)\r\n at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)" Please anyone can help here code snippet : // POST the data to create a valid Apple Pay merchant session. string json = JsonSerializer.Serialize(request); string path = "apple-pay-cert.pem"; string jsonfilepath = _configuration.GetSection("ApplePay").GetValue<string>("MerchantCertificateFileName"); if (!string.IsNullOrEmpty(jsonfilepath)) { path = _hostingEnvironment.ContentRootFileProvider.GetFileInfo(jsonfilepath)?.PhysicalPath; } var cert = new X509Certificate2(path, "", X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable); var sslOptions = new SslClientAuthenticationOptions(); var shHandler = new SocketsHttpHandler { MaxConnectionsPerServer = 100, AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, PooledConnectionLifetime = TimeSpan.FromMinutes(3), ConnectTimeout = TimeSpan.FromSeconds(100), PooledConnectionIdleTimeout = TimeSpan.FromSeconds(60), ResponseDrainTimeout = TimeSpan.FromSeconds(60), }; if (cert != null) { shHandler.SslOptions = new SslClientAuthenticationOptions() { ClientCertificates = new X509CertificateCollection(), }; shHandler.SslOptions.ClientCertificates.Add(cert); shHandler.SslOptions.LocalCertificateSelectionCallback = (object sender, string targetHost, X509CertificateCollection localCertificates, X509Certificate remoteCertificate, string[] acceptableIssuers) => cert; } ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; var httpClient = new HttpClient(shHandler); using var content = new StringContent(json, Encoding.UTF8, MediaTypeNames.Application.Json); using var response = await httpClient.PostAsync(requestUri, content, cancellationToken); response.EnsureSuccessStatusCode(); // Read the opaque merchant session JSON from the response body. using var stream = await response.Content.ReadAsStreamAsync(); return await JsonDocument.ParseAsync(stream, cancellationToken: cancellationToken);
Posted
by GymNation.
Last updated
.
Post not yet marked as solved
0 Replies
439 Views
Hello, we're using Shopware 6.5.7.3 and would like to offer our customers Apple Pay. The Domain verification has succeeded once already. Because of our Payment Provider the Identfifiers and certificates have to be grenerated a certain way, which we did not know at the time. Alas the domain has to be verified again. The problem is that the verification will not succeed anymore. A new Merchant ID, Merchant ID Certificate & Payment Processing Certificate have been generated. Previously there had been error messages (paraphrased) like "Domain verification failed. The file can't be reached", which have been fixed. This time the only error message is "Domain verification failed". No extra explanation, just these 3 words. The file "apple-developer-merchantid-domain-association.txt" can be reached inside the dir public/.well-know directory and the nginx acces.log documents a foreign Apple device accessing the file when the verification process is started in the Apple Dev backend: "172.20.0.2 - - [29/Jan/2024:14:35:08 +0000] "GET /.well-known/apple-developer-merchantid-domain-association.txt HTTP/1.1" 200 5744 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7 (KHTML%2C like Gecko) Version/9.1.2 Safari/601.7.7" "17.179.144.226" 0.000 - . -" Does anyone know what the exact error message "Domain verification failed." means? Which files are neccessary to verify the domain? Do files like merchant_id.cer/.pem/.key in %root%/config/apple-pay-cert play a role in this specific process? Thank you very much for any insight
Posted
by brotsonne.
Last updated
.
Post not yet marked as solved
1 Replies
446 Views
I am trying to understand how to use the token notification API to deactivate a token when the user unsubscribes. The main issue I see is that I do not receive the merchantTokenIdentifier in my payload when initiating a new recurring transaction. I have not found any working examples showing end-to-end to integration here. The docs are a little confusing as well, I found this: merchantTokenIdentifier string For a merchant token request, the provisioned merchant token identifier from the payment network But I did not find anything about a "merchant token request"
Posted
by digidigo.
Last updated
.
Post not yet marked as solved
0 Replies
214 Views
HI, ApplePay was working fine. Since we did a dot net upgrade to 6.026 on the server it has stopped working I think it is to do with the above issue. In the code we set the protocol which matches what's on the server: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; Has anyone experienced this before?
Posted Last updated
.
Post not yet marked as solved
0 Replies
317 Views
As the document mentioned "Host your domain-verification file at the following path for each domain you’re registering: https://[DOMAIN_NAME]/.well-known/apple-developer-merchantid-domain-association" and that file contain "pspId" and "signature" so just want to know these are not sensitive it gets in the hands of an attacker ??
Posted
by Martizz.
Last updated
.
Post not yet marked as solved
0 Replies
291 Views
I received an email. There was a request to renew the domain registered with the Apple Pay Merchant ID as it was expiring. I went into my Merchant ID to renew, but couldn't find a way. How do I renew?
Posted
by kimdori.
Last updated
.
Post not yet marked as solved
0 Replies
436 Views
Hello, I'm not sure this is the right place to ask this question, but we've a scenario that I'd like to get some help on. We're integrated with Stripe, and have enabled Apple Pay for Stripe accounts. So, in order for the domain to be verified to enable apple pay, we're hosting the file apple-developer-merchantid-domain-association under ${domain}/.well-known/. And that's working great. Now, we also want to enable apple pay through another payment processor Cardknox, for which the integration is done. But for domain verification purposes, we've to host a different apple-developer-merchantid-domain-association in the same directory. So, if I update the file contents, domain verification through Stripe will fail, and vice-versa. I'm sure this must have come up before, and I'd like to know your opinion on how we can resolve this. Is there a way to configure different paths for verification? Thanks a lot.
Posted Last updated
.
Post not yet marked as solved
0 Replies
304 Views
Hi all Im trying to update deferDeferredPaymentRequest on event completeShippingMethodSelection API ver 14 So Im using ApplePayShippingMethodUpdate object which contains newDeferredPaymentRequest But deferred payment cannot be updated. Here is my ApplePayDeferredPaymentRequest object for newDeferredPaymentRequest: "deferredBilling": { "label": "Pay for Later", "amount": 68, "paymentTiming": "deferred", "type": "final", "deferredPaymentDate": "2024-01-25" }, "managementURL": "https://siteURL.com", "paymentDescription": "A description of the deferred payment to display to the user in the payment sheet.", "freeCancellationDate": "2024-01-25", "freeCancellationDateTimeZone": "America/New_York" } Even I tried to put mistake for newDeferredPaymentRequest but ApplePay doesn't throw a JS error Can we update deferred ? for example, ApplePayRecurringPaymentRequest can't be updated according to documentation https://developer.apple.com/documentation/apple_pay_on_the_web/applepayrecurringpaymentrequest But I can't find same info for Deferred. Who can help me with it?
Posted Last updated
.
Post not yet marked as solved
0 Replies
364 Views
Hi, I have a question about the merchant ID domain verification file. Do we need to store that file on our site permanently, or can we delete it after domain verification? I searched for this information in the documentation, but found nothing specific. https://developer.apple.com/documentation/applepaywebmerchantregistrationapi/preparing_merchant_domains_for_verification
Posted Last updated
.
Post not yet marked as solved
1 Replies
385 Views
Hello, Here's some sample Javascript code: if (window.ApplePaySession) { console.log('ApplePaySession is available'); console.log('canMakePayments: ' + ApplePaySession.canMakePayments()); ApplePaySession.canMakePaymentsWithActiveCard(merchantId) .then(function(canMakePayments) { console.log('canMakePaymentsWithActiveCard: ' + canMakePayments); }); } else { console.log('ApplePaySession is not available'); } I'm logged into macOS with a sandbox test account that has Apple Pay permissions. The merchantId value is the one listed with my merchant ID. I'm running this locally. canMakePayments returns true, but canMakePaymentsWithActiveCard always returns false. I have two test cards setup in the macOS account's Apple Pay wallet, and both have a billing address setup. What can I do to troubleshoot why ApplePaySession.canMakePaymentsWithActiveCard is returning false?
Posted Last updated
.
Post not yet marked as solved
2 Replies
334 Views
We have multiple domains that were about to expire and we've verified them without any issue but the Verify button is still present and active and the expiration date hasn't changed: Found only one post related to our situation: https://developer.apple.com/forums/thread/672279 Will removing and then adding them again fix this? We have multiple domains in this situation.
Posted
by IonutC.
Last updated
.
Post not yet marked as solved
0 Replies
397 Views
Our apple pay integration with the gateway "Checkout.com" is succeeding from Checkout side & the amount is captured (withdrawn from bank account) and confirmed yet on the apple pay popup it fails with a "Payment not completed" error message. Any idea how to resolve this? This is on multiple devices (iPhones, MacBooks) -The request in the headers is a success (200)
Posted Last updated
.
Post not yet marked as solved
0 Replies
362 Views
I know Apple Pay recently added some new token types for unscheduled card on file use cases. In my app, I attain the token from Apple Pay, and then I submit that token to my gateway for full payment anywhere from 1-12 hours later-- after the user had used up the service. The final payment is based on a usage of the service. Do I need to use the ApplePayDeferredPaymentRequest token type for this kind of use case?
Posted
by misterjay.
Last updated
.
Post not yet marked as solved
0 Replies
394 Views
I am currently in the process of integrating Apple Pay into my website using the JavaScript SDK and have encountered a specific issue that I am unable to resolve. I have successfully implemented the merchant validation part of the process; the merchant is being validated without any issues. However, I am facing a challenge with the onpaymentauthorized event, which is not being triggered. Instead, the session is getting canceled after the successful merchant validation. Here are the details of the implementation: SDK Used: Apple Pay JS SDK Current Behavior: The merchant validation process completes successfully. However, the onpaymentauthorized event handler is not invoked, and the session is canceled. Expected Behavior: After merchant validation, the onpaymentauthorized event should be triggered to complete the payment process. I have checked the following: The paymentRequest object configuration. Browser compatibility (testing on supported browsers). Network stability and configurations. User interaction with the Apple Pay payment sheet. Despite these checks, the issue persists. I would greatly appreciate any guidance or suggestions you could provide on what might be causing this issue and how to resolve it. If there are any logs, code snippets, or additional information you require, please let me know, and I will provide them promptly. Thanks
Posted Last updated
.