Apple Pay

RSS for tag

Discuss how to integrate Apple Pay into your app for secure and convenient payments.

Apple Pay Documentation

Post

Replies

Boosts

Views

Activity

Shopware 6 Apple Pay just "Domain verification failed."
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
0
0
675
Jan ’24
issue with Merchant validation from web ASP.NET core behind load balancer
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);
0
0
666
Feb ’24
Register a Pass for Update Notifications
Hello everyone, I developed an application to create passes. I add a webservice URL to manage updates, password deletions, ... When I add a pkpass in ios(17.2) simulator, the POST endpoint of my webserviceURL is never reached on my local server, but the GET and DELETE endpoints are reached. Does anyone encounter this kind of problem and how can I get the POST endpoint working in the simulator? Thanks in advance to anyone who helps me =)
0
0
508
Feb ’24
Watch connectivity inside Apple Wallet Issuer Extension
I am developing issuer non-UI extension. In function status i have to return remotePassEntriesAvailable (boolean) and to do that i have to activate WCSession from that Extension to get the remoteSecureElementPasses which are already added to the remote wallet (watch). I have implemented WCSessionDelegate inside the non-UI extension but i can not enable the WCSession. I always get: Error: WCSession has not been activated I saw a comment in this post -> WCSession is not available from iOS extensions, only from the main iOS app. To the point... If the WCSession is not available from iOS extensions how can I properly set remoteSecureElementPasses and implement function remotePassEntries if i can't connect to the watch to see which cards are already enrolled?
4
0
894
Feb ’24
Apple reject APP for not using "In App Purchase" for subscription
We have a simple application where users can post ADs and others can bid/respond to the ADS. The users can purchase premium plans to post more ADs per month or bid on more ADs. We are using STRIPE to handle payments & subscriptions. Upon trying to publish to the App Store, we are getting the following error. Guideline 3.1.1 - In-App Purchase We noticed that your app contains a payment mechanism other than in-app purchase for digital content or to unlock features or functionality within your app, which is not appropriate for the App Store. In-app purchase is the only valid in-app payment mechanism for digital content. Please suggest me the possible ways to solve it and publish on APP STORE. thanks! [Image Edited by Moderator to Remove Personal Information]
0
0
466
Feb ’24
Can we test the Apple HCE feature in a region and test environment outside the EEA region?
Hi, We have a financial application in Turkiye, with this news we want to use HCE apple in our application. According to article that published by Apple, it is not posibble. Because we are not in EEA region. I have some quick questions: Can we simulete HCE feature in our application, for example does changing region work? Or should the POS device also be in the EEA region? Is it planned to use the HCE feature in Turkiye in the future?
0
0
474
Feb ’24
com.apple.developer.proximity-reader.identity.read entitlement
I'm trying to run the Checking IDs with the Verifier API Sample Code. The display request app works fine but when i try to run the data request app i get this error for provisioning profile : Provisioning profile "iOS Team Provisioning Profile: com.example.apple-samplecode.verifier-api-sample-data-requestRPTDZQM3C9" doesn't include the com.apple.developer.proximity-reader.identity.read entitlement. and I'm not able to fins how to add this entitlement to the app. I tried to add it from capabilities but it's not available there, only the tap to present ID on iPhone (Display Only) is available. Is this entitlement restricted to a specific country or I need to request access to it from somewhere? or Is there anyway to add it to run the app?
1
0
495
Feb ’24
Please help with Domain verification via API request
Hello! Even I am trying to verify the domain, via Postman request, i got facing this error: "statusMessage": "Payment Services Exception Domain check failed with the following errors. No domains were registered.\nDomain verification failed for pspId=*** domain=***.io url=/.well-known/apple-developer-merchantid-domain-association errorMessage=Failed to pull domain file statusCode=403", "statusCode": "400" I am use this body to make POST request: { "domainNames": [ "***.io" ], "encryptTo": "***", "partnerInternalMerchantIdentifier": "***", "partnerMerchantName": "***" } What can be wrong here?
0
0
405
Feb ’24
ApplePay with Visa- test card for ECI=7 needed
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
1
0
873
Feb ’24
Apple Pay and Diners Club
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?
0
0
673
Feb ’24
CyberSource Apple Pay Issue
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 ?
0
0
489
Feb ’24
How to use and test Wallet Transaction Shortcut in iOS Simulator?
The Shortcuts app offers the possibility to trigger shortcuts/intends when a wallet credit card is used and a new transaction is created. I would like to add transaction details to one of my apps and use such a shortcut for it. Other apps do the exact same thing, so this should not be a problem. Adding a shortcut to my app was not a big deal. However, how can this be tested on simulator? When trying to add a new automatization in the Shortcuts app using a wallet transaction as trigger I cannot finish the setup dialog since the Next button is disabled. I assume this is because no card is configured. When trying to add a card in Wallet I just receive that this was not successful. I have connected the simulator to a Sandbox Apple ID account using a region which supports Apple Pay (US). Using a real account does not solve the problem. Any idea how to get this working? Using real transaction within a store could obviously not be the solution for debugging.
0
0
573
Feb ’24