我想确保客户输入的卡实际上是有效的卡。Stripe.js 只验证其格式,不要求发卡机构授权。但似乎 Stripe 要求您创建客户来授权卡,但这有点愚蠢,因为逻辑流程应该是这样的:
- 通过条带.js验证表单输入,并在格式有效时获取令牌
- 通过后端 API(PHP/Ruby 等)授权令牌
- 如果获得授权,使用令牌创建卡+客户,添加订阅/向客户收费
- 如果未授权,请返回带有相应错误的表单,并且不要创建客户/费用。
你如何在 Stripe 中实现这一点?是否有可以使用专用StripeCard::authorize($token)
方法或类似方法?
当您将卡保存给客户时,Stripe 会对该卡进行 $0/$1 的授权。您可以在创建客户时传递卡,并且只有在授权成功时才会创建客户。此外,您可以在创建客户时指定计划和卡,仅当卡有效并且订阅的第一个期间的费用通过时,才会创建客户和订阅。
下面介绍了您描述的场景:https://stripe.com/docs/charges#auth-and-capture
API 在这里(也可以在 php/java/go/node/curl 中找到)https://stripe.com/docs/api/ruby#create_charge