类型 'FundsVC' 不符合协议 'STPAddCardViewControllerDelegate' 在 Swift 而 "Stripe" 集成

Type 'FundsVC' does not conform to protocol 'STPAddCardViewControllerDelegate' in Swift while "Stripe" integration

我在我的应用程序中使用 "Stripe" 支付网关。为此我已经在 Stripe 帐户中注册并获得了 测试和密钥

我的代码是:

 import Stripe

 class FundsVC: UIViewController, STPAddCardViewControllerDelegate //here getting an error {

 @IBAction func stripePaymentBtn(_ sender: Any) {

    let config = STPPaymentConfiguration.shared()//here getting second error
    config.requiredBillingAddressFields = .full
    let viewController = STPAddCardViewController(configuration: config, theme: STPTheme.default())
    viewController.delegate = self
    let navigationController = UINavigationController(rootViewController: viewController)
    present(navigationController, animated: true, completion: nil)
    
}


//MARK:- STPAdd Card Controller Delegate
func addCardViewControllerDidCancel(_ addCardViewController: STPAddCardViewController) {
    dismiss(animated: true, completion: nil)
}

func addCardViewController(_ addCardViewController: STPAddCardViewController, didCreateToken token: STPToken, completion: @escaping STPErrorBlock) {
    
    dismiss(animated: true, completion: nil)

}
}

请帮忙

错误

'WithdrawFundsVC' does not conform to protocol 'STPAddCardViewControllerDelegate'

Cannot call value of non-function type 'STPPaymentConfiguration'

编辑

我已经更新了这样的代码:

func addCardViewControllerDidCancel(_ addCardViewController: STPAddCardViewController) {
    dismiss(animated: true, completion: nil)
 }

@objc
func addCardViewController(_ addCardViewController: STPAddCardViewController, didCreatePaymentMethod paymentMethod: STPPaymentMethod, completion: @escaping STPErrorBlock) {
    dismiss(animated: true, completion: nil)
}

o/p 这里的完成按钮为什么不能用?

您正在遵循旧的 stripe 实现教程,该教程与 stripe old pod 兼容,但您使用的是最新的 stripe 版本。 根据最新的 STPAddCardViewControllerDelegate 文档,您应该需要这两种方法来实现一致性

addCardViewControllerDidCancel(_:)
addCardViewController(_:didCreatePaymentMethod:completion:)

但您正在实施方法

addCardViewController(_:didCreateToken:completion:)

在最新版本中已弃用。 您需要根据新版本更改您的实施。如果您仍然想使用旧的实现,请在您的 pod 文件中将 pod 版本修复为 15.0.0。如果遇到任何错误而不是将 Pod 版本更改为 15.0.1.