Мое 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
Что я делаю неправильно?
когда создание заряда, source
параметр должен быть установлен на карту знак Я БЫ. В вашем примере вы используете ключ API целевой учетной записи, который является совершенно другой концепцией. Вам нужно использовать либо source
параметр с токеном карты, возвращаемым Проверять, выписываться или же Stripe.js, или customer
параметр с идентификатором объекта клиента, который вы создали ранее.
Как примечание, вам не нужно беспокоиться о ключах API, которые вы получаете в ответ на последнем шаге потока Connect OAuth. Единственная сфера интересов stripe_user_id
поле, содержащее идентификатор учетной записи. Вы должны сохранить этот идентификатор в вашей базе данных, чтобы затем использовать его с Stripe-Account
заголовок для выдачи запросов API от имени этой учетной записи.
Других решений пока нет …