feat(paiement): Ajoute l'interface de paiement Stancer et la gestion du statut.

This commit is contained in:
Serreau Jovann
2025-07-30 14:56:27 +02:00
parent 3bd5831722
commit 439e12bc0d
13 changed files with 338 additions and 11 deletions

View File

@@ -0,0 +1,47 @@
export class PaymentPage extends HTMLButtonElement{
connectedCallback(){
let element = this;
element.addEventListener('click', function(){
let banke = document.querySelector('.banke');
banke.classList.remove('show');
let displayModal = document.createElement('div');
displayModal.classList.add('modal-payment');
let iframeContainer = document.createElement('div');
iframeContainer.classList.add('iframe-container');
window.addEventListener('message', function (event) {
if (event.origin !== 'https://payment.stancer.com') {
return;
}
if(event.data.status != undefined) {
if(event.data.status != "init" && event.data.status != "pending" && event.data.status != "secure-auth-start" && event.data.status != "secure-auth-end") {
if (event.data.status == "paid") {
displayModal.remove();
location.href = "/paiement/complete?id=" + element.getAttribute('id');
} else if (event.data.status == "finished") {
displayModal.remove();
location.href = event.data.url;
} else {
fetch("/api-interne/intranet/customer/payment/cancel?id="+element.getAttribute('id'))
displayModal.remove();
banke.classList.add('show');
}
}
}
console.log(event.data);
});
fetch("/api-interne/intranet/customer/payment?id="+element.getAttribute('id'))
.then(r=>r.json())
.then(r=>{
let iframe = document.createElement('iframe');
iframe.src = r.url;
iframeContainer.appendChild(iframe);
window.frame = iframeContainer;
})
displayModal.appendChild(iframeContainer);
document.body.appendChild(displayModal);
})
}
}