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

时间:2018-07-13 07:08:04

标签: ios applepay wallet passkit

我正在尝试使用PKAddPaymentPassRequest向Wallet添加银行卡(“付款通行证”)。

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

2 个答案:

答案 0 :(得分:1)

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

在Swift中:

    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
        }
    }

在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
        }
    }

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

答案 1 :(得分:0)

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

在这里检查: https://developer.apple.com/documentation/passkit/pkpasslibrary/1617110-containspass