我的PHP应用程序正在使用Stripe。人们在我的平台上销售他们的产品,我从中获得了我的费用。我已经有了一个链接,可以让用户将他们的Stripe帐户连接到我的平台。我获得了身份验证代码,然后我用它来获取访问令牌。响应如下(用abcd替换长随机字符串):
{
"token_type": "bearer",
"stripe_publishable_key": "pk_test_abcd",
"scope": "read_write",
"livemode": false,
"stripe_user_id": "acct_abcd",
"refresh_token": "rt_abcd",
"access_token": "sk_test_abcd"
}
然后,我试图为关联帐户创建测试费用:
$charge = Stripe\Charge::create([
'amount' => 1000,
'currency' => 'usd',
'source' => 'sk_test_abcd',
], ['stripe_account' => 'acct_abcd']);
但我收到以下错误:
没有这样的标记:sk_test_abcd
我做错了什么?
答案 0 :(得分:0)
creating a charge时,source
参数应设置为卡token ID。在您的示例中,您使用的是目标帐户的API密钥,这是一个完全不同的概念。您需要使用source
参数和Checkout或Stripe.js返回的卡令牌,或customer
参数以及您之前创建的客户对象的ID。
作为旁注,您不必担心在Connect OAuth流程的最后一步中response中获得的API密钥。唯一感兴趣的字段是包含帐户ID的stripe_user_id
字段。您应该将此ID保存在数据库中,这样您就可以使用Stripe-Account
标题代表此帐户发出API请求。