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/.
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).
My iPhone 6s detects my security systems RFID readers and I can authenticate my credit card in my apple wallet to it. The access gets denied because the token that is presented from Apple wallet changes each time I present to the reader.
Is there a way to make a pass/card in my Apple wallet to present the same ID each time it’s presented?
Also, bonus question, are we any closer to actually getting an Apple product to open a door like in the September event video?
Is there a way to make a pass/card in my Apple wallet to present the
same ID each time it’s presented?
Yes, NFC readers that can read Apple Wallet passes can read encrypted static data from the pass. This is possible with Google Pay passes too. At PassNinja, we are launching a product to help with reading and decrypting both Apple Wallet and Google Pay pass payloads.
Also, bonus question, are we any closer to actually getting an Apple
product to open a door like in the September event video?
Yes to this also. See this video for an example of a lock opened by an Apple Wallet pass.
Disclosure: I work for Flomio, the company behind PassNinja.
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.
I would be really helpful if anyone provides a solution to know, how do we add the credit/debit card details to Wallet from our App. I have the credit/debit card details for the user and when user tap on Apple Pay option in my App, the Add Card screen in Apple Wallet need to be opened with card data pre-populated. How do we achieve the same. Thanks in advance
The good news is that this can be done. What you are looking for is In-App Provisioning of Payment Cards. This is done using the PKAddPaymentPassViewController, which requires the com.apple.developer.payment-pass-provisioning entitlement key for your app. The bad news is that not anyone can submit apps with this entitlement as it requires special permission from Apple, which I believe is reserved for card issuers like banks and similar. If you believe that you qualify you need to contact Apple directly at apple-pay-inquiries#apple.com.
Apple only want to communicate with bank.#pajevic
Abreast of the times email address is: apple-pay-provisioning#apple.com
on the https://developer.apple.com/apple-pay/ we can find in Lower right corner
We tried to add credit, debit card details into Apple Pay from within our app.
The below are the things from apple doc.
Important 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 developer.apple.com/apple-pay/.
In sandbox environment we tried entitlement key , but we can't load payment card details.
We can add payment card iTunes manually. But can possible to add payment card in apple pay wallet programmatically.
Is't possible to mock the Testcard (payment card) like pkpass file?
No documentation available to mock the payment card in sandbox environment.
https://developer.apple.com/reference/passkit/pkaddpaymentpassviewcontroller?language=objc
Thanks in advance.
If I understand you correctly, you have the entitlement key in place (and I assume you have acquired the special permission from Apple). I am also assuming that you are using the PKAddPaymentPassViewController for the provisioning process. If all of this is correct then there are a few more things you need to keep in mind. First of all, you cannot test this using mock data or even test environments. You must use production data with real payment cards which can be confirmed by Apple Pay with the card issuer. Also, the app must be distributed with TestFlight in order for it to work, so you cannot run from Xcode directly.
Enabling In-App Provisioning of Payment Cards
Use this entitlement to enable the in-app provisioning of payment
cards. This entitlement allows you to initialize and present a PKAddPaymentPassViewController object.
In the entitlement’s file, add the com.apple.developer.payment-pass-provisioning key with a Boolean value of YES. You need special permission from Apple to submit apps with this key enabled. For more information, contact apple-pay-inquiries#apple.com.
https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/ApplePayandPassKitEntitlements/ApplePayandPassKitEntitlements.html