我正在使用stpaddcardviewcontroller UI元素要求客户输入新卡信息
let addCardViewController = STPAddCardViewController()
addCardViewController.delegate = self
present(navigationController, animated: true)
上面的代码将显示UI
,但是在点击“完成”按钮后,我需要获取令牌(根据添加的卡信息生成),以便向现有客户添加新卡/源。
我正在使用以下委托方法从stpaddcardviewcontroller
UI中获取令牌
extension viewController : STPAddCardViewControllerDelegate {
func addCardViewControllerDidCancel(_ addCardViewController: STPAddCardViewController) {
dismiss(animated: true)
}
func addCardViewController(_ addCardViewController: STPAddCardViewController, didCreatePaymentMethod paymentMethod: STPPaymentMethod, completion: @escaping STPErrorBlock) {
dismiss(animated: true)
}
如何通过委托方法接收卡令牌?这样我就可以传递给Add Card API ?
答案 0 :(得分:0)
您在didCreatePaymentMethod
委托中获得了PaymentMethod令牌。
Stripe-iOS(使用您的可发布密钥)无法自行更新客户。这里有2个选项:
1)将令牌发布到将使用Stripe API库(带有Stripe密钥)的后端服务器端点,并将PaymentMethod附加到Stripe客户:https://stripe.com/docs/api/payment_methods/attach
2)如果您在iOS应用上使用临时键,则可以将PaymentMethod附加到Stripe客户。 SDK会为您处理。 Stripe-iOS实际上也提供了预构建的UI来处理此问题,例如STPPaymentOptionsViewController。您需要在此处参考使用STPCustomerContext的“标准集成”指南:https://stripe.com/docs/mobile/ios/standard