在Sinatra后端将条带计划创建放在何处

时间:2016-06-14 18:08:33

标签: ruby sinatra stripe-payments

我使用example provided为我的iOS应用程序实现后端使用Stripe进行付款,唯一的区别是我的应用程序仅使用计划,而不是收费。我只是想知道plan creation codeweb.rb中的位置。

是这样的:

post '/charge' do

  # Get the credit card details submitted by the form
  source = params[:source] || params[:stripe_token] || params[:stripeToken]
  customer = params[:customer]

  # Create the charge on Stripe's servers - this will charge the user's card
  begin
    Stripe::Plan.create(
      :amount => 2000,
      :interval => 'month',
      :name => 'Amazing Gold Plan',
      :currency => 'usd',
      :id => 'gold'
    )
  rescue Stripe::StripeError => e
    status 402
    return "Error creating charge: #{e.message}"
  end

  status 200
  return "Charge successfully created"

end

或者计划是否应该在方法之外定义?这个问题的意思是这将定义一个名为“惊人的黄金计划”的新计划。每次调用post /charge,或者只是将新客户绑定到现有计划?

1 个答案:

答案 0 :(得分:2)

所以我认为你真正想要做的只是创建一次计划,然后创建一个订阅。订阅是附加到客户的计划。他们自己的计划实际上并没有做任何事情,但一旦他们用来创建订阅,他们就可以开始自动向用户收费。这有意义吗?

您可以通过信息中心[1]或通过API [2]创建您想要的计划。当您准备好使用它时,您可以在查看客户记录或通过API [3]时在仪表板内创建订阅。

在您的情况下,您可能要做的是将计划ID(例如gold)存储在本地某处,并使用该计划ID创建订阅,而不是计划本身。

希望有所帮助!

[1] https://dashboard.stripe.com/plans

[2] https://stripe.com/docs/api#create_plan

[3] https://stripe.com/docs/api#create_subscription