我正在尝试测试用户卡资金不足的情况。
按照 https://stripe.com/docs/testing 的文档 - 卡号4000 0000 0000 0002
应该会产生这样的错误。源在 Stripe SDK 中被认为是valid
的,它会生成一个源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
。