Issue Description
In our Apple Pay integration process, the validation URL returned from the onvalidatemerchant callback is:
https://apple-pay-gateway.apple.com/paymentservices/startSession
However, according to Apple’s official documentation (reference link), the correct validation URL is:
https://apple-pay-gateway.apple.com/paymentservices/paymentSession
We are seeking clarification and assistance regarding the following issues:
Issue 1
Will continuing to use the startSession URL cause problems or errors? Are there functional differences between the two URLs (startSession and paymentSession)? Does Apple still officially support startSession, or are we required to switch to paymentSession?
Issue 2
We occasionally experience the following 400 error, even though the URL we use for validation is the one returned from the onvalidatemerchant callback:
400: {
"statusMessage": "Payment Services Exception merchantId=*** not registered for domain=***.com",
"statusCode": "400"
}
We have verified the following:
Our Merchant ID and certificates are valid.
All Apple Pay configuration details, including merchant domain verification and placement of the .well-known/apple-developer-merchantid-domain-association file, have been correctly set up and verified.
However, we still encounter the error intermittently.
Questions:
If we need to transition to using paymentSession, how should we do this?
Could this error be related to the use of startSession? If not, how should we troubleshoot further?
Support Needed
Confirmation and clarification on the proper usage and differences between the two URLs: startSession and paymentSession.
Guidance on how we can investigate and resolve the 400 error to ensure that the Apple Pay validation process works consistently.
We appreciate your assistance and support!
Apple Pay
RSS for tagProvide a fast, easy, and secure way for users to buy goods and services in your app or on your website using Apple Pay.
Posts under Apple Pay tag
180 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Wie finde ich die Ursache für den "AbortError" von Apple heraus, der nur in der Produktivumgebung auftritt. In der Testumgebung funktionert Apple Pay fehlerfrei. Es geht um eine Webintegration von Apple Pay mit dem apple pay SDK eine Version vor 1.2.0. Der Fehler tritt auf, wenn ich vom PaymentRequest object die Methode show() aufrufe. Es öffnet sich der Apple Pay Dilaog mit dem Fingerprint-Icon, doch nach einer Sekunde kommt direkt ein Ausrufzeichen und der Apple Dialog schließt sich wieder.
Ich weiß, dass unsere Integration zu Apple Pay in der Produktivumgebung bei mehreren Kunden funktionerte. Das aktuelle Problem ist, dass die Fehlermeldung von Apple namens "AbortError" keinen Hinweis auf die Ursache liefert. Das ist startk verbesserungswürdig.
Ein Betroffener Kunde ist z.B. der Kunde mit der Merchant ID ...(ist es sicher in diesem Forum eine merchantID zu posten?)
Hier kann ich das Problem "AbortError" mit meine iPhone 16.7.8 jederzeit reproduzieren.
Wo finde ich Support für Apple Pay?
I’m trying to test an AMEX card in the sandbox environment, but it’s not getting added. I have followed and verified the checks below to add the card to Wallet:
Sandbox account is active.
Sandbox user region is set to the US.
Device region is also set to the US.
AMEX card from the provided list is being added.
Tested on iOS version 17.6.1
Devices tested include iPhone 13 and others.
Steps followed to add the card to Wallet:
Open Wallet and tap on "Add Card."
Entered the required test data.
Tapped "Agree" and waited.
Received error: "Issuer does not support this card."
Please let me know if you have any solutions.
I am seeking clarification on recurringPaymentRequestwith Apple Pay. I am using the Apple Pay JS API to make a recurring payment request. My Payment processor is Authorize.net. The initial payment processes fine via the token. My question is, how can my web application process the subsequent payment? Authorize.net doesn't allow me to set up an ARB (Automated Recurring Billing) profile for Apple Pay tokens, unlike Credit Cards. How would I go about obtaining another token for the customer? I cannot find good documentation on the recurring billing setup with Apple Pay and Authorize.net anywhere. Thank you in advance for any guidance you can give me regarding recurring billing with Apple Pay. I created an endpoint for the tokenNotificationURL but I do not believe this endpoint receives POSTs when a recurring billing event occurs, and only other lifecycle events are logged.
https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/3955946-recurringpaymentrequest/
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Tags:
Apple Pay on the Web
Apple Pay
When integrating the Wallet Extension, after clicking my app icon from the "From Apps on Your iPhone" list, I encountered the message: "Cannot Add Card. '***' is not responding. Wait a few minutes and try again. If the problem continues, contact the card issuer's customer service" instead of the configured login page appearing as expected.
What could be causing this issue, and how should I resolve it?
Hello, we are developing in app provisioning of our American Express network cards.
After clicking add to apple wallet in our app, I launch the PKAddPaymentPassViewController and click next.
It loads for a few seconds and then I get:
[<private>] ProvisioningOperationComposer: Step '<private>' failed with error Error Domain=PKProvisioningErrorDomain Code=5 UserInfo={PKErrorHTTPResponseStatusCodeKey=500}
Does anyone have any insight on what this error means?
This error occurs in Apple Pay Wallet In-App Provisioning Flow for Credit / Debit Cards
When the data received from the PNO (Visa) is passed to PKAddPaymentPassRequest this error is seen in addPaymentPassViewController, in the finalize stage.
Docs provide no clue as to what could be wrong.
iOS 18.2.1
XCode 15.2
Error description mentions "unsupportedVersionError"
Is the pass version not supported?
Is the wallet version not supported?
Is it an app implementation error or error in the data received from the PNO?
I am adding Apple Pay to my eCommerce site and I am having a lot of difficulty with the PaymentsRequest API in Microsoft Edge browser.
I have a partial implementation that displays the Apple Pay button and creates a PaymentRequest when the button is clicked. That's all.
On Safari, this is enough to display the Apple Pay dialog. The process doesn't proceed further because I haven't implemented a handler for the merchantvalidation event. With Chrome on a Mac, the behavior is the same, I can scan the code and see the Apple Pay dialog.
On Microsoft Edge, I never see the code to scan. In my web console, I'm seeing errors like
InvalidStateError: Failed to execute 'canMakePayment' on 'PaymentRequest': Cannot query payment request
and
NotSupportedError: The payment method "https://apple.com/apple-pay" is not supported. No "Link: rel=payment-method-manifest" HTTP header found at "https://www.apple.com/apple-pay/"
Is Apple Pay not supported on Windows?
I see the demo site here, which gets farther than I have gotten. It does display the scan code, but payment still never completes. I see the same payment-method-manifest error in the console.
If Apple Pay is not supported on any PCs other than Macs, is there any reason to use the PaymentRequest API instead of Apple Pay JS?
I started digging into the W3C standards and it turns out that merchantvalidation event is deprecated. Chrome on Mac does catch it, so it seems like it's supported there. But I have concerns about the long term future. Is it going to remain supported? If so, I would imagine that the interface could change.
It seems like the only benefit of the W3C PaymentRequest API is that Mac users with non-Safari browsers may still be able to use Apple Pay. In theory, that's something I'd still like to support, even if it's only a small number of users, but I only have time for one integration right now, and I need to pick the best one.
How much faith should I have in the W3C PaymentRequest API?
Is it reasonable to pursue it with the goal of including all Mac users regardless of browser? Or is it likely a dead API and I should stick to Apple Pay JS instead to provide a better experience to Safari users?
It also looks like the PaymentRequest API isn't fully finalized yet, so maybe that's the source of my issues. Maybe I should just use Apple Pay JS for now with an eye to supporting PaymentRequest when the spec is finalized.
I greatly appreciate your input.
multiTokenContexts is defined as follows
(https://developer.apple.com/documentation/passkit/pkpaymentrequest/multitokencontexts)
You can assign a value when initializing PKPaymentRequest (https://developer.apple.com/documentation/passkit/pkpaymentrequest).
However, in actual usage scenarios, when the Apple Pay address changes and PKPaymentRequestShippingContactUpdate (https://developer.apple.com/documentation/passkit/pkpaymentrequestshippingcontactupdate) is triggered, how to update multiTokenContexts?
The documentation and code do not provide updates for this parameter.
In contrast, Apple Pay on the Web provides newMultiTokenContexts as an update when ApplePayShippingContactUpdate (https://developer.apple.com/documentation/apple_pay_on_the_web/applepayshippingcontactupdate) is triggered.
Has anyone encountered this problem? Would you happen to have any solutions? Thank you.
Hello!
I have a requirement to read the ICC Public Key Certificate from an EMV credit card to implement a payment validation flow.
Aa far as I understand, I can't use Core NFC for that task since it is not supposed to be used for reading sensitive credit card data and it might be rejected by Apple.
I'm trying to use Tap To Pay as it seems to offer some general card details.
Since Apple's documentation on this side is pretty limited, I'm struggling to understand what is a PaymentCardReader.Token and how can I create one?
Can anyone please help me with setting up Tap to Pay?
When attempting to authorize an Apple Payment on an iOS 18 device using the scannable code in a non-Safari browser (i.e. Chrome), the payment sheet displays briefly, then dismisses.
This same exact implementation of Apple Pay on the Web works flawlessly in Safari, so this feels like a bug given that the merchant session works fine in Safari.
The following errors were found in my iOS device logs:
(PassbookUIService) Codable: Failed to decode Merchant Session Created: Error Domain=NSCocoaErrorDomain Code=4864 UserInfo={NSDebugDescription=<private>, NSCodingPath=<private>}
(PassbookUIService) Session 29592: Fatal Error: Failed to decode merchant session created`
I am implementing apple pay and the merchant validation is failing with error (error request failed with status code 417). I am using react js in the frontend and node js in backend, this is my code
const httpsAgent = new https.Agent({
rejectUnauthorized: false,
cert: fs.readFileSync(
path.join(__dirname, "../../../certificates/merchant_id_prod.pem")
),
key: fs.readFileSync(
path.join(__dirname, "../../../certificates/merchant_id_prod.key")
),
});
const data = {
merchantIdentifier: "merchantId",
displayName: "Check",
initiative: "web",
initiativeContext: "domain.com",
};
const response = await axios.post(validationURL, data, { httpsAgent });
HI.
On November 15, 2024, I registered as an Apple developer as a company (I already have DUNS). And today, Wednesday, January 8, it still says: "Your registration is being processed." I urgently need to upload the application.
Any recommendations?
Topic:
Community
SubTopic:
Apple Developers
Tags:
Subscriptions
Community Management
Accounts
Apple Pay
I've encountered an issue with Apple Pay in PC Chrome with iOS 18. Below is the scenario and code for reference:
Issue Scenario:
A button is clicked to initiate the Apple Pay process.
A QR code window pops up, which I scan with my phone.
As soon as the session is established, the window closes immediately, not allowing the user to select a payment card.
No errors appear in the console.
Here's the code snippet for handling the Apple Pay button click:
const onApplePayButtonClicked = () => {
if (!window.ApplePaySession) {
return;
}
log('Apple Pay button clicked');
const request = {
countryCode: 'UA',
currencyCode: 'UAH',
merchantCapabilities: ['supports3DS'],
supportedNetworks: ['visa', 'masterCard'],
total: {
label: 'PoC Merchant Apple Pay',
type: 'final',
amount: amount.toString(),
},
};
const session = new window.ApplePaySession(3, request);
session.onvalidatemerchant = async (event) => {
try {
log('Creating ApplePaySession');
const response = await fetchAppleSessionAPI(event.validationURL, applePayMercantId, { deviceId, refreshToken });
log('validateMerchantResponse', response);
session.completeMerchantValidation(response.applePaySessionData);
} catch (error) {
log('validateMerchantError', error);
}
};
session.onshippingmethodselected = () => {
const newTotal = {
label: 'PoC Merchant Apple Pay',
type: 'final',
amount: amount.toString(),
};
session.completeShippingMethodSelection(window.ApplePaySession.STATUS_SUCCESS, {}, newTotal);
};
session.onpaymentauthorized = async (event) => {
log('onpaymentauthorized', event);
const result = {
status: window.ApplePaySession.STATUS_SUCCESS,
};
session.completePayment(result);
log('TOKEN', event.payment.token);
};
session.begin();
};
Troubleshooting Steps Taken:
Verified that window.ApplePaySession is available.
Checked for any console errors—none found.
Confirmed that the QR code scanning and session initiation work as expected.
Expected Behavior:
After scanning the QR code and establishing the session, the user should be able to select a payment card and proceed with the payment flow.
Current Behavior:
The window closes immediately after the session is established, preventing card selection.
Has anyone else faced this issue or has insights on how to resolve it?
Thanks in advance!
Hello,
I am developing a mobile application focused on helping users centralize and analyze their expenses. The app's key feature is to track transactions made through Apple Pay, providing users with a consolidated view of their spending across all linked bank cards or accounts.
I have a few specific questions regarding the feasibility of this integration:
Does Apple provide any official APIs or tools to access Apple Pay transaction data for third-party applications?
Are there restrictions or guidelines for apps that aim to use Apple Pay to support expense tracking?
What would be the best way to initiate a partnership or obtain further support from Apple for such a project?
Your insights or direction on how to proceed would be greatly appreciated.
Thank you for your time and guidance!
Best regards,
Amine
We have implemented In-App Provisioning, but when I start the tokenization process, I receive an error before the terms and conditions.
We are testing with a version of the app on TestFlight.
The error message is: Could not add card. Try again later or contact your card issuer for more information.
Could you please help me?
We have get the response from Apple pay after the the customer doing the face ID & touch ID authorization.
But the shiping contact is not complete, for examble:
` {
"addressLines": [
"1************ kwy"
],
"administrativeArea": "FL",
"country": "",
"countryCode": "",
"emailAddress": "S*********le.com",
"familyName": "******i",
"givenName": "******m",
"locality": "*******s",
"phoneNumber": "+*******79",
"phoneticFamilyName": "",
"phoneticGivenName": "",
"postalCode": "*****3",
"subAdministrativeArea": "",
"subLocality": ""
},`
as the documents said, it should be the completed shipping contact,
but the country & countrycode is null
https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypayment/1916097-shippingcontact
Hello,
We are integrating Apple Wallet functionality using the Thales SDK. While we’ve successfully implemented In-App provisioning, we are encountering an issue with the Wallet Extension.
I followed the documentation provided here to implement the Apple Wallet Extension:
https://developer.dbp.thalescloud.io/docs/d1-developer-portal/ab10ea4059dx1-apple-wallet-extension
I’ve implemented everything as per the guide, but I’m still unable to see my app logo in the Wallet Extension under "From Apps on Your iPhone."
Could anyone help identify what might be missing or point me in the right direction to resolve this issue.
Thanks!
My company rebranded and we need to update our merchant name that displays when a user makes a purchase with their Apple Wallet. The merchant name displays correctly on bank statements, but still reflects the old name within apple wallet.
I can't seem to find where the actual display name for the merchant is set or updated. Any insights here would be helpful!
When attempting to make a payment via Apple Pay in the card payment form, an error occurs, but there is no information about the error.
Here, you can watch a video with detailed information about what happened: https://drive.google.com/drive/folders/1bco64RH3UPcJTqjW6muIRDr1gW7lnJ6d?usp=sharing