如何使用 stripe 添加资金不足的支付源?

How to add a payment source with insufficient funds using stripe?

我正在尝试测试用户卡中资金不足的场景。

按照 https://stripe.com/docs/testing 的文档 - 卡号 4000 0000 0000 0002 应该会产生这样的错误。 source 在 Stripe SDK 中被认为是 valid,它生成一个 source token,但是当调用他们的 create_source API 时,它返回一个 Request req_nGnzPdJHjw4lrk: Your card was declined. -消息,即使我还没有创建任何费用。

https://stripe.com/docs/saving-cards 处的文档指出:

Stripe validates card information when it is saved. This does not guarantee that any future charges succeed (e.g., the card no longer has sufficient funds, is reported lost or stolen, or if the account is closed). This process also includes the results of any checks, including traditional bank checks by Radar (e.g., CVC or postal code), that may have been performed.

所以我的问题是,当一张卡被 stripe 接受,但在捕获费用的那一刻没有足够的资金时,我该如何测试这种情况?

您可以使用 https://stripe.com/docs/testing#cards-responses 中的 4000000000000341 测试卡。此卡可以保存给客户,但当您尝试对其收费时,您会被拒绝。

请注意,您将收到的错误是一般性拒绝,而不是 insufficient_funds。如果您需要测试您的代码如何具体响应该错误代码,我建议您只模拟来自 Stripe API 的响应。一般来说,无论具体的拒绝原因如何,您的错误处理都会非常相似,因此 Stripe 不会为所有情况提供测试卡。

编辑 :自从我写这篇文章以来,Stripe 为这个特定案例添加了一个新的测试卡 4000000000009995 / tok_chargeDeclinedInsufficientFunds