-
-
Save rpaul-stripe/da40eeda0ca26a3580196a50e6f66762 to your computer and use it in GitHub Desktop.
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" | |
} | |
} |
Hi Ryan, I've generalized a tiny bit and made a rep: https://github.com/duke-m/stripe-express
Hope, that's okay (copyright stuff?), if not, please let me know
I've added a package.json file to the gist so that you can see the dependencies. For more details about how to configure and run it (including how to set the environment variables) you can refer to the associated tutorial on the Stripe website: https://stripe.com/docs/checkout/express
@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.
line 21, should be:
return stripe.stripe.charges.create({
Otherwise you will not get the charge
object in then(charge => xxxxx)
Gooday I did everything up there. But the stripe checkout is not coming up on the page. Please I will really appreciate any help
@fsojitra, its a ENV variable. You have to set it first.