如何與 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 個單位的貨幣。檢查此示例

  • 你無法以兩種貨幣向使用者收費。如果使用者在過去的任何時刻以歐元收費,則無法以美元向使用者收費。

  • 你無法在沒有來源的情況下向使用者收費(付款方式)。