Элементы Stripe не общаются с сервером Stripe - Нет такого токена: tok_xxxx - PullRequest
0 голосов
/ 20 марта 2019

Итак, я перехожу с проверки заказа на полосу к элементам, чтобы я мог зарегистрироваться и выставить счет клиенту в единой форме.Я следую их документации: https://stripe.com/docs/stripe-js/elements/quickstart

В частности, на шаге 3, где создается токен со следующим кодом:

// Create a token or display an error when the form is submitted.
var form = document.getElementById('payment-form');
form.addEventListener('submit', function(event) {
  event.preventDefault();

  stripe.createToken(card).then(function(result) {
    if (result.error) {
      // Inform the customer that there was an error.
      var errorElement = document.getElementById('card-errors');
      errorElement.textContent = result.error.message;
    } else {
      // Send the token to your server.
      stripeTokenHandler(result.token);
    }
  });
});

В документации говорится:

Обработчик отправляет поля в Stripe для токенизации ...

Однако, похоже, что в Stripe вообще ничего не отправляется!

В двух нижних запросах показаны два вызова API, сделанные с использованием старой проверки: сначала информация о карте отправляется в / токены, а затем мой сервер обрабатывает это и выполняет запрос / customer в порядке.

Но при использовании кода элементов кажется, что ничего не отправляется в полосу, хотя токен генерируется и отправляется на мой сервер.Итак, я получаю ошибку «Нет такого токена»!?

stripe logs

Я не могу на всю жизнь тренироваться, почему stripe.createToken(card) isn 'отправляет подробности на их сервер и все же генерирует токен ??Я трижды проверил ключи API и все, что могу придумать.Пожалуйста, помогите !!

1 Ответ

0 голосов
/ 21 марта 2019

Какого черта ... Я заставил это работать, но я не знаю, почему это исправило это.

Я использую элементы stripe на веб-сайте .net mvc и инициализирую класс Stripe в представлении, чтобы я мог легко передать ключ из моей модели представления следующим образом:

var stripe = Stripe('@Model.StripePublicKey');

Что должно работать нормально, верно? Никаких ошибок JS или чего-то еще, и он создавал токен, просто не публиковал на серверах чередования ....

В любом случае, я переместил эту строку в файл JS, чтобы она находилась прямо над другим JS, связанным с полосами, и теперь она работает !?

...