Issuer Extension - Apple Wallet

I am working on Issuer Extension using which user can add debit/ credit card through wallet directly. This is Extension based (Non and UI Extension. I am nearly implemented this however have doubts about PKIssuerProvisioningExtensionHandler methods which are below

open func status(completion: @escaping (PKIssuerProvisioningExtensionStatus) -> Void)

 open func passEntries(completion: @escaping ([PKIssuerProvisioningExtensionPassEntry]) -> Void)

open func generateAddPaymentPassRequestForPassEntryWithIdentifier(_ identifier: String, configuration: PKAddPaymentPassRequestConfiguration, certificateChain certificates: [Data], nonce: Data, nonceSignature: Data, completionHandler completion: @escaping (PKAddPaymentPassRequest?) -> Void)

My query is what is the significance of configuration in last callback.

Can anyone please help with this. Thanks in advance

Replies

Hello, did you manage to implement this? Because Im stuck right now on the part, where issuer app is not showing on the wallet, even thought I've added extension and all the required entitlements have been granted.

  • Hello, Can someone help me to implement this?

  • Did you have to sign a contract with apple to obtain the entitlement? Thanks

  • Yes we already did that. Also able to add card through issuer app on the wallet. Stuck with extension implementation. Can you please guide me for the same?

Hello, Can you please help me to implement this?

I am also looking for significance of "configuration" in below callback method of PKIssuerProvisioningExtensionHandler open func generateAddPaymentPassRequestForPassEntryWithIdentifier(_ identifier: String, configuration: PKAddPaymentPassRequestConfiguration, certificateChain certificates: [Data], nonce: Data, nonceSignature: Data, completionHandler completion: @escaping (PKAddPaymentPassRequest?) -> Void)

Where this can be use while addPaymentPassRequest ?

  • My guess is that configuration can be used by the issuer to execute anti-fraud measures based on primaryAccountIdentifier, cardholderName, etc.

Add a Comment

Any of you where able to implement the passEntries(completion: @escaping ([PKIssuerProvisioningExtensionPassEntry]) -> Void)? Because I cannot initialize an object of the class PKIssuerProvisioningExtensionPassEntry, it has all its attributes as read-only and it has no initializer so I'm not able to create the array of PKIssuerProvisioningExtensionPassEntry to pass it through the completion handler.

About your issue, did you try launching your app to Testflight to test because Apple Pay In-App Provisioning entitlement com.apple.developer.payment-pass-provisioning only works with distribution provisioning profiles, which means that even after you obtain it, the only way to test the end-to-end push provisioning flow is by first distributing the app via TestFlight or the App Store.

  • Hi, I am stuck at the same where I am unable to initialize PKIssuerProvisioningExtensionPassEntry as no init method and properties are read only. Thought I found a way like public class ExtentionPassEntryHandler : PKIssuerProvisioningExtensionPaymentPassEntry - you can create a subclass of PKIssuerProvisioningExtensionPaymentPassEntry which has an initializer method but after that I am unable to go ahead.

    did you find any solution for this.? Apple in-app provisioning doc has no detail info.

Add a Comment