我正在遵循本指南(https://mikesabat.wordpress.com/2013/12/15/making-users-pay-building-a-site-with-strip-and-devise/),除了将条带库更改为v2而不是v1之外,不做任何修改。
基本上,我的问题是 stripe_card_token 字段保存以 tok_BLAHBLAHBLAH 开头的值,而在Stripe仪表板中,每个客户都有一个像cus_BLAHBLAHBLAH这样的标记。
我的javascript返回条带标记并填入隐藏字段:
handleStripeResponse: (status, response) ->
if status == 200
console.log(response);
$('#user_stripe_card_token').val(response.id)
$('#new_user')[0].submit()
else
$('#stripe_error').text(response.error.message)
$('#stripe_error').show()
$('input[type=submit]').attr('disabled', false)
答案 0 :(得分:3)
这些令牌实际上是两个不同的东西 - tok_XXX
值是一次性卡令牌,cus_XXX
值是客户ID。
用户在表单中输入信用卡信息后,Stripe会通过javascript返回卡片令牌,然后您将该令牌提交到服务器端代码。
一旦您的服务器端代码收到卡令牌,您就会从服务器(不是来自Javascript)向Stripe提交Stripe API“创建客户”调用。此API调用将卡令牌作为输入,并返回永久客户ID作为响应(以及其他内容)。
客户ID是您将在数据库中保存的值,当您需要向客户的信用卡收费时,您会将其发送给Stripe。
有关详细信息,请参阅Create Customer API call。