File: /home4/saigurum/public_html/wildharvest.in/admin/stripe/script.js
// A reference to Stripe.js
var stripe;
var orderData = {
name: name,
address_line1: line1,
amount: amount,
postal_code: postal_code,
city: city,
order_id:order_id,
};
var order_id = order_id;
// Disable the button until we have Stripe set up on the page
document.querySelector("button").disabled = true;
fetch("create-payment.php", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(orderData)
})
.then(function (result) {
return result.json();
})
.then(function (data) {
return setupElements(data);
})
.then(function ({ stripe, card, clientSecret }) {
document.querySelector("button").disabled = false;
// Handle form submission.
var form = document.getElementById("payment-form");
form.addEventListener("submit", function (event) {
event.preventDefault();
// Initiate payment when the submit button is clicked
pay(stripe, card, clientSecret);
});
});
// Set up Stripe.js and Elements to use in checkout form
var setupElements = function (data) {
stripe = Stripe(data.publishableKey);
var elements = stripe.elements();
var style = {
base: {
color: "#32325d",
fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
fontSmoothing: "antialiased",
fontSize: "16px",
"::placeholder": {
color: "#aab7c4"
}
},
invalid: {
color: "#fa755a",
iconColor: "#fa755a"
}
};
var card = elements.create("card", { style: style });
card.mount("#card-element");
return {
stripe: stripe,
card: card,
clientSecret: data.clientSecret
};
};
/*
* Calls stripe.confirmCardPayment which creates a pop-up modal to
* prompt the user to enter extra authentication details without leaving your page
*/
var pay = function (stripe, card, clientSecret) {
changeLoadingState(true);
// Initiate the payment.
// If authentication is required, confirmCardPayment will automatically display a modal
stripe
.confirmCardPayment(clientSecret, { payment_method: { card: card } })
.then(function (result) {
if (result.error) {
// Show error to your customer
showError(result.error.message);
} else {
// The payment has been processed!
orderComplete(clientSecret);
}
});
};
/* ------- Post-payment helpers ------- */
/* Shows a success / error message when the payment is complete */
var orderComplete = function (clientSecret) {
stripe.retrievePaymentIntent(clientSecret).then(function (result) {
var paymentIntent = result.paymentIntent;
paymentIntentJson = JSON.stringify(paymentIntent, null, 2);
var cookie = [name, '=', JSON.stringify(paymentIntent), '&order_id=', order_id, '; domain=.', window.location.host.toString(), '; path=/;'].join("");
document.cookie = cookie;
window.location = "https://newekart.wrteam.in/stripe/payment-process.php";
changeLoadingState(false);
});
};
var showError = function (errorMsgText) {
changeLoadingState(false);
var errorMsg = document.querySelector(".sr-field-error");
errorMsg.textContent = errorMsgText;
setTimeout(function () {
errorMsg.textContent = "";
}, 4000);
};
// Show a spinner on payment submission
var changeLoadingState = function (isLoading) {
if (isLoading) {
document.querySelector("button").disabled = true;
document.querySelector("#spinner").classList.remove("hidden");
document.querySelector("#button-text").classList.add("hidden");
} else {
document.querySelector("button").disabled = false;
document.querySelector("#spinner").classList.add("hidden");
document.querySelector("#button-text").classList.remove("hidden");
}
};