we are trying to add interac as an acceptable payment method for apple pay, but when ever we open the apple pay sheet : it says not accepted and is disabled for selection.
we verified before opening the sheet the accepted payment in array and it had the below reference
static let interac: PKPaymentNetwork
any idea what are we missing?
Checked the array of paymentTypes to ensure static let interac: PKPaymentNetwork is available
Related
I need to hide the add to Apple Wallet button when the user has added their card to the iPhone but keep it on screen when it has been added to the watch only. I am investigating the method
func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, didFinishAdding pass: PKPaymentPass?, error: Error?)
But I can't find where I can see what device the card has been added to
You can use PKLibrary's passes() function to get the cards that are in the user’s iPhone wallet and then check if the card in question is there. To get the cards in the watch's wallet, use remotePaymentPasses().
Note that your app has to be entitled to view the card in question, otherwise it will be absent from the returned array. I haven't been able to find much documentation on this so I opened a TSI with Apple to try and get some more information. Someone from the Apple Pay Wallet team got back to me, here's what they said:
If the app is entitled to view the card it can query it through PKPassLibrary - either using [PKPassLibrary -passesOfType] for cards locally on the device, or [PKPassLibrary -remotePaymentPasses] for cards on paired watches.
We recommend apps use these methods to check if their payment passes are already on the device, and use that info to hide the add to Wallet button.
Note, this does require the app to be entitled to view the payment pass. This is normally handled by the issuer, so double check with the issuer that they’re setting the associated app IDs of the payment pass to the app.
Still doesn't totally answer all of my questions, but I would recommend reaching out to the card issuer (that's the next step that I'll be taking).
This app is in the store from 2015 and never have problem with apple pay.
Recently i made an update and submit the app to the store but it was Rejected, this is the information reported in the review:
Your app uses Apple Pay as a purchasing mechanism but does not use Apple Pay branding and user interface elements appropriately as described in the Apple Pay Human Interface Guidelines.
Specifically, your Apple Pay sheet does not include the following:
Product description and specifications
payee name
This is the screenshot of my Apple Pay sheet
what does it mean "Product description and specifications"? do I have to add all the products purchased? I never see the products in apple pay sheet..
also i read this https://developer.apple.com/design/human-interface-guidelines/apple-pay/overview/checkout-and-payment/ and there isn't any reference to products
The total line should include your payee name, as per the guidelines;
Provide a business name after the word PAY on the same line as the total. Use the same business name people will see when they look for the charge on their bank or credit card statement. This provides reassurance that payment is going to the right place. For example: PAY [COMPANY_NAME].
You can see more examples on Apple's site - Note how it says "PAY THE NORTH FACE" and "PAY DOORDASH".
The guidelines don't say anything about product description and specifications, but you should include lines for the subtotal and VAT if applicable.
I would fix this and resubmit. If Apple still has a problem with product description, I would request more information from them.
You can add the payee name like this
paymentRequest.paymentSummaryItems = [PKPaymentSummaryItem(label: "Payee name", amount: 0)]
I have a task to add a bank card to apple wallet, I know that me need to get permission from Apple for this. Tell me, what data does the map need that to be added to the apple wallet? Number, cvc, name of the holder ...?
And I'm trying to create a PKAddPaymentPassViewController object:
[[PKAddPaymentPassViewController alloc] initWithRequestConfiguration: passDetails delegate: self]
The object always returns nill, in this case
[PKAddPaymentPassViewController canAddPaymentPass]
Returns YES. I understand that this object will nill until Apple allows to add cards to Apple Wallet?
I know that me need to get permission from Apple for this
&
I understand that this object will nill until Apple allows to add
cards to Apple Wallet?
Yes, you're correct.
Adding payment passes requires a special entitlement issued by Apple.
Your app must include this entitlement before this class can be
instantiated. For more information on requesting this entitlement, see
the Card Issuers section at https://developer.apple.com/apple-pay/.
I've integrated Braintree in iOS, paypal and credit card work like a charm. I tried implementing apple pay ( added a merchant id , created an apple pay certificate etc) and can see the apple pay options.
When selecting Apple pay, the braintree result i get back as a response doesnt contain the paymentMethod member and subsequently i cant get a nonce as the nonce is a member of that in turn.
Anyone else stuck here as well? Cant find any documentation on this. The device seems to be able to perform payments.
PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [PKPaymentNetwork.visa, PKPaymentNetwork.masterCard, PKPaymentNetwork.amex]); //returns true
P.S: Using BTDropInController though it shouldnt make any difference.
P.S.2: This happens both on a simulator and a device
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
Per the developer docs, this is expected behavior. Selecting Apple Pay as the payment method in the Drop-in UI does not display the Apple Pay sheet or create a nonce – you will still need to do that at the appropriate time in your app. Use BTApplePayClient to tokenize the customer's Apple Pay information. For more information, check out Braintree's Apple Pay Guide.
In my app the users should have input all the info above before they came to the Apple Pay button, so I will just get the data from the data manager and pre-populate the sheet.
I know it's not kinda the right way to implement Apple Pay but this will just be a quick implementation of Apple Pay and the UI will be improved in a future release.
So just wondering can we disable Email, Phone and Address editing in the Apple Pay sheet.
Thank you!
If you already have the shipping information why are you requesting it in the Apple Pay sheet at all? Simply have your PKPaymentRequest not request it. There is no way to make the fields in the Apple Pay sheet read-only, so that is probably your best workaround.