如何与 Stripe 集成

添加 Stripe gem 到我们的 Gemfile

gem 'stripe'

添加 initializers/stripe.rb 文件。此文件包含用于连接条带帐户的必要密钥。

require 'require_all'

Rails.configuration.stripe = {
    :publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
    :secret_key      => ENV['STRIPE_SECRET_KEY']
}

Stripe.api_key = Rails.configuration.stripe[:secret_key]

如何为 Stripe 创建新客户

Stripe::Customer.create({email: email, source: payment_token})

此代码使用给定的电子邮件地址和来源在 Stripe 上创建新客户。

payment_token 是从客户端提供的令牌,其中包含信用卡或银行账户等付款方式。更多信息: Stripe.js 客户端

如何从 Stripe 检索计划

Stripe::Plan.retrieve(stripe_plan_id)

此代码通过其 ID 从 Stripe 检索计划。

如何创建订阅

当我们有客户和计划时,我们可以在 Stripe 上创建新的订阅。

Stripe::Subscription.create(customer: customer.id, plan: plan.id)

它将创建一个新的订阅,并将向我们的用户收费。当我们订阅用户计划时,了解 Stripe 上真正发生的事情非常重要,你可以在此处找到更多信息: Stripe 订阅生命周期

如何通过一次付款向用户收费

有时我们只想给用户收费一次,为此我们会做下一次。

Stripe::Charge.create(amount:   amount, customer: customer, currency: currency)

在这种情况下,我们向用户收取一次给定金额的费用。

常见错误:

  • 金额必须以整数形式发送,这意味着,2000 将是 20 个单位的货币。检查此示例

  • 你无法以两种货币向用户收费。如果用户在过去的任何时刻以欧元收费,则无法以美元向用户收费。

  • 你无法在没有来源的情况下向用户收费(付款方式)。