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

profile doesnt support tap to pay iphone
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.
2
0
1.1k
May ’24
adding ApplePayDeferredPaymentRequest request is cancelled
Hi, I'm adding deferredPaymentRequest container to get MPan, but payment is now cancelled by Webkit, no other explanation What is the next step to get mpan ? Regards, Louis "deferredPaymentRequest": { "deferredBilling": { "label": "Deferred Payment", "amount": "1.99", "type": "final", "paymentTiming": "deferred", "deferredPaymentDate": "2024-06-1", }, "managementURL": 'https://.../apmsim/pay/appleManagement', "paymentDescription": "this is a paymentDescription", }
1
0
696
May ’24
Intermittent merchant validation
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?
4
2
1.3k
Jun ’24
Apple Pay 115% limit
Hi. About to start integrating Apple Pay for the first time. Other gateways I've integrated have a limit from the initial authorisation, above which you can't capture payment. E.g. customer authorizes £100, but then adds items to their order taking the value to £120. Is there such a limit with Apple Pay? Is there a workaround without having to contact the customer again. Jon
1
0
585
Jun ’24
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..
I am getting error while await applePayClient.PostAsJsonAsync(validationUrl, validationPayload) I am testing it on local machine. Am I even can test this on local machine or not? Error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.. validationUrl: https://apple-pay-gateway.apple.com/paymentservices/startSession JS C# code: var applePayClientHandler = new HttpClientHandler { SslProtocols = System.Security.Authentication.SslProtocols.Tls12 | System.Security.Authentication.SslProtocols.Tls13 }; var applePayClient = new HttpClient(applePayClientHandler); var merchantId = "merchant.com.xxxxxx.sandbox"; var _displayName = "Sandbox"; var domainName = "xxxxxx.co"; var validationUrl = request.ValidationURL; var validationPayload = new { MerchantIdentifier = merchantId, DisplayName = _displayName, Initiative = "web", InitiativeContext = domainName }; try { var response = await applePayClient.PostAsJsonAsync(validationUrl, validationPayload); var merchantSession = await response.Content.ReadAsStringAsync(); return merchantSession; } catch (HttpRequestException httpEx) { // Log detailed HTTP request/response information Console.WriteLine($"HttpRequestException: {httpEx.Message}"); if (httpEx.InnerException != null) { Console.WriteLine($"InnerException: {httpEx.InnerException.Message}"); } throw; }
2
1
957
Jun ’24
Shortcuts | Transaction Automation | IOS 18
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
3
4
1.3k
Jun ’24
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
Jul ’24
Payment Services Exception
调用 API 时,返回以下错误:Apple Pay 处理证书、Apple Pay 商家身份证书和商家域均已设置 { “statusMessage”: “支付服务异常 merchantId=1A9569E9792DB13B9BEE22EDB30515DE75D512B91A2C86C54D4065AD1ECC712E 未经授权代表 merchantId=4D08091EACD9C0D2E25CB94895D1B0DAE73970D6A517EF2988D6D929D1336DA1 reason=4D08091EACD9C0D2E25CB94895D1B0DAE73970D6A517EF2988D6D929D1336DA1 不是 WWDR 的注册商家,也没有通过 Mass Enabling 获得适当授权。 “状态代码”: “417” 连接到主机的 #0 apple-pay-gateway.apple.com 完好无损 }
1
0
561
Jul ’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
Aug ’24
We found that in same cases the StoreKit2 API Product.purchase() return an other transaction which is not what the user is purchasing.
Hi, We found that in same cases the StoreKit2 API Product.purchase() return an other transaction which is not what the user is purchasing. We are confused that if the usage below could lead to this issue: StoreKit2 and old StoreKit are used at the same time: purchase by StoreKit2: Product.purchase(); in the callback method [SKPaymentTransactionObserver paymentQueue:updatedTransactions:], call the old API [[SKPaymentQueue defaultQueue] finishTransaction:] to finish transaction, but never call the new one Transaction.finish(). Your reply will help us a lot! Thank you.
0
0
247
Sep ’24
Changing PassTypeIdentifier for existing wallets
Hello, my company plans to move some our clients to another jurisdiction and use for it the new server separate developer account, apple certificates, domain etc. As i understand there is no way to issues two certificates with same PassTypeIdentifier ? Does Apple provides any way to update PassTypeIdentifier for existing wallet so they can work with new server ? Is there any step by step guide to do this right?
0
0
290
Sep ’24
Detect if HCE app is not the default contactless app and jump directly to the default contactless app selection settings.
Hello, I am developing an HCE-based contactless payment application for the European Economic Area. I want to detect when my application is not the default contactless app and forward the user to the iOS settings for selecting the default contactless app. Question #1: How can I detect that my app is not the default contactless app? Question #2: How can I forward the user directly to the default contactless app selection in iOS settings? This line of code forwards the user to my app’s settings, which contains a reference to the default contactless app selection, but I couldn’t forward the user directly to the default contactless app selection view: UIApplication.shared.open(URL(string: "app-settings:root=General")!) There must be a way to jump directly to the default contactless app selection view as described in Apple's commitment to the EU (Case AT.40452, Chapter 3.8): "Apple will enable HCE Payment Applications to redirect users directly to the App’s page in settings and include a link which will take the user directly to the NFC settings page to easily set the default Payment Application for NFC In-Store Payments. (https://ec.europa.eu/competition/antitrust/cases1/202428/AT_40452_10155330_9978_4.pdf)
2
2
419
Sep ’24
Express Transit presented despite successful call to PKPassLibrary.requestAutomaticPassPresentationSuppression(...)
I am working on a transit app that offers a digital ticketing product that is powered by a QR code being scanned. We have been successful in preventing the Apple Pay takeover experience from happening when a user tries to use this product next to the tap to pay terminals by making a call to PKPassLibrary.requestAutomaticPassPresentationSuppression(...) before the QR code is presented. However, our transit agency is piloting Express Transit on these turnstiles and we are noticing that this experience overrides the old NFC suppression. Is there a similar method available to us to suppress the express transit experience for users who are using these mobile ticketing products?
1
0
603
Sep ’24
How to query for passes inside Apple Wallet using tokenReferenceID?
We have a requirement to include Apple Pay In-App Provisioning in our Mobile Application and we have an API from Backend to get the tokenReferenceID for a given Card. I want to query the passes from Apple Wallet to see if there are any matches to the given tokenReferenceID before I can decide whether to show the “Add to Apple Wallet” button or not. I went through all PassKit APIs but couldn’t find a way to query for passes with tokenReferenceID. We have primaryAccountIdentifier, deviceAccountIdentifier but which one should be used to match with tokenReferenceID? Can someone please help me how to query the Wallet passes with tokenReferenceID using PassKit?
1
1
719
Sep ’24
Apple Pay on the web
When checking if the device supports Apple Pay and has an active card, a call is made to 'applePayCapabilities'. The documentation indicates this method asynchronously contacts the Apple Pay servers as part of the verification process. My understanding is that this is a client side call, from the device/OS to the Apple Server. The application (Apple pay on the web) is behind a firewall. What domain should I whitelist for this verification to be a success?
2
0
465
Sep ’24
Issue with Sandbox Account on iPhone (iOS) for In-App Purchase Testing
Hi everyone, I'm currently working on testing in-app purchases for my app, and I'm having issues with logging into a sandbox account on my iPhone. Here's the situation: I created a sandbox account via App Store Connect. I signed out of my regular Apple ID from the App Store and attempted to log in with my sandbox account during an in-app purchase. I receive a verification code on my phone, and it seems like the login is working. However, after entering the code, I keep getting redirected back to the "Sign in with Apple Account" screen. It doesn’t fully log me in. I’ve tried resetting network settings, restarting the device, and even creating a new sandbox account, but nothing seems to work. I'm running the app through Expo prebuild and attempting to test purchases, but without being able to log into the sandbox environment, I can’t move forward. Has anyone encountered this issue before or know how to fix it? Any help would be greatly appreciated! Thanks!
0
0
548
Sep ’24