$('.revenue_head').on('change',function(e){ var revenueHead = 'id='+$(this).val().trim(); // console.log(revenueHead) $.ajax({ type: 'POST', url: 'include/loadAjax.php', data: revenueHead, dataType:'json', cache:false, success: function (response) { console.log(response); // alert(response) if(response!='empty'){ $('#revenue_subhead').empty(); $('#revenue_subhead').append(''); $.each(response, function(key,value) { $('#revenue_subhead').append(""); }); } else{ $('#revenue_subhead').empty(); $('#revenue_subhead').append(""); } }, error:function(request,error){ console.log(error); } }); }); $('.revenue_head-2').on('change',function(e){ var revenueHead = "id="+$(this).val(); // alert(revenueHead) $.ajax({ type: 'POST', url: 'include/loadAjax.php', data: revenueHead, dataType:'json', cache:false, success: function (response) { console.log(response); // alert(response) if(response!='empty'){ $('.revenue_subhead-2').empty(); $('.revenue_subhead-2').append(''); $.each(response, function(key,value) { $('.revenue_subhead-2').append(""); }); } else{ $('.revenue_subhead-2').empty(); $('.revenue_subhead-2').append(""); } }, error:function(request,error){ console.log(error); } }); }); var paymentForm = document.getElementById('paymentForm'); paymentForm.addEventListener('submit', payWithPaystack, false); function payWithPaystack() { const paystack = new PaystackPop(); // Generate custom transaction reference function generateREF() { var ref = ''; for (var i = 0; i < 12; i++) { ref += Math.floor(Math.random() * 10); // Generate random digit from 0 to 9 } return ref; } var reference = generateREF(); $.ajax({ url: 'include/utils.php', type: 'GET', success: function(data) { var pp_keys = data.trim(); paystack.newTransaction({ key: pp_keys, phone: document.getElementById('phone').value, email: document.getElementById('email').value, amount: document.getElementById('amount').value * 100, currency: 'NGN', ref: reference, // This uses a random transaction reference metadata: { custom_fields: [{ display_name: 'Revenue Head', variable_name: 'revenue_head', value: document.getElementById('revenue_head').value, }, { display_name: 'Revenue Subhead', variable_name: 'revenue_subhead', value: document.getElementById('revenue_subhead').value, }, { display_name: 'Narration', variable_name: 'narration', value: document.getElementById('narration').value, } ] }, onSuccess: (transaction) => { const formData = new FormData(); formData.append('reference_number', transaction.reference); formData.append('user_id', 1); formData.append('revenue_head', document.getElementById('revenue_head').value); formData.append('revenue_subhead', document.getElementById('revenue_subhead').value); formData.append('firstName', document.getElementById('firstName').value); formData.append('lastName', document.getElementById('lastName').value); formData.append('phone', document.getElementById('phone').value); formData.append('email', document.getElementById('email').value); formData.append('amount', document.getElementById('amount').value); formData.append('narration', document.getElementById('narration').value); $.ajax({ url: 'include/verifyPayment.php', method: 'POST', data: formData, processData: false, contentType: false, success: function(data) { if (data === 'verified') { Swal.fire({ icon: 'success', html: 'Payment successfull.', showConfirmButton: false, allowOutsideClick: false, width: '400px', footer: `Print Receipt` }); paymentForm.reset(); } else { const Toast = Swal.mixin({ toast: true, showConfirmButton: false, timer: 10000, timerProgressBar: true, }) Toast.fire({ icon: 'warning', title: 'Payment Failed' }) } }, error: function(xhr, status, error) { console.error(xhr); }, }); }, onCancel: () => { // user closed popup alert('Do you want to discard the payment?'); } }); }, error: function(xhr, status, error) { console.error('Failed to fetch keys:', error); } }); } var remitaPaymentForm = document.getElementById('remitaPaymentForm'); remitaPaymentForm.addEventListener('submit', payWithRemita, false); function payWithRemita() { // Generate custom transaction Id function generateREF() { var ref = ''; for (var i = 0; i < 12; i++) { ref += Math.floor(Math.random() * 10); // Generate random digit from 0 to 9 } return ref; } $.ajax({ url: 'include/utils2.php', type: 'GET', success: function(data) { var rp_keys = data.trim(); var form2 = document.querySelector('#remitaPaymentForm'); var paymentEngine = RmPaymentEngine.init({ key: rp_keys, customerId: form2.querySelector('#email').value, firstName: form2.querySelector('#firstName').value, lastName: form2.querySelector('#lastName').value, email: form2.querySelector('#email').value, phoneNumber: form2.querySelector('#phone').value, amount: form2.querySelector('#amount').value, narration: form2.querySelector('#narration').value, transactionId: generateREF(), channel: 'CARD,BRANCH,TRANSFER,BANK,PAYWITHREMITA', extendedData: { // Optional field. customFields: [ { name: 'revenue_head', value: form2.querySelector('#revenue_head').value, }, { name: 'revenue_subhead', value: form2.querySelector('#revenue_subhead').value }, ], // lineItems: [ // { // lineItemsId: 'itemid1', // beneficiaryName: 'Bashir Hassan', // beneficiaryAccount: '0240190465', // bankCode: '058', // beneficiaryAmount: form2.querySelector('#amount').value * 0.7, // deductFeeFrom: '1' // }, // { // lineItemsId: 'itemid2', // beneficiaryName: 'Bashir Hassan', // beneficiaryAccount: '0697475006', // bankCode: '058', // beneficiaryAmount: form2.querySelector('#amount').value * 0.3, // deductFeeFrom: '0' // } // ] }, onSuccess: function (response) { const formData = new FormData(); formData.append('transactionId', response.paymentReference); formData.append('reference', response.paymentReference); formData.append('user_id', 1); formData.append('revenue_head', form2.querySelector('#revenue_head').value); formData.append('revenue_subhead', form2.querySelector('#revenue_subhead').value); formData.append('firstName', form2.querySelector('#firstName').value); formData.append('lastName', form2.querySelector('#lastName').value); formData.append('phone', form2.querySelector('#phone').value); formData.append('email', form2.querySelector('#email').value); formData.append('amount', form2.querySelector('#amount').value); formData.append('narration', form2.querySelector('#narration').value); var referenceNumber = response.paymentReference; $.ajax({ type: 'POST', url: 'include/verifyPayment.php', data: formData, processData: false, contentType: false, cache: false, success: function(data) { console.log(data) if (data === 'verified') { console.log(data) Swal.fire({ icon: 'success', html: 'Payment successfull.', showConfirmButton: false, allowOutsideClick: false, width: '400px', footer: `Print Receipt` }); // remitaPaymentForm.reset(); } else if (data === 'failed') { // paymentForm.reset(); const Toast = Swal.mixin({ toast: true, showConfirmButton: false, timer: 10000, timerProgressBar: true, }) Toast.fire({ icon: 'warning', title: 'Payment failed1' }) } }, error: function(xhr, status, error) { console.error(xhr); }, }); }, onClose: () => { // alert('Do you want to cancel the payment?'); console.log('closed'); } }); paymentEngine.showPaymentWidget(); }, error: function(xhr, status, error) { console.error('Failed to fetch keys:', error); } }); } var rrrPaymentForm = document.getElementById('rrrPaymentForm'); rrrPaymentForm.addEventListener('submit', payWithRrr, false); function payWithRrr() { // Generate custom transaction Id function generateREF() { var ref = ''; for (var i = 0; i < 12; i++) { ref += Math.floor(Math.random() * 10); // Generate random digit from 0 to 9 } return ref; } var form3 = document.querySelector('#rrrPaymentForm'); var rrrValue = form3.querySelector('#rrr').value; var paymentEngine = RmPaymentEngine.init({ key:'UzAwMDA0OTI1OTN8MTEwMDQ1MjA3OTM0fGEyYWM4ZmQ5ZGI5YzcwYmFhNTc2OWIyN2E3M2NjNmU3MzhhODgzMWNiZjNiMGQ1ZGQyN2NkZjk4YzY0ZTkyMDZkMDE2MGRlNjIxMTZjZDEzY2U4MmNjZjgzMmVjZGNmNGFjODZjNjcyMDM5NGQzYThjNjMxZjViYTRlNWRmZGM2', processRrr: true, transactionId: generateREF(), extendedData: { customFields: [ { name: 'rrr', value: rrrValue } ] }, onSuccess: function (response) { console.log('callback Successful Response', response); }, onError: function (response) { console.log('callback Error Response', response); }, onClose: function () { console.log('closed'); } }); paymentEngine.showPaymentWidget(); }