检查卡是否已添加到 PassKit 库中

And*_*yov 5 ios passkit applepay wallet

我正在尝试使用 PKAddPaymentPassRequest 将银行卡(“付款通行证”)添加到电子钱包。

所以问题是,如何查询通行证库以检查我的卡(或任何其他卡)是否已在库中?例如,要在我的应用程序中卡的 UI 上显示“Apple Pay 已启用”复选标记。

pak*_*aky 6

您可以创建一个 PKPassLibrary 并获取类型为“支付卡”的通行证的 PKPass 数组。然后循环遍历 PKPass 数组,检查其主帐户标识符或卡后缀以查看该卡是否已添加,然后相应地更改您的 UI。

在斯威夫特中:

let passLibrary = PKPassLibrary.init()
let paymentPasses = passLibrary.passes(of: .payment) // get PKPass array of payment card
for pass in paymentPasses {
    guard let paymentPass = pass.paymentPass else { return }
    // or check by suffix paymentPass.primaryAccountNumberSuffix
    if paymentPass.primaryAccountIdentifier == "yourCardAccountIdentifier" {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Objective-C 中:

PKPassLibrary *passLibrary = [[PKPassLibrary alloc] init];
NSArray<PKPass *> *paymentPasses = [passLibrary passesOfType:PKPassTypePayment];

for (PKPass *pass in paymentPasses) {
    PKPaymentPass * paymentPass = [pass paymentPass];
    if([paymentPass primaryAccountIdentifier] == @"yourCardAccountIdentifier") {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

并且不要忘记在您的项目中包含 com.apple.developer. payment-pass-provisioning 权利。希望这对您有帮助;)


mat*_*x87 1

根据文档 PKPassLibrary 有一个名为 containsPass() 的方法

检查此处: https ://developer.apple.com/documentation/passkit/pkpasslibrary/1617110-containspass