Hello,
I was going through the Apple Pay API documentation and noticed ambiguity on the exact process to complete merchant validation.
One of the documentation mentions that the validation url will be
Your server posts a request using mutual TLS (mTLS) by calling the Apple Pay server’s Payment Session endpoint.
Endpoint (Global)
POST https://apple-pay-gateway.apple.com/paymentservices/paymentSession
Endpoint (China region)
POST https://cn-apple-pay-gateway.apple.com/paymentservices/paymentSession
Referencing the url: https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_payment_session
whereas the other references that the value should be used as provided by the onvalidatemerchant event object with the property validationURL.
Refer: https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/providing_merchant_validation
Can someone confirm which is the correct approach to follow ?
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
124 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello
My app has implementation of In App Provisioning which is working fine. We have now added Wallet Extensions to it, but my App is not shown in Apple Wallet "From apps on your iphone"
I have uploaded Feedback (FB16450547) at
https://feedbackassistant.apple.com/feedback/16450547
Kindly request for your advice
After opening the Apple Pay Popup and try to close the popup (without scanning the QR Code), the oncancel handler (accociated with the created session) doesn't fire.
Meanwhile if the merchant scanned the QR code and the UI of the popup changed, then cancel the popup manually (using close (X) button), it fires the session.oncancel event handler.
Here is applied setup:
const { ApplePaySession } = window;
if (!(ApplePaySession && ApplePaySession.canMakePayments())) {
return new Error('Apple Pay Session is not available');
}
const paymentCapabilities = await ApplePaySession.applePayCapabilities(
applePaymentOptionsMetaData.merchantIdentifier,
);
if (paymentCapabilities.paymentCredentialStatus === 'applePayUnsupported') {
console.error('ApplePaySession is not supported.');
return;
}
const request = {
"countryCode": "KW",
"currencyCode": "KWD",
"merchantCapabilities": [
"supports3DS"
],
"supportedNetworks": [
"VISA",
"MASTERCARD"
],
"billingContact": {
"phoneNumber": "201000000000",
"emailAddress": "example@test.com",
"givenName": "Ahmed",
"familyName": "Sharkawy"
},
"total": {
"amount": "3.085",
"label": "Merchant Testing"
}
}
const session = new ApplePaySession(5, request);
session.onvalidatemerchant = async event => {
if (debug) {
console.info('Creating merchant session and validating merchant session');
console.info('onvalidatemerchant event', event);
}
try {
// Validation Merchant Request
session.completeMerchantValidation(data);
} catch (error: any) {
session.completePayment({ status: ApplePaySession.STATUS_FAILURE });
}
};
session.onpaymentauthorized = async (event) => {
session.completePayment({ status: ApplePaySession.STATUS_SUCCESS });
};
// This doesn't fire
session.oncancel = () => {
console.info('EVENT: oncancel');
};
session.begin();
I'm currently working on an AppIntent in my app to import Apple Pay transactions via Transaction triggers in Shortcuts. While I can access the transaction name with the following code:
@Parameter(title: "Transaction")
var transaction: String
I'm not sure how to retrieve the full details of the transaction, including:
Card or Pass
Merchant
Amount
Name
At the moment, transaction only provides the name as a string, but I need access to the complete transaction data. I know that by selecting specific fields like Amount, Merchant, etc., I can retrieve each piece of data individually, but it would be much easier and more user-friendly to simply retrieve the entire transaction object at once.
Has anyone successfully retrieved all details of an Apple Pay transaction in this context, and if so, could you share how to do so?
Topic:
App & System Services
SubTopic:
Apple Pay
Tags:
Shortcuts
Apple Pay
App Intents
Tap to Pay on iPhone