Code that worked for me (should contain a script for jQuery in the header without a footer)
<script src="https://checkout.stripe.com/checkout.js"></script>
<form id="myForm">
<input type="hidden" id="message" value="Hello, world"/></p>
<input type="hidden" id="amount" value="10.00" /></p>
<p><button type="submit" id="customButton">Pay</button></p>
</form>
<script>
var handler = StripeCheckout.configure({
key: '<YOUR PUBLIC KEY>',
image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
token: function(token) {
var myData = {
token: token.id,
email: token.email,
amount: Math.round($("#amount").val() * 100),
message: $("#message").val()
};
$.post("<YOUR ROUTE TO charge.php", myData,function (data) {
$("#myForm").hide();
$(".results").html("Your charge was successful");
}).fail(function () {
$(".results").html("I'm sorry something went wrong");
})
}
});
$('#myForm').on('submit', function (e) {
handler.open({
name: 'Stripe.com',
email: 'test@test.com',
description: '2 widgets',
amount: Math.round($("#amount").val() * 100)
});
e.preventDefault();
});
$(window).on('popstate', function () {
handler.close();
});
</script>
Hope this helps someone experiencing the same issue.
source
share