У меня есть файл Javascript, который я пытаюсь использовать для создания источника Stripe из токена Stripe. Чтобы затем иметь возможность отправить этот источник в мою форму, отправьте форму, а затем создайте плату из файла .php, в который отправляется форма.
У меня просто возникают некоторые трудности с этим, я не получаю никаких ошибок в моей консоли, и он создает токен и источник, как предполагалось. Однако данные никогда не отправляются в мою форму, так как страница никогда не перенаправляется и никакая плата не взимается.
Я не уверен, что именно мне не хватает для правильной работы.
Ниже прилагается изображение вывода консоли.
Код, который у меня есть, показан ниже.
Stripe.card.createToken({
number: document.getElementById('cardNumId').value,
cvc: document.getElementById('cvcID').value,
exp_month: document.getElementById('expMonthId').value,
exp_year: document.getElementById('expYearId').value
}, stripeResponseHandler);
var stripeResponseHandler = function(status, response) {
if (response.error) {
alert('Something went wrong, sorry!' + error);
} else {
var token = response.id;
form.addEventListener('submit', function(event) {
event.preventDefault();
stripe.createSource(source, token).then(function(result) {
if (result.error) {
// Inform the user if there was an error
alert('Something went wrong, sorry!' + error);
} else {
// Send the source to your server
stripeSourceHandler(result.source);
}
});
});
function stripeSourceHandler(source) {
// Insert the source ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'stripeSource');
hiddenInput.setAttribute('value', source.id);
form.appendChild(hiddenInput);
// Submit the form
form.submit();
}
}
};



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, вам стоит прочитать это в документации Stripe: https://stripe.com/docs/stripe-js/elements/quickstart