条纹令牌可以直接充电但不能通过平台充电

时间:2015-09-15 09:32:29

标签: ruby-on-rails stripe-payments

这是Stripe特定的问题,我无法弄明白。

最初我在直接充电时进行了条纹连接设置,这意味着平台将其切断,但是费用直接转到收件人。我们的问题是条纹从用户那里收取费用,我们希望它从我们这边收取费用。

因此我们需要通过平台充电。

现在,当我直接测试我的代码时,它可以工作,但是当我通过平台更改它时,它会说:

No such token: tok_16lFgxDVBtbPPV

这是我直接收费的代码(这有效):

  token = Stripe::Token.create( { customer: customer.stripe_customer_id }, stripe_account: @user.uid)

  Stripe::Charge.create({
    amount: total_amount,
    currency: 'usd',
    source: token,
    application_fee: platform_fee},
    stripe_account: @user.uid
  )

现在这是我通过平台收费的代码:

  token = Stripe::Token.create( { customer: customer.stripe_customer_id }, stripe_account: @user.uid)
  Stripe::Charge.create({
    amount: total_amount,
    currency: 'usd',
    source: token,
    application_fee: platform_fee,
    destination: @user.uid
  })
问题是,在通过平台收费时,令牌应该以不同的方式创建吗?

以下是便于参考的文档:https://stripe.com/docs/connect/payments-fees

1 个答案:

答案 0 :(得分:0)

使用token = Stripe::Token.create( { customer: customer.stripe_customer_id }, stripe_account: @user.uid)创建令牌时,会在用户的条带帐户中创建令牌。当您在用户的帐户中创建费用时(例如在您的第一个示例中),这可以正常工作。但是,在您的第二个示例中,费用是在您的帐户中创建的。当您的帐户中收费时,实际上无需创建新令牌,因为您只需向客户收费并设置目的地即可。

这应该这样做:

 Stripe::Charge.create({
    amount: total_amount,
    currency: 'usd',
    customer: customer.stripe_customer_id,
    application_fee: platform_fee,
    destination: @user.uid
  })