这是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
})
问题是,在通过平台收费时,令牌应该以不同的方式创建吗?
答案 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
})