У меня была эта проблема раньше, когда я пытался списать деньги с действующей карты / клиента в режиме разработки. Я никогда раньше не заряжал ACH с полосой и точно нахожусь в режиме разработки. https://stripe.com/docs/ach#integrating-plaid
js
var linkHandler = Plaid.create({
env: 'tartan',
clientName: 'Stripe / Plaid Test',
key: '[Plaid key]',
product: 'auth',
selectAccount: true,
onSuccess: function(public_token, metadata) {
// Token & Account ID - I use this for subsequent cURL requuest
console.log('public_token: ' + public_token);
console.log('account ID: ' + metadata.account_id);
},
});
// Trigger the Link UI
document.getElementById('linkButton').onclick = function() {
linkHandler.open();
};
Ответ действительный. Я использую public_token и идентификатор учетной записи, указанные выше:
$data = array(
'client_id' => 'MY_CLIENT_ID',
'secret' => 'MY_SECRET',
'public_token' => 'MY_PUBLIC_TOKEN_FROM_ABOVE',
'account_id' => 'MY_ACCOUNT_ID_FROM_ABOVE'
);
$string = http_build_query($data);
//initialize session
$ch=curl_init("https://tartan.plaid.com/exchange_token");
//set options
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//execute session
$keys = curl_exec($ch);
$keys = json_decode($keys);
//close session
curl_close($ch);
Это также приводит к действительному объекту ответа:
{
access_token: 'MY_ACCESS_TOKEN',
account_id: 'MY_ACCOUNT_ID',
stripe_bank_account_token: 'MY_STRIPE_BANK_ACCOUNT'
}
Полагаю, здесь я запутался. Документы говорят: Ответ будет содержать подтвержденный идентификатор токена банковского счета Stripe. Вы можете прикрепить этот токен к объекту Stripe Customer или создать начисление непосредственно на нем.
Однако, когда я создаю платеж на токен банковского счета следующим образом:
\Stripe\Stripe::setApiKey("sk_test_MY_TEST_KEY");
$charge = \Stripe\Charge::create(array(
"amount" => 2100,
"currency" => "usd",
"source" => $keys->stripe_bank_account_token, //(btok_MY_TOKEN_FROM_ABOVE)
"description" => "my description"
));
var_dump( $charge );
Я получаю следующую ошибку: Неустранимая ошибка: неперехваченное исключение «Stripe \ Error \ InvalidRequest» с сообщением «Нет такого токена: btoken_MY_BANK_TOKEN; аналогичный объект существует в режиме реального времени, но для этого запроса использовался ключ тестового режима. '