使用 Stripe,如何为多个客户附加从 Setup Intent API 创建的单一支付方式

Posted

技术标签:

【中文标题】使用 Stripe,如何为多个客户附加从 Setup Intent API 创建的单一支付方式【英文标题】:With Stripe, how to attach a single payment method created from Setup Intent API for multiple customers 【发布时间】:2021-09-24 14:58:18 【问题描述】:

使用 Stripe,如何为多个客户使用根据 setup intent 创建的付款方式?

根据Create Setup Intent API,它只允许我们定义一个客户ID。

参数名称:客户(可选)

此参数的说明: 成功设置后附加到客户。附上付款方式 此 SetupIntent 所属客户的此 SetupIntent.ID(如果存在)不能用于其他客户。如果存在,SetupIntent 的付款方式将是

TLDR

我想让同一个用户重复使用相同的支付方式来订阅不同呈现货币的项目,

我认为我应该通过直接为单个用户创建多个客户对象并使用 create Setup Intent API 为多个“客户对象”附加他/她的相同付款方式来解决此要求。

但是,我不确定这是否可行,因此我欢迎任何有关替代方法的建议,例如将付款方式附加到客户 API 或任何解决方法。


PS:详细信息(为什么我有兴趣问这个问题)

业务要求:

我的业务要求是客户必须订阅必须以不同的呈现货币呈现的国际服务。更难的是,每个客户将来都必须使用相同的已保存付款方式列表来订阅具有不同呈现货币的服务。换句话说,如果用户订阅了不同呈现货币的项目,则不必再次重新输入卡信息。

Stripe API 的限制:

    为什么不只使用单个客户对象来订阅具有多种呈现货币的服务(也称为“价格”对象)?

我试过了,结果出错了。根据这个Stripe documentation,确实是说每个客户只能用于单一货币的交易。 如果我的应用中的用户想与另一个订阅另一个服务 货币,我需要在 Stripe 中创建新的“客户”对象。

    为什么不直接使用/v1/payment_methods/:pm_id/attach api 将付款方式附加到多个客户对象?

因为根据这个Attact payment method to customer API doc,Stripe 不推荐,但我不完全理解不执行任何必要步骤的风险,因为它警告。因此,避免这种情况只是我规避风险的本能。

为了向客户附加新的 PaymentMethod 以供将来付款,我们 建议您使用 SetupIntent 或 PaymentIntent setup_future_usage。这些方法将执行任何必要的步骤 以确保 PaymentMethod 可以在以后的付款中使用。


【问题讨论】:

【参考方案1】:

不支持。一种支付方式不附加只能消费一次,附加给客户算消费。 PM 只能附加到单个客户,因此您需要收集每个客户的付款详细信息。

Stripe 建议使用该客户的货币进行所有演示,以优化他们的体验,尽管这可能不适合所有用例。

【讨论】:

以上是关于使用 Stripe,如何为多个客户附加从 Setup Intent API 创建的单一支付方式的主要内容,如果未能解决你的问题,请参考以下文章

Stripe——confirmCardPayment 后,如何将新卡附加给客户?

如何为 TLS 1.2 升级 Stripe

Stripe 支付网关如何为 WP 购物车工作?

Stripe 该客户没有附加付款来源

使用附加卡对客户进行条带化,但没有默认付款方式

如何为具有共享类型的多个 WCF 服务生成客户端代码