Stripe payments 条带-使用PaymentMethod而不是Source(令牌)与客户创建订阅

Stripe payments 条带-使用PaymentMethod而不是Source(令牌)与客户创建订阅,stripe-payments,Stripe Payments,我正在集成到我们的工作流中,但是当使用付款方法创建订阅时,而不是使用来源创建订阅时,我收到错误此客户没有附加的付款来源 如果我在浏览器中调用createToken()并将其附加到source字段中的客户,它就会工作 我们集成了一次性支付,使用新的带有SCA的文档,这些文档使用createPaymentMethod()而不是createToken(),因此我们的客户使用paymentMethod而不是源代码保存,如下所述: curlhttps://api.stripe.com/v1/custom

我正在集成到我们的工作流中,但是当使用付款方法创建订阅时,而不是使用来源创建订阅时,我收到错误
此客户没有附加的付款来源

如果我在浏览器中调用
createToken()
并将其附加到
source
字段中的客户,它就会工作

我们集成了一次性支付,使用新的带有SCA的文档,这些文档使用
createPaymentMethod()
而不是
createToken()
,因此我们的客户使用
paymentMethod
而不是
源代码
保存,如下所述:

curlhttps://api.stripe.com/v1/customers \
-密钥测试密钥令牌\
-d付款方法=“{{payment\u method\u ID}”
此外,在中,它表示将
createToken()
替换为
createPaymentMethod()

在这方面,我看到了以下情况:

创建订阅并注销客户的会话的步骤 首次付款时,您需要:

1) 使用
CreatePaymentMethod
收集付款信息

2) 使用您创建的
PaymentMethod
的ID创建客户

3) 创建订阅

4) 对于身份验证失败,使用
handleCardSetup
设置错误处理;对于授权失败,使用
handleCardPayment
设置错误处理

我遵循这些步骤。我不会创建
SetupIntent
(就像我不会在一次性付款中创建它一样,在这些情况下它会工作),并且在尝试创建订阅时会收到我之前说过的错误

是否可以使用
paymentMethod
而不是
source
与客户创建订阅?


(我们使用使用
paymentMethod
创建的客户重复使用卡进行一次性付款,因此能够重复使用同一客户/卡进行订阅非常重要,而不需要用户在条带元素中输入数据或任何类似的内容,因为这会中断我们重复使用卡的流程)

我能够通过将付款方式包括在现场来解决这个问题

该字段描述如下:

订阅的默认付款方式的ID。它一定属于我 发送给与订阅关联的客户。如果未设置,则显示发票 将使用客户发票中的默认付款方式 设置

因此,我假设它将使用未定义时与客户关联的付款方式。这似乎没有发生,很难,所以我需要明确地传递它(这是一个Stripe错误吗?或者使用
paymentMethod
创建客户不会使其成为客户发票设置中的默认付款方式?我将联系Stripe以确保)

更新(2019-09-23)

我联系Stripe询问这是否是一个bug,他们回答:

[…]尽管如此,这对我们来说并不是一个错误,而是一个错误 预期的行为

如果您希望使用要添加到 默认情况下,用于订阅或发票的客户对象 创建时不指定默认的付款方式 订阅,然后您需要附加付款方式和 指定发票\设置。默认\付款\方法参数 更新客户。这些信息可以在我们的API中找到 此处参考:

更新时要使用的参数可以在customer上找到 对象本身,此处:

这也可以在创建客户时指定,可以看到 在这里:

指定此参数将指示正在添加的卡 将是订阅和发票的默认值,以便 默认的支付方法不需要在 订阅,或发票,创建