Greetings,
Some background:
We have a setup where we have more than 100 domains where we want to enable ApplePay. At the moment we use normal web merchants and are able to support only 99domains, but are moving towards the registerMerchant API ( https://developer.apple.com/documentation/applepaywebmerchantregistrationapi/registermerchantrequest) so that we can create multiple internal merchant IDs to support more than a 100 domains.
One more important thing to note here is that we have 2 merchants for web, Merchant A and merchant B, and they are linked to different payment gateways and we need to support both due to some business logic.
So theoretically, if we have 140 domains, we want to register all 140 of these under both web merchants (A & B). Since each merchant can support 99, we plan on distributing the 140 domains across the merchant by using the registerMerchant API where we'll be creating internal merchant identifiers, for example, Merchant.A.1, Merchant.A.2, Merchant.B.1, and Merchant.B.2. Thus, we will be able to support all 140 domains on both.
While setting up, we noticed that we got a txt file for merchant A and B. We placed the txt file under the .wellknown path for merchant A and used the registerMerchant API to add a domain under merchant.A.1 and it worked. A few questions around this:
When we try to register the same domain under Merchant B, it works too even though the txt file is missing there for Merchant B. is this because domains are verified on an account level and not merchant level? And can we rely on this behaviour to always work? Can we say that registering all our 140 domains with merchant A, would ensure that when we try to verify them under Merchant B, it'll automatically work ( ofcourse we need to call the registerMerchant API,I am trying to understand the actual verification process)
When these domains are near expiration, the current re-verification process calls the same path to re-verify the domain. When using multiple merchants, which merchant txt file would be expected? Both? or just the original one?
Please let me know if there are any better ways of doing what we are trying to achieve and if they are documented anywhere.
Thank you!
Apple Pay
RSS for tagDiscuss how to integrate Apple Pay into your app for secure and convenient payments.
Post
Replies
Boosts
Views
Activity
Hello,
I'm trying to build a wallet UI extension for card push provisioning of Apple Pay.
I try to add a user authentication step to the wallet app extension. I went through the documentations and app demo, but all the guidelines are based on swift UI, while I want to reuse the code from my Angular containing app (html, css, typescript) compiled to iOS native app with capacitor.
Does anyone have any experience how this can be done? Do I need to separate the authentication logic in my Angular project and compile it to a separate iOS native app using capacitor?
Thank you in advance.
In our testing, we found that Apple Wallet Express Transit card is not being disabled when the default contactless app has been changed to a third party contactless payment app.
In this case, even if the user has changed his default setting, he has to disable his Express Transit card in Apple Pay settings as well. This leads to frictions in the consumer journey: Consumers tapping their card on an express terminal, expecting to pay their transit through the 3rd party app, will end up paying through Apple Pay.
Will Apple provide a fix for this in a subsequent iOS version and disable Express Transit together with the change of default app?
https://developer.apple.com/documentation/appstoreservernotifications/app_store_server_notifications_version_1
It says that v1 is deprecated, but we have a lot of servers use v1, and we have to no time to update server code to move v1 to v2. So my question is, even v1 is deprecate, but if we don't need the new notification types in v2, can we still receive v1 notifications? cuz I can't find anywhere says when v1 will stop sending.
Hello,
I am seeking help to use AMEX cards provided in https://developer.apple.com/apple-pay/sandbox-testing/ and add them to apple pay/wallet and have them authorised to be used in app with the sandbox account that I am using, can you help?
Issue detailed:
It seems that the AMEX cards that are provided in the sandbox link can only be added to the SANDBOX account wallet and shortly after they get removed form it then marked as Unavailable after an attempt to get authorised
Please see screenshots of adding a AMEX card, Added & then Activating and after unavailable
All these cards have the same issue and are Amex the last on the list you can see in the first picture is saying activation and in the picture under Unavailable.
Pre-Conditions to set account and wallet & reproduce
Should have a SandBox account
The Sandbox users is set in US
The region of the device is set to US
The card that is attempted to be added is AMEX from the provided list
iOS versions 17.4.1 to 17.6 version possibly earlier too
Device iPhone 11 and others
Steps to reproduce:
Open wallet
Tap on Add Card
Add the Required test data Name/Card/ Date and CID
Tap on Agree & wait
Then Card is added
Wait for the process and for the card to be activated
Actual Result
1.The card is never shown as activated instead its marked as Unavailable
2. Amex Cant be added as a Default card assuming because its marked as Unavailable
Expected Result
The Amex card can be added and activated for use
Set as default should possibly not be a problem
Extra: if the user is using AMEX card from previous cards that are saved the card can get stuck on Activating.
Hello everyone,
**I created a certificat using openssl using the steps below **
Generate a Certificate Signing Request (ecccertreq.csr)
Generate key pair in a key file
Code
openssl ecparam -genkey -name prime256v1 -out ecckey.key
Generate CSR from key pair in key file
Code
openssl req -new -sha256 -key ecckey.key -out ecccertreq.csr -subj '/O=Nahdi Merchant Identity'
Upload the Payment Processing Certificate CSR
Download the Apple signed Payment Processing Certificate
The certificate file (apple_pay.cer) appears in my Downloads folder
Generate the .p12 file (ecckeystore.p12)
Convert apple_pay.cer to PEM
Code
openssl x509 -inform DER -in apple_pay.cer -out apple_pay.pem
Import merchant certificate and private key to generate .p12
Code
openssl pkcs12 -export -out ecckeystore.p12 -inkey ecckey.key -in apple_pay.pem
But I am getting this error when testing using the curl_test.php file and also when trying to make a payment on our website, we already have a working certificat for another merchant id and we don't get the same error
Verbose info:
cURL Error
56 - OpenSSL SSL_read: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca, errno 0
Verbose information
* Trying 17.141.128.71:443...
* TCP_NODELAY set
* Connected to apple-pay-gateway.apple.com (17.141.128.71) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: businessCategory=Private Organization; jurisdictionC=US; jurisdictionST=California; serialNumber=C0806592; C=US; ST=California; L=Cupertino; O=Apple Inc.; CN=apple-pay-gateway.apple.com
* start date: Jul 24 19:05:42 2024 GMT
* expire date: Oct 22 19:15:42 2024 GMT
* subjectAltName: host "apple-pay-gateway.apple.com" matched cert's "apple-pay-gateway.apple.com"
* issuer: C=US; O=Apple Inc.; CN=Apple Public EV Server RSA CA 1 - G1
* SSL certificate verify ok.
> POST /paymentservices/paymentSession HTTP/1.1
Host: apple-pay-gateway.apple.com
Accept: */*
Content-Length: 131
Content-Type: application/x-www-form-urlencoded
* upload completely sent off: 131 out of 131 bytes
* OpenSSL SSL_read: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca, errno 0
* Closing connection 0
code-block
We are essentially implementing a membership card feature wherein the card details originates from a third-party provider and gets stored in the Apple Wallet. We are utilizing the Passkit Generator ( https://www.npmjs.com/package/passkit-generator ) for this purpose.
The challenge, or rather issue, is that when this card is saved to Apple Wallet and tapped on the NFC reader, it only shows "Invalid Card."
When we attempted to gather information from the third-party provider regarding this issue on both Android and iOS, they stated:
"For IOS we do not have any experience to share with, rather than the fact we have implemented the VAS protocol under an NDA signed with Apple.
Related to Passkit we do not have any experience with it."
We require your assistance to identify any potential issues.
please can i get testflight code?
Dear Apple developers,
I am seeking for an answer to the following question regarding Apple Pay In-App Provisioning:
My company (which is a financial institution) is currently implementing the Manual Provisioning for the bank cards issued by the company. Now the question is, will the In-App provisioning be required to be implemented in a timely manner? Will the bank app be removed from App Store if In-App is not available within X days once Manual is made live?
Thanks all!
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?
Dear Team,
We are facing an issue while development of Apple Pay UIWallet Extension.
Kindly let us know below points to make it easy integration or development of apple pay wallet UIextension.
What are the steps to open / recognise wallet to open NonUI Extension or UIExtension.
Is there any dependancy on PNO data.
Once Dynamic card details fetched from service is it Manual provision or Backend service need to be integrate.
Thanks in Advance,
Rajesh Addanki.
I'm 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. I don't know any problem of the country.
Hi,
I understand that it's possible to add a virtual debit or credit card from a mobile app into the iOS Wallet using PassKit from the Apple SDK. However, I haven't come across documentation on how to achieve this directly from a web app. I found this article on Apple's support site (https://support.apple.com/en-gb/guide/security/secdc2567239/web), which mentions adding cards from a card issuer’s website, but it doesn’t provide details on the process.
Could you please confirm if it's possible to add a card directly from a web app without using a mobile app? If so, could you guide me to the relevant documentation?
Thanks in advance!
I am using a sandbox account and I set the United States in the region column (Settings>General>Language & Region>Region to the US). I added test cards like (American Express and Visa) and the cards were added successfully. But I am trying to pay then I get an error like "Payment Not Completed".
Note: I am trying from India.
I am using a sandbox account and I set the United States in the region column (Settings>General>Language & Region>Region to the US). I added test cards like (American Express and Visa) and the cards were added successfully. But I am trying to pay then I get an error like "Payment Not Completed".
Note: I am trying from India.
I would like to understand what solution there is for accepting ApplePay within Hotel Front-Desk check-ins, that would allow a Hotel to use the stored ApplePay token from the Apple Device, to hold on account for room breakages, in-room services, items added to room account etc. To then be able to use the Apple Token for processing unscheduled Merchant Initiated Transactions (MITs). Is this possible today in that environment, where the consumer wants to tap their phone to pay at the front desk and use that Apple Device Token against their room account as opposed to having to present a physical credit card? I know for Ecommerce there is the MPAN now for scheduled/unscheduled payments, but what about for when the consumer/customer checks in to the Hotel at the physical location and wishes to use ApplePay to tap on the card terminal/reader? Thanks, Steve
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();
}
Hi there! My app supports one language by default Ukrainian (uk) and does not support multiple languages. In Xcode settings "Development Language" is set to Ukrainian by default also. I have a PKAddPassButton on a ViewController and "Add to Apple Wallet" always appears in Ukrainian (Tested on real device iOS 15/16/17). Apple's "Getting Started with Apple Pay: In-App Provisioning, Verification, Security, and Wallet Extensions” document states that "The Add to Apple Wallet button adapts to the device language and the light and dark appearances, but the issuer app needs to adapt the language of the row selector text." When I change device language to French the “Add to Apple Wallet” button does not change to French. I created a fresh swift app, added PKAddPassButton the "Add to Apple Wallet" button, General -> Language & Region changed the device language to French, etc, but the "Add to Apple Wallet" button is always in English. Has anyone run into the same issue? How to adapt the "Add to Apple Wallet" button to the device system language?
After logging into Apple Wallet and clicking the "+" button to add a card, if the "debit/credit card" option is selected, a list of banks appears.
**
When I select my bank's name from the list, I want the icon of the bank's mobile application to be displayed, just like in Revolut. **
**When the icon is clicked, I want to redirect the user to the application or the App Store version of the application. **
How can I set this up and where can I do it?
Has anyone experienced this before?
I am implementing apple wallet extension. As part of it I have developed UI and Non-UI extension. I have implemented status , pass entries and remote pass entries method to return as per apple standard. My problem is pass entries is showing correct list of cards/passes as it is able to match against phone wallet. But remote pass entries method is not able to access watch app/watch wallet to match the existing passes. Any help is appreciated. When we print passlibrary count it displays the count matching phone wallet. But it ignores watch wallet passes which belongs to our app.