Stripe Ruby-按ID查找现有客户并添加计划

set*_*ine 5 ruby ruby-on-rails stripe-payments

因此,Stripe文档说:

创建客户之后,应将其ID存储在自己的数据库中,以便以后在与Stripe通信时可以参考它。

好的,很简单。我的问题是:如何通过其ID查找客户? 像这样的更新

customer = Stripe::Customer.retrieve(id)
Run Code Online (Sandbox Code Playgroud)

当我为一项服务注册新客户时,我会创建一个新的Stripe 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
Run Code Online (Sandbox Code Playgroud)

set*_*ine 4

寻找客户:

customer = Stripe::Customer.retrieve(current_vendor.stripe_id) # pass in the persisted ID
Run Code Online (Sandbox Code Playgroud)

创建新的计划订阅:

customer.subscriptions.create(plan: "social")
Run Code Online (Sandbox Code Playgroud)

这些文档非常详尽,只需深入研究并找到具体细节即可。顺便说一句,为单个客户添加多个订阅是 Stripe在今年 2 月添加的一项功能。