Apple Pay

RSS for tag

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

Apple Pay Documentation

Posts under Apple Pay subtopic

Post

Replies

Boosts

Views

Activity

Updating the new Merchant Identity and Payment Processing certificate not working
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.
1
0
736
Oct ’24
In-App Provisioning error after accepting the terms
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
1
0
718
Oct ’24
how to use APPLE WALLET API?
Hello there, i'm new in trying to use the apple wallet API. we want to create passes to add identification credentials in the costumer's apple wallet. but we have doubts, for example: is it mandatory to pay the apple developer memebership to use the examples of apple wallet api? also, is there a way or an example of using this API in node.js? Thanks for your attention, i will be waiting for your answers.
1
0
973
Oct ’24
Twitch Like Subscriptions - Many-to-Many
Hi guys, We are trying to implement a solution that would allow users to subscribe to other users in our app. The system should work the same way as Twitch's subscription model works. Users should be able to subscribe to anyone and each subscription should have different tiers. From what we were able to gather, users cannot have multiples of the same subscription on applestoreconnect. Meaning that we would probably need to make a custom subscription per every user? Here we have also learned that there is a limit of 10 000 types of subscriptions and that it is not possible to dynamically create/delete them for users. (correct me if I am wrong) Is there a solution for handling this type of a scenario? Appreciate all answers.
3
0
49
May ’25
Need Apple Pay test cards for failed cases (insufficient balance, etc.) on sandbox environment
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.
1
0
1.4k
Oct ’24
Request: Increase Merchant ID Creation Limit for Apple Pay Integrations
**Hi Apple Developer Community, I’m currently integrating Apple Pay across multiple merchants for my e-commerce solution, and I’ve run into a significant challenge. Apple enforces a limit of 100 Merchant IDs per Developer Account, which is creating a bottleneck for my project. My Questions: 1- Is there a way to increase the limit of Merchant IDs on a Developer Account? 2- Has anyone faced a similar challenge and found a workaround to handle integrations with more than 100 merchants? 3- Are there any plans from Apple to lift or adjust this restriction for businesses working with high volumes of merchants? I’d appreciate any guidance, advice, or information from those who’ve encountered and resolved this issue. Thank you for your help!
2
0
519
Dec ’24
NFC & SE Platform API Details
On the post of NFC & SE Platform for secure contactless transactions, the API details are clearly mentioned. Will the same core NFC APIs be used here or we will get to know the new APIs of NFC & SE Platform only after entering into agreement with apple? Any documentation of APIs of NFC & SE Platform will be helpful.
1
0
762
Nov ’24
Apple pay integration in asp.net website
Hi Guys, I have asp.net web application targeting framework 4.7.2 . The requirement is to integrate apple pay to the site as a payment method. Can any one help me on the below queries. As the development will be in visual studio, is it require to have a apple developer account. if yes, which subscription is required (individual/organization). I believe to obtain merchantID, payment processing certificate apple developer account is required but not sure like which subscription is required. Is there any supporting document or code snippet to integrate apple pay in .net application. Is it required to use browser safari or iphone or ipad for testing the apple pay? can the testing be done using chrome browser? Is it a direct integration using c# code or do I need to use any third party payment gateway like stripe, authorize. Thanks in Advance
1
0
869
Oct ’24
Assistance with Adding Subdomain to Apple Sandbox Domain List
Hi team, I'm currently trying to add a specific subdomain (with a path) to Apple's Sandbox domain list, but it seems Apple only allows the main domain to be entered. Due to strict client security policies, we aren't allowed to use just the main domain, which is creating a roadblock in our implementation. Is there any way to add a full subdomain or URL path to the Sandbox configuration? I'm happy to join a call to explain the scenario further if that would help. Thanks in advance for your support!
2
0
69
Apr ’25
Wallet error
I've completed the setup required for in-app push provisioning on the iOS platform. Encountering an issue at the completion handler step while sending data back to the PassKit framework. The delegate method used is: func addPaymentPassViewController(completionHandler handler: @escaping (PKAddPaymentPassRequest) -> Void) The error observed is: Error Domain=PKPassKitErrorDomainCode=2 which is PKUnsupportedVersionError The device used for testing is running iOS version 17.4.1.
1
0
47
Apr ’25
Apple Pay Is Not Available in "
We are encountering an issue where Apple Pay shows an unexpected popup with a message and an "OK" button when confirming a payment (after double-tapping the power button). This issue began appearing last week without any changes to the codebase or configurations. Steps to Reproduce: Open the app and initiate an Apple Pay payment. Add a valid card if not already present. Confirm the payment using the side button (double-tap). Instead of completing the transaction, a popup appears with a generic message and an "OK" button. Expected Behavior: Apple Pay should process the payment and provide a confirmation or error based on the transaction status. Actual Behavior: A popup appears with a generic title and an “OK” button. The transaction is not processed. Environment Details: Platform: iOS Apple Pay integration has been functioning correctly for years No recent updates to Apple Pay-related code or configuration Configurations Checked: App Identifier is correctly set with the bundle ID Apple Pay Payment Processing is enabled in the App ID configuration Correct Merchant ID is selected and matches in Xcode capabilities *.entitlements file contains correct Apple Pay entitlement Payment Processing Certificates are valid and in place Additional Notes: The issue appeared suddenly without any modifications to the app. We suspect it may be due to external changes (e.g., Apple system update or merchant validation issue). Please advise on any further steps we can take to diagnose or resolve this issue.
2
0
58
May ’25
How to react to card network on onpaymentmethodselected?
We're currently evaluating Apple Pay as a payment method on our site. For Amex US credit card payments, we charge a payment fee. For other credit cards, there is no such fee. However, for Apple Pay it seems we cannot configure this. What we currently tried is to implement onpaymentmethodselected. However, only the card type is part of the event, not the card network. Example code: session.onpaymentmethodselected = event => { /* event.paymentMethod only contains {type: "credit"} */ console.log('onpaymentmethodselected', event.paymentMethod); /* event.paymentMethod.network is therefore undefined, if we could have here 'amex', 'mastercard' etc, we could implement the payment fee we currently have*/ console.log('onpaymentmethodselected', event.paymentMethod.network); session.completePaymentMethodSelection({}); }; Is there a way to access the network in this callback? Or is there another way to implement payment fees with certain networks used via Apple Pay?
1
0
695
Nov ’24
Is MPAN always provided?
Hi team @ Apple, Is an MPAN always provided with an ApplePayPaymentToken? I heard there are old devices that will provide only a DPAN. Is this correct, and do we need to support the case where only a DPAN is present? I.e. what percentage of devices doesn't support MPAN? Thanks
1
0
739
Oct ’24
Apple Pay questions
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
3
0
922
Oct ’24
Fundraising App
Hi everyone, I’m developing an iOS app for fundraising, similar to platforms like JustGiving. The app will allow multiple charities to register and receive donations directly into their Stripe accounts using Stripe Connect. Given Apple’s strict guidelines, I want to make sure I address the following: How can I ensure compliance with App Store guidelines for apps that facilitate donations to multiple charities? Are there specific requirements for verifying charities or disclosing fundraising information within the app? Any tips for providing sufficient documentation during the App Store submission to avoid delays or rejection? I’d really appreciate advice from anyone who has experience with similar projects or navigating Apple’s review process for apps involving fundraising and third-party payments. Thanks in advance!
2
0
340
Dec ’24
pkpass-email
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.
1
0
339
Oct ’24
Payment not completed error
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(); }
1
0
1k
Oct ’24
Sub-account Wallet Passes
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.
3
0
458
Oct ’24