Techioz Blog

カードを節約せずにストライプ決済を行う

概要

私はストライプ決済関連のほとんどを読みました。彼らは、最初にストライプで顧客にカードを追加するということは、カードを顧客に保存してから支払いを行うことを意味すると言いました。ただし、私の要件では、カードを使用して支払いが行われるため、カードの詳細をストライプに保存する必要はありません。

以下に、カード ID (card_****) の代わりに顧客 ID とストライプ トークンを渡しているコードを示します。

Stripe::Charge.create(
  amount: amount_in_cents, 
  currency: currency_code,
  customer: stripe_customer_id,
  source: stripe_token
)

しかし、エラーがスローされます

リンクを読みました。 Stripe Payment: Getting Error as Customer cus_***** には ID tok_***** のリンクされたカードがありません。params customer とsource の両方を使用する場合は、source を次のようにする必要があると記載されています。カードID(card_****)。代替の使用方法はありますか?

解決策

customer を使用したくない場合は、その必要はありませんが、支払いトークンを直接請求して、customer 引数を省略してください。

Stripe::Charge.create(
  amount: amount_in_cents, 
  currency: currency_code,
  source: stripe_token
)