类型 '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.
我在我的应用程序中使用 "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.