Apple Pay

RSS for tag

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

Apple Pay Documentation

Post

Replies

Boosts

Views

Activity

Tap on Mobile app integration with other app on iOS
There is coming vawe of SoftPOS class app, turning iPhone into regular payment terminal. so far Apple picks country by country, where the service is available. As for today limited number of regions, where Tap on Mobile is possible to use at all. Beeing preparing for that vawe we are considering possibly integration scenario and found the following obstacle: Originally it was possible to integrate as app to app, means Tap on Mobile to other apps, where both apps are installed separately on iPhone. But now Apple does not allowe to make integration as app to app, but only integration is possible by embedded libraries (special libraries are embedded in master app, and on the iPhone there is only one app, which covers also Tap on Mobile features). 1/ Do you know, what is the reason for such restriction to have only embedded libraries method to integrate (although originally it was possible to integrate as app to app, means Tap on Mobile to other app)? 2/ Do you think, Apple release again first integration as app to app, as they allowed originally?
0
0
448
May ’24
Sandbox tester account not able to add test cards for testing
Hello team , We have created a sandbox tester and added all the setting as per the guidelines but the sandbox tester account is blocked from adding the test card . All the test cards show as invalid card . We are not able to able to add wallet from iCloud . We are not able to sign into iTunes with the sandbox tester account . Please help on how to resolve this . Thanks in Advance
1
0
499
May ’24
Unable to create Sandbox Apple IDs
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.)
1
0
713
May ’24
Getting Error when verifying merchant
I want to integrate an apple pay account on the website, but on the point where I am validating merchant that return "false" responses . I already followed the documentation and tried many times but still did not resolve it. Please help me to resolve this issue. so that i can integrate apple pay for heartland. here i mentioned my block of code where i am verifying merchant, please help to fix this. server side code: (PHP): $merchantSession = fetchAppleMerchantSession($validationURL); echo json_encode($merchantSession); function fetchAppleMerchantSession($validationUrl){ $cert_url = base_path('cert/merchant.pem'); $cert_key = base_path('cert/merchant.key'); $data = [ 'merchantIdentifier' => 'domain.com', 'domainName' => 'domain.com', 'displayName' => 'Disp Name', 'initiative' => 'web', 'initiativeContext' => 'domain.com' ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $validationUrl); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_CERTINFO, true); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); curl_setopt($ch, CURLOPT_SSLCERT, $cert_url); curl_setopt($ch, CURLOPT_SSLKEY, $cert_key); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); $result = json_encode($res); return ['data' => $result, 'status' => false]; } client side code (JS): // Create Apple Pay session within the user gesture handler const session = new ApplePaySession(6, paymentRequest); // Handle merchant validation session.onvalidatemerchant = (event) => { console.log("event", {event, session}); const validationURL = event.validationURL; fetch('gp_applepay_validate.php', { // Replace with your server-side validation endpoint method: 'POST', headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Headers': "*" }, body: JSON.stringify({ validationURL }), }) .then((response) => { console.log("response.json()", response); return response.json(); }) .then((data) => { console.log("datappp", data); if (data.status) { event.completeMerchantValidation(data.data); } else { console.error('Merchant validation failed:', data.data); session.abort(); alert('Payment failed: ' + data.data); // Improve error message } }) .catch((error) => { console.error('Error during merchant validation:', error); session.abort(); alert('An error occurred during payment. Please try again later.'); // Generic error message for user }); };
2
0
735
May ’24
Apple Pay Registration Error
We are getting this error when processing our registration. Payment Services Exception Domain check failed with the following errors. No domains were registered.\nDomain verification failed for pspId=1A014B2EC09DB380EE1D51FE4D116C801F62F29D74F2D93269FE554CA2E34656 domain=patient.moolah.cc url=/.well-known/apple-developer-merchantid-domain-association errorMessage=com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 4559 path $", "statusCode": "400"}
1
0
650
Apr ’24
Apple Pay Sandbox with Payment Not Completed
Team, When I try using Apple pay for Japan, we are getting Payment Not Completed error for a merchant with Japanese character as the displayName at completeMerchantValidation. The same works well if the merchant has name in English. log from com.apple.passkit as explained in Apple Pay on the Web Debugging Guide 2024-04-30 12:12:21.441231+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] Received <private> status: PKPaymentAuthorizationStatusSuccess 2024-04-30 12:12:21.441336+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] Evaluating merchant session using PROD trust policy. 2024-04-30 12:12:21.448371+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] State machine change state from PKPaymentAuthorizationStateClientCallback to PKPaymentAuthorizationStatePrepareTransactionDetails with param: <private> 2024-04-30 12:12:21.448393+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitMacHelper) [com.apple.passkit:PaymentUI] State change: PKPaymentAuthorizationStatePrepareTransactionDetails 2024-04-30 12:12:21.448444+0530 0xb6bd16 Error 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitMacHelper) [com.apple.passkit:PaymentUI] State change not implemented: PKPaymentAuthorizationStatePrepareTransactionDetails 2024-04-30 12:12:21.450878+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] Performing request: POST <private> { 7 <private> fields } 500 bytes 2024-04-30 12:12:22.642216+0530 0xbaa237 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] Task Completed: <private> 2024-04-30 12:12:22.642348+0530 0xbaa237 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] Response: <private> 400 Time profile: 1.19145 seconds { 6 <private> fields } 232 bytes 2024-04-30 12:12:22.642571+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] State machine change state from PKPaymentAuthorizationStatePrepareTransactionDetails to PKPaymentAuthorizationStateFatalError with param: <private> 2024-04-30 12:12:22.642617+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitMacHelper) [com.apple.passkit:PaymentUI] State change: PKPaymentAuthorizationStateFatalError 2024-04-30 12:12:22.642757+0530 0xb6bd16 Error 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitMacHelper) [com.apple.passkit:PaymentUI] Payment failed with fatal error <private> 2024-04-30 12:12:22.643288+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Analytics] subject: inApp event: <private> 2024-04-30 12:12:22.659154+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitMacHelper) [com.apple.passkit:PaymentUI] glyphView - revealedErrorAction() 2024-04-30 12:12:24.633308+0530 0xb6bad7 Default 0x0 55529 0 Safari: (PassKitMacHelperTemp) [com.apple.passkit:Payment] Invalidate extension <private> identifier <private> 2024-04-30 12:12:24.653014+0530 0xb6bd16 Info 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Connections] PKInAppPaymentService:0x12bf1b660 (0x1290e2a80): Tearing down existing connection 2024-04-30 12:12:24.653173+0530 0xbaaa12 Info 0x0 68603 0 passd: [com.apple.passkit:Connections] PDXPCServiceListener 2 (0x127705150:55547): connection invalidated 2024-04-30 12:12:24.654891+0530 0xb6bd16 Default 0x0 55547 0 com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Analytics] subject: inApp event: <private> As we can see, com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitMacHelper) [com.apple.passkit:PaymentUI] Payment failed with fatal error <private>, how do we debug this further?
3
0
782
Apr ’24
Apple Pay Sheet Not Showing on iPhones
Hi guys, I'm working on Apple Pay integrating it into web, but I'm having a problem the payment sheet is not showing on safari browser and iPhone devices (the apple pay button is showing but not clickable and no error logs) but it showing on iPad devices (the payment sheet is showing after the user clicks on the button). Is there anyone same as issue like this? Thank you for any help.
1
0
485
Apr ’24
Autofill SMS code in PKAddPaymentPassViewController
Hello everyone! In our application, we have login via phone number (with an SMS code as a password) and the ability to add a bank card to Apple Wallet. When logging in via phone number, upon receiving the SMS code, it automatically suggests filling in the input field. However, the field itself is not of type .oneTimePassword, and the SMS does not contain @domain, #code at the end (please look at the screenshot). So, when adding a card to Apple Wallet, PKAddPaymentPassViewController is launched, where entering the code from the SMS is also required to activate the card. However, no autocomplete prompt for the SMS password appears when displaying this field. Does anyone have information on why this is happening and how it can be implemented?
0
0
480
Apr ’24
ApplePay Recurring Payment Request
We couldn't find a descriptive reply for the following and we wanted to get additional feedback. We've received a notification about using ApplePayRecurringPaymentRequest in Apple Pay JavaScript for recurring, installment and unscheduled payments. On the page (https://developer.apple.com/documentation/apple_pay_on_the_web/applepayrecurringpaymentrequest) we found a new object (see whole object below) and there are some questions about using and filling the parameters. I hope you will help us for making understanding. The ApplePayRecurringPaymentRequest should be sent only in initial operation? A phrase "required" is meant the parameter is mandatory? Where can we take the lenth for each field? Parameter regularBilling is applied for recurring, installment and unscheduled payments? Parameter trialBilling is applied only for recurring payments? If we sent the regularBilling or trialBilling Apple Pay will authorize a payment automatically without merchant's actions? In which cases do we have to fill ApplePayLineItemType with value “pending”? Parameter amount is whole sum of all payments or current only? Parameter paymentTiming with value: 9.1 "immediate" - when does payment occur when the transaction is complete and sequent payments will occur only after merchant's actions? 9.2. "recurring" - what the different with "immediate"? 9.3. "deferred" - who and how will provide these payments in the future? 9.4. "automaticReload" - when should we use this value? (in description it's not clear) If merchant can't provide recurringPaymentStartDate and recurringPaymentEndDate can we leave them blank or not send? If merchant can't provide recurringPaymentIntervalCount can we leave them blank or not send? Could you describe the usecase with using deferredPaymentDate? Could you describe the usecase with using automaticReloadPaymentThresholdAmount? Is billingAgreement mandatory parameter? Can billingAgreement contain URL on agreement? Is managementURL mandatory parameter? What actions can user make on page via managementURL? And which cases are mandatory? Is tokenNotificationURL mandatory parameter? In which cases will we receive a request via tokenNotificationURL? What kind of params specification should be in tokenNotificationURL (names, lenth, type, mandatory)? dictionary ApplePayRecurringPaymentRequest {required DOMString paymentDescription; required ApplePayLineItem regularBilling; dictionary ApplePayLineItem Unknown macro: { ApplePayLineItemType type; DOMString label; DOMString amount; ApplePayPaymentTiming paymentTiming; Date recurringPaymentStartDate; ApplePayRecurringPaymentDateUnit recurringPaymentIntervalUnit; unsigned long recurringPaymentIntervalCount; Date recurringPaymentEndDate; Date deferredPaymentDate; DOMString automaticReloadPaymentThresholdAmount; }; ApplePayLineItem trialBilling; dictionary ApplePayLineItem; DOMString billingAgreement; required DOMString managementURL; DOMString tokenNotificationURL;};
0
0
591
Apr ’24
ios 17.4 - no option to make contactless app as default payment app in Setting for EEA region
Received required entitlements from apple and as per the below link ios should allow us make third party app as default contactless app in EEA region. But, Settings app only shows the toggle button to enable/disable Contactless capability. But, not an option to make an app as default contactless app. com.apple.developer.nfc.hce.default-contactless-app | Apple Developer Documentation Anyone has faced similar issue? Is above feature released or not, how can we confirm ?
2
0
675
Apr ’24
Questions Regarding Apple Pay Integration in Our App
We are in the process of integrating Apple Pay into our app and have some specific questions regarding the behavior of the payment sheet and token validity: PKPaymentToken Validity: How long is the PKPaymentToken valid? Does it expire if not used within a certain timeframe? Payment Sheet Behavior During Backend Processing: We are concerned about the potential for the Apple Pay payment sheet to time out while our backend is still processing the payment. How long will the payment sheet remain open before timing out? Is there a way to ensure it stays active until our processing is complete? Thank you in advance for any insights you can provide!
0
0
390
Apr ’24
Shopify iOS SDK Apple Pay CSR Error: CSR algorithm/size incorrect. Expected: RSA(2048)
Integrating Apple Pay for a Shopify Store via headless ecomm. Shopify on the backend/iOS + visionOS app on the front end. Shopify won't admit that they're at the wrong here BUT they are. The available CSR file from Shopify that you download is not using the encryption method Apple accepts, therefore you have to work some OpenSSL magic on your Mac terminal to create the correct encryption Apple Developer requires. Open Chat GPT 4.0 or later and type in the below, your issue is solved on that front. "I'm trying to upload a certificate signing request file to create a merchant identity certificate for Apple Pay. I'm getting the following error message from Apple, "CSR algorithm/size incorrect. Expected: RSA(2048)". What does this mean and how do I fix the CSR file? I've uploaded the CSR file for reference." My issue now is that Shopify gives me an error when attempting to upload the Merchant ID certificate from Apple Developer. Simply stating, "An error occurred while trying to save the certificate." Anyone else get this far and run into this issue? Thanks
0
0
580
Apr ’24
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
439
Apr ’24
In App Provisioning/Verification Issues
We are having issues with the In App Provisioning process, in particular during the last phase of the process, when the activationData, encryptedPassData, ephemeralPublicKey are passed to the PKAddPaymentPassRequest. We double-checked with our Issuer Host that activationData was required as plain string not encoded in Base64 in the previous version of PassKit, while now, as stated in the current Getting Started docs (9.5), all of the three objects are required in a Base64 format. Currently, even after encoding the activationData in Base64, we are still receiving an error after calling handler’s method with an PKPassKitError with code equals 2 and a localizedDescription of: “The operation couldn’t be completed”. To double check that there wasn't issues within our code, we also tried to add the same Card by manually add it through Apple Wallet application, but the same Alert error appear. Thanks for your support. Regards
0
0
515
Apr ’24