条纹连接:针对连接的现有客户收费" (独立)帐户

时间:2017-05-19 17:58:41

标签: ruby stripe-payments stripe-connect

如果尝试通过 connected account向客户记录(具有关联的信用卡)收费,我收到错误声明,"没有此类客户:cus_xxxx&# 34; - 即使使用"已连接的" ,向同一个客户付费也能正常工作。帐户(通过平台帐户充值时)。

例如,考虑以下Ruby代码,假设我们有一个" connected"标识为acct_ABC123的(独立)帐户:

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

customer = Stripe::Customer.create(email: 'customer@example.com')

# 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::InvalidRequestError例外,其中包括"没有这样的客户"上面提到的错误。但是,如果我们只是尝试在平台上运行它,那么相同的费用将会很好。帐户(没有stripe_account参数,没有application_fee)...

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

1 个答案:

答案 0 :(得分:7)

对于某些(令人困惑且有点奇怪)的原因,您必须在对#34;共享客户"提出指控时添加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的错误消息("没有这样的客户")是一个错误,而且这个额外步骤(生成令牌)只需要& #34; Stripe Connect"指责令人困惑的怪癖。