Handle Stripe Payment via Hook.io
var stripe = require('stripe');
var url = require('url');
var querystring = require('querystring');
module.exports = function (hook) {
var req = hook.req;
var res = hook.res;
var params = hook.params;
var amount = params["amount"];
var currency = params["currency"];
var description = params["description"];
var productID = params["productID"];
var stripeToken = params["stripeToken"];
var email = params["stripeEmail"];
var origin = req.headers.origin;
var hostname = url.parse(origin).hostname
var stripeKey = hook.env[hostname + ".stripe"];
stripe(stripeKey).charges.create({
amount: amount,
currency: currency,
source: stripeToken,
description: description,
receipt_email: email,
metadata: params
}, function (error, charge) {
var status = error ? 400 : 200;
var message = error ? error.message : 'Thanks for purchasing `' + description + '`. You\'ll receive an email at your inbox (' + email + ') to download the assets very soon :)';
res.writeHead(status, { 'Content-Type': 'text/html' });
var delay = 10;
var resp = '<head><meta http-equiv="refresh" content="'+delay+';url=http://magicsketch.io/mirror/template/" /></head>';
resp += '<body>';
resp += '<h1>' + message + '</h1>';
resp += '<br>';
resp += '<p>Browser will go back to Magic Mirror Website in '+delay+' seconds...</p>';
resp += '<p><a href="javascript:window.history.go(-1);">Go back now</a></p>';
resp += '</body>'
return res.end(resp);
// return res.end('<h1>' + message + '</h1><h2>req</h2><code>' + JSON.stringify(req) + '</code><h2>params</h2><code>' + JSON.stringify(params) + '</code>');
});
/*
var dict = {
"headers": req.headers,
"method": req.method,
"url" : req.url,
"params": params
};
return res.end(JSON.stringify(dict));
*/
};