我开始使用Stripe的自定义表单开发我们订阅网站的付款系统:https://stripe.com/docs/custom-form。我有开发网站工作,当有人选择订阅时,它弹出一个表单来收集信用卡数据,数据被提交给Stripe,条带发回一个令牌。
在"后续步骤"在底部,它似乎表明我可以使用此令牌来签署用户订阅。但是,subscription page并未显示在创建订阅时如何使用该令牌。从该页面看,创建订阅时,Stripe将创建发票并通过电子邮件发送给用户。
我真的很想直接在网站上处理第一笔付款,而不是在电子邮件流中丢失用户。我认为可以做到,但我无法找到一个例子。如何使用收集的信用卡中的Stripe令牌在订阅的第一个期间向用户收费?创建订阅的唯一代码是:
Stripe::Subscription.create(
:customer => customer.id,
:plan => "basic-monthly",
)
哪个没有传递令牌。我在哪里传递令牌?
答案 0 :(得分:1)
您需要将令牌用于create a customer object,然后您可以将生成的客户对象用于create the subscription。
本教程使用Stripe解释订阅流程:https://stripe.com/docs/subscriptions/quickstart。
答案 1 :(得分:0)
创建订阅时,令牌可以作为source
属性传递:
Stripe::Subscription.create(
:customer => customer.id,
:plan => "basic-monthly",
:source => token,
)
我最终为现有客户做到了这一点。由于我再次收集他们的信用卡信息,这允许Stripe使用他们刚刚输入的任何内容。
对于新客户,请在创建客户时设置源字段。与客户一起存储的支付源最终在创建订阅时被使用。
您无法使用源令牌创建客户,也无法在订阅上使用相同的令牌。我发现Stripe认为这是重用令牌,它会引发异常。您必须在一个地方或另一个地方有条件地使用它,具体取决于客户是否是新创建的。