Я отправляю свою форму Stripe Checkout через AJAX (перехватывает событие отправки формы), потому что у меня сложная многопанельная HTML-форма, и я хочу отображать ошибки оплаты из Stripe без перезагрузки страницы и повторного создания формы или создания.пользователь повторно вводит загрузку информации.
Это все работает нормально, за исключением того, что когда кнопка Stripe Checkout используется, когда она отключена.После того, как я отобразил сообщение об ошибке на странице формы бронирования, мне нужно, чтобы пользователь мог снова нажать кнопку «Полоса» и попробовать другую информацию об оплате.Как мне активировать кнопку Stripe?Нужно ли удалять весь сценарий кнопки Stripe из DOM (я использую jQuery) и заново вставлять его (или аналогичный код) заново?
Мой стандартный код кнопки Checkout:
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="my_stripe_key"
data-image="mylogo.png"
data-name="My Booking Form"
data-zip-code="true"
data-locale="auto"
data-email=""
data-description="Payment for this booking"
data-currency="gbp"
data-amount=""
data-label="Pay and book!">
</script>
и, если необходимо, моя форма AJAX, отправьте код:
$('#booking-form').get(0).submit = function() {
var formdata = $(this).serialize();
$.ajax({
headers: {
'X-CSRF-TOKEN': $('#booking-form > input[name="_token"]').val()
},
type: 'POST',
url: 'book',
dataType: 'json',
data: formdata,
success: function(data) {
if (data.response == 'ok') // Payment went through OK
{
// Redirect to booking confirmation page:
window.location.replace(data.url);
} else // Payment failed, alert user to try again
{
$('#erroralert').text('Sorry, payment failed, please try again').removeClass('nodisplay');
}
},
error: function(data) // Server error
{
console.log('Error:', data.responseText);
}
});
// Prevent form submit.
return false;
}