jamztang of MagicSketch
12/23/2016 - 3:52 AM

Handle Stripe Payment via Hook.io

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));
  */
  
};