does anyone have an example of the decrypted payload for an interac payment would look like? Couldnt find an example within the apple documentation
Apple Pay
RSS for tagDiscuss how to integrate Apple Pay into your app for secure and convenient payments.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I have a Developer account with a Developer Role, although apparently without the stated ability to create my own Sandbox ID. So, our company's Administrator is trying to create one for me.
But each time he enters a new icloud.com address to create one, he gets the error,
"Your Apple ID or password was entered incorrectly."
(The example at the above link uses icloud.com, and that seems the natural place to do this. I'm assuming that since you can't actually create an icloud.com email without an Apple ID, that this sandbox creation process should be ok with the email not existing yet.)
I'm trying to upload my app with Tap to Pay on iPhone functionality. However, I'm getting error message "Profile doesn't include com.apple.developer.proximity-reader.payment.acceptance entitlement." I've confirmed many times that I have the distribution profile with this capability. Any idea what might be the issue? The development environment works perfectly.
Hello,
I've recently created a merchant ID and added two domains to it. I placed the verification .txt files in the right place (under the .well-known dir) and both verified successfully and show as such in the merchant id setup page.
I am intermittently getting the following error:
{
"statusMessage": "Payment Services Exception merchantId=XXXXX not registered for domain=my.domain.com",
"statusCode": "400"
}
(merchantId and domain have been masked in the above error) -- What's odd is that this is intermittent -- It'll work fine, and then stop and start giving the above error, and then start working fine again, with no intervention from me.
Some context: This is a single server application, so it's not like we've got a server out of sync somewhere.
Thoughts?
Any thoughts?
Hello forum,
Hope all is great!
I have a shortcut automation which uses the transaction trigger. Since updating to ios 18 the transaction trigger does not work anymore.
Whenever a transaction is done, the “Running your automation” notification does not show up and the automation does not work.
To share with you the steps I’ve done so far:
1.Remove the automation and do it again
2.Remove the card from apple pay
3. Delete and install again the shortcut app
4. Turned on and off the phone
I can confirm the automation works on my other iPhone with the latest version of IOS 17.
Would really appreciate if anyone has any insights about that, or if this happened to you as well.
Cheers!
Dorin
I am currently testing Apple Pay integration on my sandbox environment and I am in need of test cards for failed cases such as insufficient balance. Does anyone have access to or know where I can find Apple Pay test cards specifically for scenarios where transactions fail due to reasons like insufficient balance? Any help or guidance on this matter would be greatly appreciated. Thank you.
Apple pay on checkout in iframe is working with test cards while in Private window. However when we go into normal browsing the Apple Pay button is greyed out. Real cards will ask for fingerprint and then decline with "Payment Not Completed". What is the issue?
I am using a sandbox account, and I set United States in the region column (Settings>General>Language & Region>Region to US). I added test cards like (American Express and Visa) and the cards added successfully.
But I am trying to pay then I get an error like "Payment Not Completed".
Note: I am trying from India.
Please let me know what exactly i am doing mistake here
Following code i am using.
function onApplePayButtonClicked() {
if (!ApplePaySession) {
return;
}
// Define ApplePayPaymentRequest
const request = {
"countryCode": "US",
"currencyCode": "USD",
"merchantCapabilities": [
"supports3DS"
],
"supportedNetworks": [
"visa",
"masterCard",
"amex",
"discover"
],
"total": {
"label": "Demo (Card is not charged.)",
"type": "final",
"amount": "1.99"
}
};
// Create ApplePaySession
const session = new ApplePaySession(3, request);
session.onvalidatemerchant = event => {
// Call your own server to request a new merchant session.
var merchantSession = merchantValidation(event.validationURL);
session.completeMerchantValidation(merchantSession);
};
session.onpaymentmethodselected = event => {
// Define ApplePayPaymentMethodUpdate based on the selected payment method.
// No updates or errors are needed, pass an empty object.
const update = {};
session.completePaymentMethodSelection(update);
};
session.onshippingmethodselected = event => {
// Define ApplePayShippingMethodUpdate based on the selected shipping method.
// No updates or errors are needed, pass an empty object.
const update = {};
session.completeShippingMethodSelection(update);
};
session.onshippingcontactselected = event => {
// Define ApplePayShippingContactUpdate based on the selected shipping contact.
const update = {};
session.completeShippingContactSelection(update);
};
session.onpaymentauthorized = event => {
// Define ApplePayPaymentAuthorizationResult
const result = {
"status": ApplePaySession.STATUS_SUCCESS
};
session.completePayment(result);
};
session.oncouponcodechanged = event => {
// Define ApplePayCouponCodeUpdate
const newTotal = calculateNewTotal(event.couponCode);
const newLineItems = calculateNewLineItems(event.couponCode);
const newShippingMethods = calculateNewShippingMethods(event.couponCode);
const errors = calculateErrors(event.couponCode);
session.completeCouponCodeChange({
newTotal: newTotal,
newLineItems: newLineItems,
newShippingMethods: newShippingMethods,
errors: errors,
});
};
session.oncancel = event => {
// Payment canceled by WebKit
};
session.begin();
}
I've implemented Push Provisioning, but am having trouble testing it.
When I try to add a payment pass with my activationData, encryptedPassData, and ephemeralPublicKey, I see the "Add Card to Apple Pay" screen, but then when I click "Add Card", I get a "Could Not Add Card" message.
When I inspect the error from didFinishAddingPaymentPass, it reads "The operation couldn’t be completed. (PKPassKitErrorDomain error 2.)".
Is this error PKPassKitError.Code.unsupportedVersionError? What does this error means?
Additional context:
We use cordova-apple-wallet to generate certificates and add payment pass.
I just updated to iOS 18 and now Apple Pay will not work??? Frustrating.
Topic:
App & System Services
SubTopic:
Apple Pay
Hi everyone,
I’m encountering a challenge while working with Apple's PKPass for boarding passes and would appreciate any guidance.
We are generating boarding passes for users and want them to automatically display on the lock screen as the boarding time approaches. To do this, we are utilizing the relevantDate property.
The issue arises because, when setting the relevantDate, the date and time are specified in Zulu time (UTC). However, iOS converts this to the device's local time zone (BST in my case), resulting in a one-hour shift.
For instance, in pass.json, I set "relevantDate": "2024-10-03T14:35:00+00:00" (or "relevantDate": "2024-10-03T14:35Z"). While iOS does display the pass on the lock screen as expected, the notification shows the time as "Today at 15:25" instead of the correct "14:25."
Expected behaviour: the notication text should display the exact time set in the relevantDate( i.e. Today at 14:25).
Any insights on how to resolve this would be greatly appreciated!
Thank you!
I am trying to find solutions past 4 days. but not getting any reference about NFC implementation in my app to read Debit/Credit card upon user consent? Can you confirm apple is provided any api for read Debit/Credit card using NFC or not. Tried with normal NFCReader but it reads only for normal tags but nothing with Visa/ MasterCard cards. Looking forward some help from you. Thanks
Hi All,
I would like to know what kind of JWT I have to create.
This is the text from the Docs:
" get a JSON web token (JWT) from your payment service provider that includes the merchant’s unique identifier "
and
" Valid and signed token from a participating payment service provider. "
It's possible to have an example of JWT Token ? Because I tried some kind of JWT but I always got the same error:
" PaymentCardReaderError.invalidReaderToken(_:)
An error that indicates an invalid, non-empty reader token. "
https://developer.apple.com/documentation/proximityreader/adding-support-for-tap-to-pay-on-iphone-to-your-app
Thanks
Gianluca,
Hello,
We are developing a mobile application that will facilitate communication between landlords and tenants. One of the key features of the app will allow tenants to make rent payments to landlords directly using their credit cards.
However, I am concerned about Apple’s commission structure for in-app payments. Since these payments are for rent (not digital goods or services), I would like to understand if Apple’s standard 30% commission would apply to these transactions. If so, this would make the app less appealing for users who might prefer alternative payment methods outside the app.
Could you please clarify if such transactions fall under Apple's commission model, or if there are exceptions for rent payments and similar real-world transactions?
Thank you for your help!
Topic:
App & System Services
SubTopic:
Apple Pay
Hello,
I am developing Apple pay and In-app provisioning for the bank where I work, we have already configured all the entitlements, we are configured correctly with our PNO, When I use PKAddPaymentPassViewControllerDelegate I get to the terms and conditions part, but when I click accept , I am receiving the following error: "Could not add card"., and the log generated through the Wallet Profile on my iPhone is the following:
Response:
https://crt-pod1-smp-device.apple.com:443/broker/v4/devices/042727BD5C1D900232550083704076180311F218772B4987/cards/7bbe81aeb5ef4869aab8ebd9f45be840/enable 500 Time profile: 0.767163 seconds
{
x-conversation-id = "fccd73bcffbc4c3e9f85806647803b6b"
Vary = "accept-language"
Content-Type = "application/json"
x-pod = "crt-pod1"
x-keystone-correlationid = "B1F30C5D-AA1F-4729-B36E- 2C8516006C39"
Date = "Tue, 08 Oct 2024 17:28:40 GMT"
x-apay-service-response-details = "via_upstream"
Content-Length = "49"
x-envoy-upstream-service-time = "599"
x-pod-region = "paymentpass.com.apple"
}
{
errorCode = 40456;
statusCode = 500;
}
Can anyone please help me with this?
Regards,
Vinicius
Topic:
App & System Services
SubTopic:
Apple Pay
We are updating the new certificates in our Non-Production environment.
The steps we followed,
Created and downloaded a new Merchant Identity certificate, converted and updated on our servers. Now we have a new certificate and an old certificate on the portal, both have valid expiration dates.
Created and downloaded a new Payment Processing certificate, converted and updated in our backed system (vault). Now we have a new certificate and an old certificate, both have valid expiration dates. However, activated the new Payment Processing certificate as it was showing only the previous one as Active, and Activate option was showing against the new one if we would like to do so. Doing this has automatically revoked the old certificate.
We have then tried testing the Apple Pay payments.
Result: We can see that the Merchant Validation API is going through successfully and returns the session object. But when the payment token is getting decrypted with the new Payment Processing certificate, private key, and ephemeral public key, the token is not getting decrypted. Instead, it was giving the error - javax.crypto.AEADBadTagException: mac check in GCM failed.
Even after a lot of troubleshooting and repeating the certificate update steps multiple times, we couldn’t find any clue. Then we tried the below few steps as part of further analysis.
We tried to decrypt the new payment token generated with the previous Payment Processing certificate and key which we reinstated in our backend. The decryption was successful. This was baffling as to why the new payment token which was generated as part of the new Merchant Identity certificate would get decrypted with the old Payment Processing certificate and key.
Then as we know that there were 2 Merchant Identity certificates active on the Apple portal, we have revoked the previous Merchant Identity certificate as well on the portal assuming the Merchant Validation API call would have been processed with the previous Merchant Identity certificate at Apple. Now when we tried the Apple Pay payments again with the new certificates all-around, the token decryption and hence the payment processing went through successfully.
Hence, the conclusion was that after creating and updating new certificates, the new Apple Pay payments are successful only when both the previous Merchant Identity and Payment Processing certificates are revoked. Is this a valid approach or are we missing something?
In our Production environment, we want to rotate the certificates without revoking the previous ones. Kindly let us know how we can achieve the same. Prompt replies are appreciated as expiry is nearing soon.
Topic:
App & System Services
SubTopic:
Apple Pay
Hi team, just a few general questions about Apple Pay:
If user removes card from wallet, then re-adds it, will it preserve its Merchant Token (MPAN) or will a new one be generated?
Is the DPAN the same as applicationPrimaryAccountNumber in this page: https://developer.apple.com/documentation/passkit_apple_pay_and_wallet/apple_pay/payment_token_format_reference
Can a user have the same card active simultaneously in two devices?
Thank you
trying to email pkpass and when it is received, click on it and it asks which browser I want to use instead of opening pass and being able to save it to wallet. Tested email and it is working the way it should.
Hi! I need to generate multiple separated wallet passes, When ever I create a Sub-account - or sub-brand (in my web-app), I need to generate a wallet pass - stand alone - meaning new, new logo, new name and not all in a course format, I have a web-app that can do all but when it creates new sub-account (new brand) passes, will add them to same account in a carousel style, below an example that will make it clear (I hope). Also attached an image showing the 2 passes (2 different brands) in one main wallet pass (carousel) instead of having two different wallet passes (one for each brand - Sub-account).
How could I be able to accomplish this?
Thanks in advance!!
REFERENCE:
Main Apple Dev Account (ME)
Sub-Account (My Client)
User (Client of Sub-Account)
CASE NEEDED:
ME->Sub-Account A (Own Wallet Card stand alone pass no Carousel) -> Users: Only sees Account A Pass
ME->Sub-Account B (Own Wallet Card stand alone pass no Carousel) -> Users: Only sees Account B Pass
Users can be client of both sub-accounts, but must see each wallet pass as stand alone, do that sub-accounts are different brands.
Hi, I recently saw that ApplePay is supported on other browsers and also on computers other than Mac, but on my site I have ApplePay integrated and it doesn't work, do I have to do anything to have it activated on my portal?
I integrated it with Apple Pay API JS