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

时间:2018-06-27 10:45:29

标签: ios swift wallet passkit

我想在用户单击我的ios应用程序中的“向钱包添加卡”按钮时显示“苹果钱包添加卡”页面。如何从ios应用程序调用苹果钱包。我在ios应用程序中启用了钱包功能,还生成了我的应用程序的钱包授权。如何使用swift使用PKAddPaymentPassViewControler。请给一些想法

1 个答案:

答案 0 :(得分:3)

注意:这仅适用于发卡机构。如果要重定向用户以添加付款方式,请使用openPaymentSetup方法。 See my answer here for more details.

对于发卡行,您需要Apple发行的特殊权利。

  

您的应用必须包含此权利,然后才能使用此类。   有关请求此权利的更多信息,请参阅卡   发行人部分,网址为developer.apple.com/apple-pay/。

来自this answer

  

PKAddPaymentPassViewController需要com.apple.developer.payment-pass-provisioning权利   您的应用程序的密钥。坏消息是,没有人可以通过以下方式提交应用   此权利需要苹果的特殊许可,我   believe保留给银行等类似的发卡行。如果你   相信您有资格直接与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
  }

}