Stripe: нет такого токена .. аналогичный объект существует в тестовом режиме, но для выполнения этого запроса использовался клавиша режима реального времени

При использовании 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

live publish key: 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(); } }