订阅新计划问题

时间:2014-12-26 04:01:38

标签: ruby-on-rails ruby stripe-payments

我正在关注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上它说没有订阅者?

2 个答案:

答案 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,我会建议你禁用它,直到你能弄清楚发生了什么。