Czy istnieje sposób wywołania zdarzenia, gdy modunek Stripe Checkout jest zamknięty?Zdarzenie lub metody dla Stripe Checkout Modal
Występuje około 0,5-1 sekundy opóźnienia między momentem zamknięcia modemu Stripe i dostarczeniem odpowiedzi. W tym czasie użytkownik może kliknąć z dala od strony itp. Aby rozwiązać ten problem, możemy zrobić coś jak wyłączyć wszystkie linki lub umieścić nakładkę ("cover-all") na stronie, która jest usuwana tylko po zakończeniu przetwarzania Stripe .
Problem polega na tym, że nie można zamknąć tej nakładki, jeśli dana osoba zdecyduje się na zamknięcie modemu Stripe (zamiast próbować przetwarzania płatności). Nie można kierować na modal (np. $ (". Stripe-app")) z powodu tej samej zasady pochodzenia.
Jakieś alternatywne pomysły?
Mój kod jest poniżej, zaadaptowany z https://stripe.com/docs/checkout.
// custom Stripe checkout button with custom overlay to avoid UI confusion during payment processing
$('.btn-stripe').click(function(){
var token = function(res){
var $input = $('<input type=hidden name=stripeToken />').val(res.id);
$('.form-stripe').append($input).submit();
};
StripeCheckout.open({
key: STRIPE_KEY,
address: false,
amount: STRIPE_AMT,
currency: 'usd',
name: 'Purchase',
description: STRIPE_DESC,
panelLabel: 'Checkout',
token: token
});
$('.cover-all').show();
return false;
});
Nie powinno być opóźnienia. Nazywamy to wezwaniem tokena, zanim modal zostanie zamknięty. Możesz wyłączyć przycisk przesyłania po otrzymaniu tego oddzwonienia. Czy na pewno opóźnienie nie występuje w przesłaniu formularza? – brian
Widzimy ten sam problem, ale nie widzimy zachowania zanotowanego przez Briana powyżej - dla nas funkcja Token jest wywoływana po zakończeniu modulacji Stripe, która trwa około 1 sekundy, więc utknęliśmy bez dobrej drogi aby wyłączyć przyciski. Być może coś jest źle ustawione? – bprotas