Skip to content

Instantly share code, notes, and snippets.

@iamnasirudeen
Created January 17, 2019 09:30
Show Gist options
  • Save iamnasirudeen/92ed3c303b126badf4246b840e74b97d to your computer and use it in GitHub Desktop.
Save iamnasirudeen/92ed3c303b126badf4246b840e74b97d to your computer and use it in GitHub Desktop.
// paystack
function payWithPaystack() {
let amn = $('#amount').val();
var handler = PaystackPop.setup({
key: 'pk_test_1e3282537643fce3a4066e7fe82e89198cd5cf4a',
email: $("#email").val(),
amount: amn * 100,
currency: "NGN",
channels: ['card', 'bank'],
metadata: {
custom_fields: [{
display_name: "Mobile Number",
variable_name: "mobile_number",
value: $("#number").val()
}]
},
callback: function (response) {
verifyWithPaystack(response.reference);
},
onClose: function () {
alert('You cancelled the transaction');
}
});
handler.openIframe();
}
function verifyWithPaystack(reference) {
var secret_key = "sk_test_dafa94ebe7132f041ea4b3734f37cde248ce71c7";
$.ajax({
url: "https://api.paystack.co/transaction/verify/" + reference,
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Bearer " + secret_key);
},
type: 'GET',
dataType: 'json',
contentType: 'application/json',
processData: false
})
.done((response) => {
document.getElementById('donate').innerText = 'Please wait...';
if (response.data.status === 'success') {
alert('Transaction ' + response.data.gateway_response);
var trObject = {
fullname: $("#fullname").val(),
email: $("#email").val(),
number: $("#number").val(),
amount: $("#amount").val() * 100,
city: $("#city").val(),
state: $("#state").val()
};
logTransaction(trObject);
} else {
alert(response.data.gateway_response);
document.getElementById('donate').innerText = 'Donate';
}
})
.fail((err) => {
console.log(err);
document.getElementById('donate').innerText = 'Donate';
});
}
function logTransaction(trObject) {
// let fullname = $('#fullname').val()
// let email = $("#email").val()
// let number = $("#number").val()
// let amount = $("#amount").val()
// let city = $("#city").val()
// let state = $("#state").val()
// $.ajax({
// url: '/donate',
// method: "POST",
// data: {fullname, email, number, amount, city, state}
// })
$.post('/donate', trObject)
.done(() => {
alert("Thank you for donating!");
document.getElementById('donate').innerText = 'Donate';
})
.fail((error) => {
console.log(error);
document.getElementById('donate').innerText = 'Donate';
});
// .done(() => {
// alert("Thank you for donating!");
// document.getElementById('donate').innerText = 'Donate';
// })
// .fail((error) => {
// console.log(error);
// document.getElementById('donate').innerText = 'Donate';
// });
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment