【问题标题】:Out-of-the-box Railscast开箱即用的 Railscast
【发布时间】:2013-08-29 11:02:42
【问题描述】:

我是 Rails 新手,正在尝试使用 Stripe RailsCast 进行计费 (http://railscasts.com/episodes/288-billing-with-stripe)。我克隆了项目并从 saas-after 目录 (https://github.com/railscasts/288-billing-with-stripe) 构建了项目。

然后我在 config/initializers/stripe.rb 中添加了我的条带测试凭据,并将订阅添加到我的条带帐户中。我还构建了 rails 应用程序:

 bundle
 rake db:setup
 rails s

当我输入有效的 Stripe 测试卡(即 4242424242424242)时,我仍然遇到验证问题。错误是:“您的信用卡有问题。”如果我给了一张坏信用卡,我会得到同样的错误,即 123 。我缺少什么来举起这个例子?

【问题讨论】:

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


    【解决方案1】:

    看看models/subscription.rb。这是添加此验证错误的地方。看起来 Stripe 不喜欢您发送的请求。为什么不尝试通过打印错误来调试它?

    def save_with_payment
      ...
    rescue Stripe::InvalidRequestError => e
      puts e
      logger.error "Stripe error while creating customer: #{e.message}"
      errors.add :base, "There was a problem with your credit card."
      ...
    

    (如果您使用 pry-debugger,这将是在 puts e 当前所在的位置放置 binding.pry 语句的好时机;)。

    【讨论】:

    • 多合一请求:在 2013-08-26 17:26:01 -0400 开始 GET "/subscriptions/new?plan_id=1" for 127.0.0.1 -0400 由 SubscriptionsController#new 作为 HTML 参数处理: {"plan_id"=>"1"} 然后...开始 POST "/subscriptions" for 127.0.0.1 at 2013-08-26 17:26:31 -0400 由 SubscriptionsController#create 作为 HTML 参数处理:{" utf8"=>"✓", "authenticity_token"=>"45J...6WwhBDQ15HmI+QEs...k8lI1pDU=", "subscription"=>{"plan_id"=>"1", "stripe_card_token"=>"" , "email"=>"jj..@gmail.com"}, "commit"=>"Subscribe"} 条带错误...为卡提供的空字符串。
    • 所以基本上在回调之一中信用卡令牌是空的。
    • 这不是空的 Stripe 回调——它是您通过表单发送控制器的内容。 stripe_card_token 应该在表单中作为隐藏字段填写,但尚未完成。这听起来像是您信用卡表单中的 javascript 的某些部分已损坏。
    • 是的,我也遇到了同样的问题...:/
    最近更新 更多