我正在尝试使用PKAddPaymentPassRequest向Wallet添加银行卡(“付款通行证”)。
所以问题是,如何查询通行证库以检查我的卡(或任何其他卡)是否已在库中? 例如,要在我的应用中卡的UI上显示“启用Apple Pay”复选标记。
答案 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