Skip to content

Instantly share code, notes, and snippets.

@rpaul-stripe
Last active July 11, 2020 01:40
Show Gist options
  • Save rpaul-stripe/da40eeda0ca26a3580196a50e6f66762 to your computer and use it in GitHub Desktop.
Save rpaul-stripe/da40eeda0ca26a3580196a50e6f66762 to your computer and use it in GitHub Desktop.
Stripe Checkout Node.js Express Example
const keyPublishable = process.env.PUBLISHABLE_KEY;
const keySecret = process.env.SECRET_KEY;
const app = require("express")();
const stripe = require("stripe")(keySecret);
app.set("view engine", "pug");
app.use(require("body-parser").urlencoded({extended: false}));
app.get("/", (req, res) =>
res.render("index.pug", {keyPublishable}));
app.post("/charge", (req, res) => {
let amount = 500;
stripe.customers.create({
email: req.body.stripeEmail,
card: req.body.stripeToken
})
.then(customer =>
stripe.charges.create({
amount,
description: "Sample Charge",
currency: "usd",
customer: customer.id
}))
.catch(err => console.log("Error:", err))
.then(charge => res.render("charge.pug"));
});
app.listen(4567);
h2 You successfully paid <strong>$5.00</strong>!
html
body
form(action="/charge", method="post")
article
label Amount: $5.00
script(
src="//checkout.stripe.com/v2/checkout.js",
class="stripe-button",
data-key=keyPublishable,
data-locale="auto",
data-description="Sample Charge",
data-amount="500")
{
"dependencies": {
"body-parser": "^1.17.2",
"express": "^4.15.4",
"pug": "^2.0.0-rc.3",
"stripe": "^4.24.1"
}
}
@rpaul-stripe
Copy link
Author

@duke-m: totally ok! I consider the example here public domain, you can do as you please with it including extending and distributing it under whatever terms you want.

@callmewhy
Copy link

callmewhy commented Sep 19, 2017

line 21, should be:

return stripe.stripe.charges.create({

Otherwise you will not get the charge object in then(charge => xxxxx)

@olufekosamuel
Copy link

Gooday I did everything up there. But the stripe checkout is not coming up on the page. Please I will really appreciate any help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment