2017-05-19 15 views
2

からconnected accountで顧客レコードを請求しようとすると、「そのような顧客:cus_xxxx " - でない場合は、「接続済み」のアカウントを使用している場合(プラットフォームアカウントを使用して請求する場合)、同じ正確な顧客に課金することは問題ありません。例えばストライプコネクト:既存の顧客を「接続済み」(スタンドアロン)アカウントにチャージする

、ID acct_ABC123で私たちは、「接続」(スタンドアロン)のアカウントを持っていると仮定すると、次のRubyのコードを考えてみますが、最後の行は "と、Stripe::InvalidRequestError例外につながる

# Use the (secret) API key for the "platform" or base account. 
Stripe.api_key = 'sk_[...]' 

customer = Stripe::Customer.create(email: '[email protected]') 

# Associate a credit-card with the customer. 
token = # Generate a token (e.g., using Stripe Checkout). 
customer.sources.create(source: token) 

# Attempt to charge the card via the connected account... 
Stripe::Charge.create({ amount: 150, currency: 'usd', customer: customer.id, 
         application_fee: 25 }, stripe_account: 'acct_ABC123') 

そのような顧客はありません "上記のエラー。私たちは(stripe_accountパラメータなしapplication_feeなし)「プラットフォーム」アカウント上でそれを実行しようとする場合は、同じ電荷は...ファインを通じて、いくつかの(混乱と少し奇妙な)理由

Stripe::Charge.create({ amount: 150, currency: 'usd', customer: customer.id } 

答えて

2

を行きます「共有顧客」(1つ以上の接続されたアカウントを通じて請求される顧客)に対して料金を請求する際には、creating a new tokenの中間ステップを追加する必要があります。さておき、私はストライプの検討するように、我々はすでに(質問ごとなど)に関連するクレジットカードでcustomerを作成したと仮定すると、作業コードは、このような何かを探して終わる...

token = Stripe::Token.create({ customer: customer.id }, 
          { stripe_account: 'acct_ABC123' }) 
Stripe::Charge.create({ amount: 150, currency: 'usd', source: token.id, 
         application_fee: 25 }, stripe_account: 'acct_ABC123') 

バグであるというエラーメッセージ(「そのような顧客はいない」)と、この余分なステップ(トークンを生成する)が「Stripe Connect」にのみ必要であるという事実は、混乱を招く。

関連する問題