如何添加新卡/来源以剥离客户帐户?

时间:2019-09-05 13:40:01

标签: ios swift stripe-payments

我正在使用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 ?

1 个答案:

答案 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