Xcode Apple Pay - PKPaymentAuthorizationViewControllerDelegate 问题

Xcode Apple Pay - PKPaymentAuthorizationViewControllerDelegate issues

我正在尝试在我的应用程序中实施 Apple Pay。我什至在我的 ViewController.swift 文件中建立 PKPaymentAuthorizationViewControllerDelegate 时遇到问题。

大多数代码示例显示为:class ViewController: UITableViewController, PKPaymentAuthorizationViewControllerDelegate

这是我的代码:

class ApplePayVC: UIViewController, PKPaymentAuthorizationViewControllerDelegate {

那是因为您必须实现委托的一些功能。

请参阅 Apple 文档:https://developer.apple.com/library/prerelease/ios/documentation/PassKit/Reference/PKPaymentAuthorizationViewControllerDelegate_Ref/index.html

需要两个函数:

  • paymentAuthorizationViewController(_:didAuthorizePayment:completion:)
  • paymentAuthorizationViewControllerDidFinish(_:)

您必须覆盖它们,然后错误将从 Xcode

中消失

只需添加以下功能

    internal func paymentAuthorizationViewController(controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, completion: ((PKPaymentAuthorizationStatus) -> Void)) {
        completion(PKPaymentAuthorizationStatus.Success)
    }

    internal func paymentAuthorizationViewControllerDidFinish(controller: PKPaymentAuthorizationViewController) {
        controller.dismissViewControllerAnimated(true, completion: nil)
    }

像这样创建一个新的 .swift 文件

 import Foundation

 extension UIViewController: PKPaymentAuthorizationViewControllerDelegate {
    public func paymentAuthorizationViewController(controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, completion: ((PKPaymentAuthorizationStatus) -> Void)) {
        completion(PKPaymentAuthorizationStatus.Success)
    }

    public func paymentAuthorizationViewControllerDidFinish(controller: PKPaymentAuthorizationViewController) {
        controller.dismissViewControllerAnimated(true, completion: nil)
    }
  }