You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

78 lines
2.8 KiB

// Fonction de vérification OTP via $.post
(function($) {
const verifyOTP = {
init: function() {
this.handleSubmit();
this.setupInputFocus();
},
// Gestionnaire pour la soumission du OTP
handleSubmit: function() {
$("#otp_btn").click(function(event) {
event.preventDefault();
let otpCode = "";
let isValid = true;
// Concaténer les valeurs des champs OTP
$(".otp-input").each(function() {
if (!$(this).val() || $(this).val().length !== 1) {
isValid = false;
}
otpCode += $(this).val();
});
// Affichage d'une erreur si le OTP est incomplet
if (!isValid || otpCode.length !== 6) {
$("#otp_error").text("Veuillez entrer un OTP complet de 6 chiffres.");
return;
}
$("#otp_btn").prop("disabled", true);
// Requête AJAX pour vérifier le OTP
$.post("payment/confirmation", {
otp: otpCode,
csrf_token: $("meta[name='csrf_token']").attr("content") // Jeton CSRF
})
.done(function(response) {
if (response.success) {
notify("OTP vérifié avec succès !", "success");
window.location.href ="payment/success";
} else {
notify(response.error_message || "Code OTP incorrect.", "error");
$("#otp_error").text(response.error_message);
}
})
.fail(function() {
notify("Une erreur est survenue. Veuillez réessayer plus tard.", "error");
$("#otp_error").text("Une erreur réseau s'est produite. Réessayez.");
})
.always(function() {
$("#otp_btn").prop("disabled", false);
});
});
},
// Notification personnalisée (supposons que $.notify soit disponible)
notify: function(message, type) {
$.notify(message, {
className: type,
position: "top right"
});
},
// Déplacement automatique vers le champ suivant
setupInputFocus: function() {
$(".otp-input").on("input", function() {
if (this.value.length === this.maxLength) {
$(this).next(".otp-input").focus();
}
});
}
};
$(document).ready(function() {
verifyOTP.init();
});
})(jQuery);