2014-10-01 54 views
3

所以条纹文档说:条纹红宝石 - 查找现有客户的ID,并添加一个计划

一旦你创建了一个客户,你应该保存它的ID在自己的数据库中,以便您可以参考一下吧稍后与条纹进行通信时。

好的,很简单。我的问题是:我如何通过ID找到客户? UPDATE这样的:

customer = Stripe::Customer.retrieve(id) 

当我注册为我服务的一个新客户创建一个新的条纹Customer,但如果是现有客户,我想用自己的现有帐户,只需添加一个计划。我如何找到它们并添加一个新的计划?我浏览了文档和红宝石宝石,但无法弄清楚。请帮助?这是有问题的方法。

def social_signup 
    token = params[:stripe_token] 
    if current_vendor.stripe_id == nil 
     customer = Stripe::Customer.create(
      :card => token, 
      :plan => 'social', 
      :email => current_vendor.email 
     ) 

     current_vendor.update_attributes(stripe_id: customer.id) 
    else 
     customer = Stripe::Customer.retrieve(current_vendor.stripe_id) 
     # bill the customer's existing account for the added subscription 
    end 

    redirect_to :somewhere 
end 

回答

2

寻找客户:

customer = Stripe::Customer.retrieve(current_vendor.stripe_id) # pass in the persisted ID 

创建一个新订阅计划:

customer.subscriptions.create(plan: "social") 

的文档是很透彻,只是要通过挖掘和发现的细节。顺便说一句,为单个客户添加多个订阅是Stripe added in February of this year的一项功能。

0

我相信这是如何创建一个计划,现在你有你的客户。

Stripe::Customer.create({ 
    :card => customer.id, 
    :plan => your_plan, 
    }, access_token 
) 
+0

仍然在'Stripe :: Customer'上调用create,很遗憾地创建一个新客户。我找到了答案,下面检查。此外,':card'应该键入由'Stripe.js'创建的标记,而不是客户ID。 – settheline 2014-10-01 22:49:04