如何使用swift从ios应用程序调用苹果钱包

vij*_*jju 2 ios passkit swift wallet

我想在用户单击我的 ios 应用程序中的将卡片添加到钱包按钮时显示苹果钱包添加卡片页面。如何从ios应用调用苹果钱包。我在我的 ios 应用程序中启用了钱包功能,并为我的应用程序生成了钱包权限。如何使用 Swift 使用 PKAddPaymentPassViewControler。请给出一些想法

Sco*_*ron 5

注意:这仅适用于发卡机构。如果要重定向用户以添加付款方式,请使用openPaymentSetup方法。有关更多详细信息,请在此处查看我的答案。

对于发卡机构,您需要 Apple 颁发的特殊权利。

在您可以使用此类之前,您的应用程序必须包含此权利。有关申请此权利的更多信息,请参阅 developer.apple.com/apple-pay/ 上的发卡机构部分。

这个答案

PKAddPaymentPassViewController需要com.apple.developer.payment-pass-provisioning您的应用程序的授权密钥。坏消息是,不是任何人都可以提交具有此权利的应用程序,因为它需要 Apple 的特别许可,我认为这是为银行等发卡机构保留的。如果您认为自己符合条件,则需要直接联系 Apple apple-pay-inquiries@apple.com

您需要实现委托方法,并使用配置对其进行初始化。

import UIKit
import PassKit

class ViewController: UIViewController, PKAddPaymentPassViewControllerDelegate {

  override func viewDidLoad() {
    super.viewDidLoad()
    if (!PKAddPaymentPassViewController.canAddPaymentPass()){
      // use other payment method / alert user
    }
    let config = PKAddPaymentPassRequestConfiguration.init(encryptionScheme: PKEncryptionScheme.ECC_V2)
    let addPaymentPassVC = PKAddPaymentPassViewController.init(requestConfiguration: config!, delegate: self)
    self.present(addPaymentPassVC!, animated: true, completion: nil)
  }

  func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, generateRequestWithCertificateChain certificates: [Data], nonce: Data, nonceSignature: Data, completionHandler handler: @escaping (PKAddPaymentPassRequest) -> Void) {

  }

  func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, didFinishAdding pass: PKPaymentPass?, error: Error?) {
    // pass added
  }

}
Run Code Online (Sandbox Code Playgroud)