Gibt es eine Möglichkeit, ein Ereignis auszulösen, wenn das Stripe Checkout-Modal geschlossen wird?Ereignis oder Methoden für das Stripe Checkout Modal
Zwischen dem Zeitpunkt, zu dem das modale Stripe-Modul geschlossen und seine Antwort geliefert wird, gibt es etwa 0,5-1 Sekunden Verzögerung. In dieser Zeit könnte ein Benutzer auf die Seite usw. klicken. Um das Problem zu beheben, können wir alle Links deaktivieren oder ein Overlay ("cover-all") auf die Seite setzen, die nur entfernt wird, wenn Stripe verarbeitet wird .
Das Problem besteht darin, dass es keine Möglichkeit gibt, diese Überlagerung zu schließen, wenn die Person beschließt, das Stripe-Modal zu schließen (anstatt zu versuchen, eine Zahlung zu verarbeiten). Sie können das Modal (z. B. $ ('. Stripe-app')) aufgrund der gleichen Ursprungsrichtlinie nicht als Ziel verwenden.
Irgendwelche alternativen Ideen?
Mein Code ist unten, angepasst von 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;
});
Dort sollte es keine Verzögerung geben. Wir rufen Ihren Token-Callback auf, bevor das Modal geschlossen wird. Sie können Ihre Absenden-Schaltfläche nach Erhalt dieses Callbacks deaktivieren. Sind Sie sicher, dass die Verzögerung nicht in Ihrem Formular liegt? – brian
Wir sehen das gleiche Problem, aber sehen nicht das oben von Brian beschriebene Verhalten - für uns wird die Token-Funktion aufgerufen, nachdem das Stripe-Modal abgeschlossen ist, was etwa 1 Sekunde dauert, so dass wir keinen guten Weg finden um die Tasten zu deaktivieren. Vielleicht haben wir etwas falsch? – bprotas