document.addEventListener("DOMContentLoaded", function () { Checkout.configure({ session: { id: 1, // Default session ID, will be replaced with actual session ID after initiation } }); function initiateCheckout() { const csrftoken = getCookie('csrftoken'); console.log('CSRF Token:', csrftoken); fetch('/initiate_checkout/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': csrftoken }, body: JSON.stringify({}) }) .then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(data => { // Handle success response console.log("Session ID: " + data.session_id); // Update Checkout session with the fetched session ID and show the embedded page Checkout.configure({ session: { id: data.session_id, } }); $('#paymentContent').empty(); Checkout.showEmbeddedPage('#paymentContent', () => { $('#paymentModal').modal(); }); }) .catch(error => { console.error('There was a problem with the fetch operation:', error); }); } // Function to get CSRF token from cookie function getCookie(name) { let cookieValue = null; if (document.cookie && document.cookie !== '') { const cookies = document.cookie.split(';'); for (let i = 0; i < cookies.length; i++) { const cookie = cookies[i].trim(); if (cookie.substring(0, name.length + 1) === (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } const displayPaymentModalButton = document.querySelectorAll('.displayPaymentModal'); const closeButton = document.querySelector('#closePaymentModalButton'); const paymentModal = document.getElementById('paymentModal'); displayPaymentModalButton.forEach(function (button) { button.addEventListener('click', function () { paymentModal.classList.remove('hidden'); document.body.style.overflow = 'hidden'; initiateCheckout(); }); }); closeButton.addEventListener('click', function () { paymentModal.classList.add('hidden'); sessionStorage.clear(); document.body.style.overflow = ''; }); });