0

我的 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

我究竟做错了什么?

4

1 回答 1

0

创建费用时,该source参数应设置为卡令牌ID。在您的示例中,您使用的是目标帐户的 API 密钥,这是一个完全不同的概念。您需要将参数与CheckoutStripe.jssource返回的卡令牌一起使用,或者将参数与您之前创建的客户对象的 ID 一起使用。customer

附带说明一下,您无需担心在 Connect OAuth 流程的最后一步的响应中获得的 API 密钥。唯一感兴趣的stripe_user_id字段是包含帐户 ID 的字段。您应该将此 ID 保存在您的数据库中,以便您可以将其与Stripe-Account标头一起使用,以代表此帐户发出 API 请求。

于 2016-03-17T11:10:36.867 回答