代码之家  ›  专栏  ›  技术社区  ›  vijju

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

  •  0
  • vijju  · 技术社区  · 7 年前

    每当用户在我的ios应用程序中单击add cards to wallet按钮时,我想显示apple wallet add cards页面。如何从iOS应用程序调用苹果钱包。我在我的iOS应用程序中启用了钱包功能,还为我的应用程序生成了钱包授权。如何使用pkaddpaymentpassviewcontroler和swift。请给我一些建议

    1 回复  |  直到 7 年前
        1
  •  3
  •   Scott Condron    7 年前

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

    对于发卡机构,您需要苹果公司发行的特殊授权。

    您的应用程序必须包含此授权才能使用此类。 有关申请此权利的详细信息,请参阅卡 developer.apple.com/apple pay/上的发行人部分。

    this answer 以下内容:

    PKAddPaymentPassViewController 需要 com.apple.developer.payment-pass-provisioning 权利 应用程序的密钥。坏消息是没有人可以提交应用程序 这项权利需要苹果公司的特别许可,我 相信是为银行等发卡机构预留的。如果你 相信你有资格直接联系苹果 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
      }
    
    }