当您已经有用户时创建条纹订阅
Stripe subscriptions creation when you already have a user
在我的例子中 - 我将 Stripe 与 Rails 一起使用,用户可以一次性支付一些东西 'Charge',或者订阅并拥有一定数量的东西已按次收费,按月免费
创建费用后 - 我将 stripe_customer_id
保存在我的 PG 数据库中。
但是,如果用户随后想要订阅,我想将其添加到 Stripe 客户,而不是创建新客户。
如果创建一个新的,它是这样的:
customer_data = {
email: params[:stripeEmail],
card: params[:stripeToken]
}.merge(
(monthly_plan.payment_offerings_plan.blank?) ?
{} : { plan: Payment_offering.find(monthly_plan.payment_offerings_plan).stripe_plan_id }
)
customer = Stripe::Customer.create customer_data
本质上 - 如何在 Stripe 中向现有的 Stripe 客户添加订阅?
所有这些都可以在优秀的 Ruby API Docs 中找到。涉及几个步骤,但并不难。可能需要进行一些试验才能使其在您的应用程序中正常工作
创建默认源
客户必须为订阅费用指定一个默认来源。这可以从令牌创建,如下所示:
customer.sources.create({:source => token_id})
或从客户的现有卡片中分配,如果您已经将卡片分配给用户:
customer.default_source = customer.sources.retrieve(card_id)
创建订阅计划
您可以在 Stripe 控制台上轻松创建订阅计划,因为这通常是一次性的 activity;构建一个 UI 来管理订阅计划几乎肯定是矫枉过正,除非您有可以管理订阅计划但无权访问 Stripe 控制台的管理员用户。
要以编程方式创建订阅计划,试试这个:
Stripe::Plan.create(
:amount => 4200, #<== Amount is in cents, not dollars
:interval => "month",
:name => "Purple Plan",
:currency => "usd",
:id => "purple"
)
您可以创建任意数量的计划,并可以为用户订阅他们喜欢的任何计划。
为客户创建订阅
此时,您可以在客户上创建订阅,这将启动计费过程。
Stripe::Subscription.create(
:customer => customer,
:plan => "purple"
)
设置网络挂钩接收器
出于某种原因,此文档位于不同的位置(请参阅 Webhooks),但它是该过程中非常必要的部分。这将使您的应用程序了解
def 支付控制器
protect_from_forgery :except => :webhook
def 网络钩子
# 从webhook params中获取事件信息
event_id = 参数[:事件]
# Verify that the event isn't forged to your Stripe account
event = Stripe::Event.retrieve(event_id)
# Record the event
PaymentEvents.create!(event)
# Handle the event in terms of your application
#...
结束
结束
从 Stripe 发送的事件类型记录在 Types of Events。您可以选择捕获和处理一些,同时让其他人通过。但是,在我的应用程序中,我发现最好捕获并记录所有事件,然后根据需要处理它们。这样,如果您错过了处理一个后来变得很重要的事件,您可以参考并处理它 post hoc.
收取定期付款
这是简单的部分,最好用您最喜欢的冷饮来完成。此时您需要做的就是监控 Stripe 控制台和您的银行帐户。无需额外操作,因为 Stripe 会处理剩下的事情。
在我的例子中 - 我将 Stripe 与 Rails 一起使用,用户可以一次性支付一些东西 'Charge',或者订阅并拥有一定数量的东西已按次收费,按月免费
创建费用后 - 我将 stripe_customer_id
保存在我的 PG 数据库中。
但是,如果用户随后想要订阅,我想将其添加到 Stripe 客户,而不是创建新客户。
如果创建一个新的,它是这样的:
customer_data = {
email: params[:stripeEmail],
card: params[:stripeToken]
}.merge(
(monthly_plan.payment_offerings_plan.blank?) ?
{} : { plan: Payment_offering.find(monthly_plan.payment_offerings_plan).stripe_plan_id }
)
customer = Stripe::Customer.create customer_data
本质上 - 如何在 Stripe 中向现有的 Stripe 客户添加订阅?
所有这些都可以在优秀的 Ruby API Docs 中找到。涉及几个步骤,但并不难。可能需要进行一些试验才能使其在您的应用程序中正常工作
创建默认源
客户必须为订阅费用指定一个默认来源。这可以从令牌创建,如下所示:
customer.sources.create({:source => token_id})
或从客户的现有卡片中分配,如果您已经将卡片分配给用户:
customer.default_source = customer.sources.retrieve(card_id)
创建订阅计划
您可以在 Stripe 控制台上轻松创建订阅计划,因为这通常是一次性的 activity;构建一个 UI 来管理订阅计划几乎肯定是矫枉过正,除非您有可以管理订阅计划但无权访问 Stripe 控制台的管理员用户。
要以编程方式创建订阅计划,试试这个:
Stripe::Plan.create(
:amount => 4200, #<== Amount is in cents, not dollars
:interval => "month",
:name => "Purple Plan",
:currency => "usd",
:id => "purple"
)
您可以创建任意数量的计划,并可以为用户订阅他们喜欢的任何计划。
为客户创建订阅
此时,您可以在客户上创建订阅,这将启动计费过程。
Stripe::Subscription.create(
:customer => customer,
:plan => "purple"
)
设置网络挂钩接收器
出于某种原因,此文档位于不同的位置(请参阅 Webhooks),但它是该过程中非常必要的部分。这将使您的应用程序了解
def 支付控制器 protect_from_forgery :except => :webhook
def 网络钩子 # 从webhook params中获取事件信息 event_id = 参数[:事件]
# Verify that the event isn't forged to your Stripe account
event = Stripe::Event.retrieve(event_id)
# Record the event
PaymentEvents.create!(event)
# Handle the event in terms of your application
#...
结束 结束
从 Stripe 发送的事件类型记录在 Types of Events。您可以选择捕获和处理一些,同时让其他人通过。但是,在我的应用程序中,我发现最好捕获并记录所有事件,然后根据需要处理它们。这样,如果您错过了处理一个后来变得很重要的事件,您可以参考并处理它 post hoc.
收取定期付款
这是简单的部分,最好用您最喜欢的冷饮来完成。此时您需要做的就是监控 Stripe 控制台和您的银行帐户。无需额外操作,因为 Stripe 会处理剩下的事情。