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
Apple Pay
RSS for tagDiscuss how to integrate Apple Pay into your app for secure and convenient payments.
Post
Replies
Boosts
Views
Activity
On using AMEX card with apple pay
transaction is declining for IN APP EMV CONTACTLESS CRYPTO FAILURE. The APP generating the CRYPTOGRAM would have to check their cryptogram generation settings. The auth message is formatted wrong.
How to resolve this issue ?
We are developing an Apple wallet pass.
I would like to register it in my iPhone wallet.
I don't want it to be registered in the watch wallet.
Is it possible for the pass issuer to intentionally prevent the pass from being registered on the watch?
I would like to increase the size of the pass QR code.
Is it possible.
There is no such setting item in the pass property.
Hi i apply apple pay in my flutter app but not able to saw the payments report.
How we'll link our apple pay to the backend?
Hello, I have a problem with domain verification in the merchantID section.
It returns "Requested domain name has been verified previously."
Previously my domain was registering and verifying normally.
I'm sure another MerchantID doesn't have this domain registered.
Please any advice or idea.
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);
Hello. I can't accept the agreement. I get this error. The company was verified with this address. I tried to write the address in different variations, it does not work. Apple's customer support won't answer.
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 =)
Dear friends, are the any legal restrictions for e-cigarette brands/companies to use Apple Wallet loyalty cards (ie. for online club memberships)?
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?
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]
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?
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.
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?
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?
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
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?
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 ?
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.