5. require('dotenv').config();
const {send, json} = require('micro');
const post = require('./post');
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
module.exports = post(async (req, res) => {
const data = await json(req);
stripe.charges.create(data, (err, resp) => {
if (err) {
send(res, 400, {message: `Charge could not be created.`})
}
else {
send(res, 200, {message: `Charge created.`})
}
})
})
6. module.exports = exports = function (fn) {
return (req, res) => {
res.setHeader('Access-Control-Request-Method', 'POST,
GET')
res.setHeader("Access-Control-Allow-Credentials",
"true");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-
Requested-With, Content-Type, Accept, Authorization");
// set this with your own URL
res.setHeader('Access-Control-Allow-Origin',
process.env.ORIGIN);
…
7. const {method} = req
if (method === 'OPTIONS') {
return {}
}
if (method === 'GET') {
return {message: 'The Stripe charge server is up and
running!', timestamp: new Date().toISOString()}
}
if (method === 'POST') {
return fn(req, res)
}
else {
res.writeHead(405)
res.end('Method Not Allowed')
return
}
}