Last active
March 7, 2018 16:44
-
-
Save scottopolis/a24e9791472434a94c2567c4834fe1bc to your computer and use it in GitHub Desktop.
Create Stripe Payment for WooCommerce API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<body> | |
<!-- | |
* See tutorial on scottbolinger.com | |
* 1. add your publishable key and website url below | |
* 2. install a plugin that adds the payment endpoint, such as https://github.com/scottopolis/sb-app-integration | |
* 3. create a pending order in WooCommerce before sending the payment, because you need the order ID woocommerce.github.io/woocommerce-rest-api-docs/#create-an-order | |
--> | |
<label for="card-element">Card</label> | |
<div id="card-element"></div> | |
<button onclick="submitForm()"">Submit</button> | |
<script src="https://js.stripe.com/v3/"></script> | |
<script> | |
// add your publishable key https://stripe.com/docs/stripe-js/reference#including-stripejs | |
var stripe = Stripe('pk_test_XXXXXXXXXXXXXXXX'); | |
// create the card inputs https://stripe.com/docs/stripe-js/reference#stripe-elements | |
var elements = stripe.elements(); | |
var card = elements.create('card'); | |
card.mount('#card-element'); | |
// get a token when the form is submitted https://stripe.com/docs/stripe-js/reference#stripe-create-token | |
function submitForm() { | |
// TODO: Create the order and get back the order ID http://woocommerce.github.io/woocommerce-rest-api-docs/#create-an-orderTODO: create the order and get back the order ID | |
var order_id = 1832; | |
stripe.createToken(card).then(function(result) { | |
console.log(result) | |
if( result.token ) { | |
sendTokenToServer( result.token.id, order_id ); | |
} else { | |
console.log( "There was a problem", result ); | |
} | |
}); | |
} | |
function sendTokenToServer( token, order_id ) { | |
var url = 'https://appdev.local/wp-json/wc/v2/stripe_payment'; | |
var formData = new FormData(); | |
formData.append("order_id", order_id); | |
formData.append("payment_token", token); | |
formData.append("payment_method", 'stripe'); | |
var request = new XMLHttpRequest(); | |
request.open("POST", url); | |
request.send(formData); | |
request.onload = (e) => { | |
if (request.readyState === 4) { | |
if (request.status === 200) { | |
console.log(request) | |
alert( request.responseText ); | |
} else { | |
console.log("Error", request) | |
alert( request.responseText ); | |
} | |
} | |
}; | |
} | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment