Ответ 1
Похоже, вы пытаетесь обвинить клиента, который существует на вашем тестовом счете, а не в вашей реальной учетной записи. Убедитесь, что вы создаете нового клиента с вашими живыми клавишами и используете свой токен для создания заряда.
При использовании Stripe в режиме live я получаю эту ошибку PHP:
Нет такого токена tok_fgfhn.. аналогичный объект существует в тестовом режиме, но для выполнения этого запроса использовался клавиша в реальном времени
Все работает хорошо в режиме тестирования Stripe, и я переключился на живой API-ключ.
Я создаю нового клиента следующим образом:
$token = $_POST['stripeToken'];
$email = $_POST['email'];
$customer = \Stripe\Customer::create(array(
'email' => $email,
'card' => $token
));
//charge for user ads
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
'amount' => $amount,
'currency' => 'eur'
));
Я ждал много часов, но я все еще получаю эту ошибку. Как я могу это исправить?
Похоже, вы пытаетесь обвинить клиента, который существует на вашем тестовом счете, а не в вашей реальной учетной записи. Убедитесь, что вы создаете нового клиента с вашими живыми клавишами и используете свой токен для создания заряда.
Посмотрите на javascript, который использует тестовый открытый ключ API для извлечения токена. Измените его на свой открытый API API.
Это должно быть что-то вроде этого
Stripe.setPublishableKey('pk_test_axEdfdasdfasfsadfsad');
У вас будет два разных ключа в вашей учетной записи. Пожалуйста, убедитесь, что вы заменили обе тестовые клавиши живыми клавишами:
живой сектантский ключ: sk_live_00000000000000000000000
живой ключ публикации: pk_live_00000000000000000000000
1- Секретный ключ будет заменен во всех ваших php-скриптах, где вы заряжаете
\Stripe\Stripe::setApiKey("sk_live_00000000000000000000");
2. Опубликовать ключ заменит в вашем .JS файле, через который вы проверите форму платежа, этот же файл также создает токен после успешной проверки. Он может вызывать stripe.js или может иметь другое имя, необходимое для поиска этого файла, у него будет ключ публикации, который вам нужно заменить из test to live:
Stripe.setPublishableKey('pk_live_0000000000000'); //this would be publish key
function stripeResponseHandler(status, response) { //token function
if (response.error) {
// re-enable the submit button
$('.submit-button').removeAttr("disabled");
// show hidden div
document.getElementById('a_x200').style.display = 'block';
// show the errors on the form
$(".payment-errors").html(response.error.message);
} else {
var form$ = $("#payment-form");
// token contains id, last4, and card type
var token = response['id'];
// insert the token into the form so it gets submitted to the server
form$.append("<input type='hidden' name='stripeToken' value='" + token + "' />");
// and submit
form$.get(0).submit();
}
}