我对Stripe有一个奇怪的问题(在Rails上,但Rails部分可能无关紧要)。
当我在 production 中使用语法上有效但非工作的卡号填写我的注册表单时(例如4242424242424242),当我尝试创建令牌时,我收到此响应:
sjsonp1389885476573({
"error": {
"message": "Your card was declined.",
"type": "card_error",
"code": "card_declined"
}
}
, 402)
在开发时,我使用“始终返回card_declined
”卡号(4000000000000002),Stripe将其视为非常好:
sjsonp1389885473743({
"id": "tok_3JvncLYlEZ5NMF",
"livemode": false,
"created": 1389885584,
"used": false,
"object": "token",
"type": "card",
"card": {
"id": "card_3Jvnr4MtIxzzd5",
"object": "card",
"last4": "0002",
"type": "Visa",
"exp_month": 2,
"exp_year": 2020,
"fingerprint": "dWQBpXrSXnyqoOxe",
"customer": null,
"country": "US",
"name": null,
"address_line1": null,
"address_line2": null,
"address_city": null,
"address_state": null,
"address_zip": null,
"address_country": null,
"address_line1_check": null,
"address_zip_check": null,
"cvc_check": null
}
}
, 200)
所以看起来Stripe API的这一部分不起作用as advertised或者我自己也犯了某种愚蠢的错误或其他什么。
我有点不知所措。有什么想法吗?
答案 0 :(得分:7)
我无法证明以下内容的准确性,但这是我理解中最好的。如果你更了解,请随意让我直截了当。
用户创建帐户时会发生两个步骤:
在条纹测试模式下,我了解通过Luhn检查的所有数字都将成功标记,包括Stripe的特殊测试数字。 (正确)故障发生的地方是服务器端帐户创建发生的时间。
在条纹实时模式下,我了解通过Luhn检查的所有数字都将成功标记为除了Stripe的测试数字。 Stripe会拒绝这些数字,因为它们是Stripe的测试数字。
所以我能想到的最好的解决方案是告诉客户端Stripe的测试编号将始终在生产中无声地失败,我们的选择是a)使用它或b)编写代码将专门捕获Stripe测试数字,并在使用这些数字时出现生产错误。