【问题标题】:Stripe Subscription with Payment Method带付款方式的条带订阅
【发布时间】:2020-01-16 16:07:49
【问题描述】:

我正在使用最新版本的 iOS Stripe SDK (1.27),其中 STPAddCardViewControllerDelegate 不再返回 STPToken,而是返回 PaymentMethod 对象。

func addCardViewController(_ addCardViewController: STPAddCardViewController, didCreatePaymentMethod paymentMethod: STPPaymentMethod, completion: @escaping STPErrorBlock) {
   dismiss(animated: true, completion: { [weak self] in
       // Send the paymentMethod.stripeId to my Server
   })
}

在服务器端,我验证了我系统上的用户是否已经有一个客户对象并相应地创建或更新客户,例如:

Customer::create(['email'=> email, 'payment_method' => payment_method_id])

但在尝试创建订阅后,使用以下代码:

Subscription::create(['customer' => customer, 'plan' => plan_id])

它返回以下错误:

此客户没有附加付款来源

注意:作为一种解决方法,我可以在生成 STPToken 并用作源时返回到以前版本的 iOS SDK(以这种方式工作)。但我想使用新的 PaymentMethod API。

  1. 有没有办法将 PaymentMethod 转换为令牌? (或者将 PaymentMethod.stripeId 发送到服务器是否正确)?

  2. 缺少什么?

【问题讨论】:

    标签: php swift stripe-payments


    【解决方案1】:

    希望对您有所帮助。我有同样的问题并解决了它。您可以使用此代码:

    Subscription::create([
      'customer' => $customer,
      'plan' => $plan_id,
      'default_payment_method' => $paymentMethodId
    ]);
    

    将此 PaymentMethod 用作发票或订阅的默认值 付款,在客户上设置 invoice_settings.default_payment_method 到 PaymentMethod 的 ID。

    Customer::create([
    'email'=> email,
    'payment_method' => $paymentMethodId
    'invoice_settings' => ['default_payment_method' => $paymentMethodId]
    ])
    

    【讨论】:

    • 感谢@Spawnrad 的回复。我会测试并告诉你。
    • 如何获得 $paymentMethodId 值? STPPaymentMethod 没有这个属性。
    • @elbertrivas 嗨,埃尔伯特,您如何获得付款方式 ID:stripe.com/docs/api/payment_methods/object 对我来说,在我的表格中提交卡号后,我就知道了。当我添加卡或付款时。希望对你有帮助。
    • 您使用的是 Stripe 预建卡控制器吗?就我而言,我使用的是 STPPaymentCardTextField。
    • 没关系,我能够解决它。无论如何,谢谢。
    猜你喜欢
    • 2022-08-12
    • 2021-12-30
    • 2020-07-06
    • 1970-01-01
    • 2021-05-10
    • 2021-10-12
    • 1970-01-01
    • 2021-08-19
    • 2023-03-28
    相关资源
    最近更新 更多