ios - 如何使用 Swift 从 STPPaymentMethodsViewController 获取付款令牌?
问题描述
我正在使用STPPaymentMethodsViewController
Stripe 付款。谁能帮助我如何从其委托方法中获取付款令牌?
let paymentMethodViewController = STPPaymentMethodsViewController(configuration: STPPaymentConfiguration.shared(),
theme: STPTheme.default(),
customerContext: self.customerContext,
delegate: self)
let navigationController = UINavigationController(rootViewController: paymentMethodViewController)
self.present(navigationController, animated: true, completion: nil)
那么如何使用其委托方法获取支付令牌,以便我可以将该令牌发送到我的服务器?
提前致谢 :)
解决方案
您将在didSelectPaymentMethod
委托函数中获得付款方式。请注意,这只是用户选择的当前方法,而不是最后一个方法——当您的didFinish
委托函数被调用时,他们的选择是最终的。您应该将付款方式保存didSelect
在本地变量中,并且仅在用户使用完 STPPaymentsMethodViewController 后才使用它。
作为一个非常粗略的大纲:
class MyVC: UIViewController{
var currentPaymentMethod: STPPaymentMethod?
....
extension MyVC: STPPaymentMethodsViewControllerDelegate {
...
func paymentMethodsViewController(_ paymentMethodsViewController: STPPaymentMethodsViewController, didSelect paymentMethod: STPPaymentMethod) {
print("didSelectPaymentMethod")
currentPaymentMethod = paymentMethod
}
func paymentMethodsViewControllerDidFinish(_ paymentMethodsViewController: STPPaymentMethodsViewController) {
self.navigationController?.popViewController(animated: true)
}
}
}
一旦您有了付款方式,并且您的用户完成了结帐流程并准备付款,您就可以转换 以获取条带 ID,然后您可以将其传递给您的后端并在创建费用STPPaymentMethod
时用作source
参数:
var paymentStripeId: String?
if let source = paymentMethod as? STPSource {
paymentStripeId = source.stripeID
}else if let card = paymentMethod as? STPCard {
paymentStripeId = card.stripeID
}
// pass paymentStripeId to your backend
推荐阅读
- php - 在实时服务器上创建图像共享文件夹并显示在本地服务器上
- c++ - 使用发布-订阅模式进行实际应用程序设计
- sas - 希望在不插入 SAS 的情况下扩展数据
- python - 用 2D ndarray 给出的值填充 3D ndarray 内方阵的对角线
- ios - 分段控件中的表格视图不会立即显示数据
- javascript - react-native app 已经启动,现在添加导航
- reactjs - 在本机反应中在哪里使用firebase onDisconnect
- python - 安装 dlib 以使用面部识别 [dlib 没有属性 - get_frontal_face_detector]
- node.js - 电子应用程序关闭时如何从 main 发送消息以进行渲染
- spring - 在 PermissionEvaluator 中设置自定义响应头