我正在关注Stripe Rails Checkout Guide,除了我尝试将其用于订阅而不是一次性付款。
我的代码如下:
def create
token = params[:stripeToken]
customer = Stripe::Customer.create(
:card => token,
:plan => "year",
:email => current_user.email
)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to charges_path
end
我有一个计划,但是当我输入我的卡片详情时,我没有得到任何回复,而且在Stripe上它说没有订阅者?
答案 0 :(得分:1)
按照此处的文章进行测试(如果您还没有)
https://stripe.com/docs/testing
由于您尚未设置任何webhook,因此您的stipe仪表板将无法显示是否创建了任何新客户。在这种情况下,最简单的验证方法是检查创建的customer
对象。
另外,在您计划订阅时,重要的是要跟踪客户ID。最简单的方法是向用户模型(表)添加一个新属性(列)strip_id
。然后做一些事情:
if @user.stripe_id
customer = Stripe::Customer.retrieve(@user.stripe_id)
else
customer = Stripe::Customer.create(
:description => "User: #{@user.id}",
:email => @user.email,
:card => params[:stripe_token]
)
@user.update_attributes!(:stripe_id => customer.id)
end
如果创建了customer
对象,则验证您的代码运行正常。
要获得有关此条目的条带确认,您需要为条带创建一个webhook和一个控制器。您无法将http://localhost:3000/stripe
网址视为webhook。为此,您需要一些额外的工具,如ngrok。我已经写了一篇文章,你可以在这里参考:https://codefiddle.wordpress.com/2014/06/17/localhost-to-internet/
最好先在rails console
中尝试这个(创建客户)。如果创建了客户对象,则验证所有这些对象。
答案 1 :(得分:0)
这听起来像是一个Javascript问题,而不是Rails问题。看看你的JS错误控制台。那里有问题吗?在Chrome和Firefox中,选中"保留日志"复选框以保持日志的下一页加载,以便您可以看到发生了什么。如果你正在使用Turbolinks,我会建议你禁用它,直到你能弄清楚发生了什么。