C'è un modo per attivare un evento quando il modale di Stripe Checkout è chiuso?Event o Methods per il Stripe Checkout Modal
C'è un ritardo di circa 0,5-1 secondi tra il momento in cui la modale di Stripe si chiude e viene fornita la risposta. A quel tempo, un utente potrebbe fare clic fuori dalla pagina ecc. Per risolvere il problema, possiamo fare qualcosa come disabilitare tutti i link o mettere un overlay ("cover-all") sulla pagina che viene rimossa solo quando viene eseguita l'elaborazione di Stripe .
Il problema è che non è possibile chiudere l'overlay se la persona decide di chiudere il modale Stripe (invece di provare a elaborare un pagamento). Non puoi scegliere come target il modale (ad es. $ ('. Stripe-app')) a causa della stessa politica di origine.
Qualche idea alternativa?
Il mio codice è di seguito, adattato da 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;
});
Non ci dovrebbe essere un ritardo lì. Chiamiamo il callback del token prima che la modal venga chiusa. È possibile disabilitare il pulsante di invio dopo aver ricevuto questa richiamata. Sei sicuro che il ritardo non è nella tua presentazione del modulo? – brian
Stiamo vedendo lo stesso problema, ma non stiamo vedendo il comportamento notato da Brian sopra - per noi, la funzione token viene chiamata dopo che la modale Stripe viene terminata, il che richiede circa 1 secondo, quindi siamo bloccati senza un buon metodo per disabilitare i pulsanti. Forse abbiamo qualcosa di sbagliato? – bprotas