Adds PayPal SDK sample to the API controller
This commit is contained in:
		@@ -11,6 +11,7 @@ var tumblr = require('tumblr.js');
 | 
				
			|||||||
var foursquare = require('node-foursquare')({ secrets: secrets.foursquare });
 | 
					var foursquare = require('node-foursquare')({ secrets: secrets.foursquare });
 | 
				
			||||||
var Github = require('github-api');
 | 
					var Github = require('github-api');
 | 
				
			||||||
var Twit = require('twit');
 | 
					var Twit = require('twit');
 | 
				
			||||||
 | 
					var paypal = require('paypal-rest-sdk');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * GET /api
 | 
					 * GET /api
 | 
				
			||||||
@@ -254,3 +255,77 @@ exports.getTwitter = function(req, res, next) {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * GET /api/paypal
 | 
				
			||||||
 | 
					 * PayPal SDK example
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					exports.getPayPal = function(req, res, next) {
 | 
				
			||||||
 | 
					  paypal.configure(secrets.paypal);
 | 
				
			||||||
 | 
					  var payment_details = {
 | 
				
			||||||
 | 
					    'intent': 'sale',
 | 
				
			||||||
 | 
					    'payer': {
 | 
				
			||||||
 | 
					      'payment_method': 'paypal'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    'redirect_urls': {
 | 
				
			||||||
 | 
					      'return_url': secrets.paypal.returnUrl,
 | 
				
			||||||
 | 
					      'cancel_url': secrets.paypal.cancelUrl
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    'transactions': [{
 | 
				
			||||||
 | 
					      'description': 'Node.js Boilerplate',
 | 
				
			||||||
 | 
					      'amount': {
 | 
				
			||||||
 | 
					        'currency': 'USD',
 | 
				
			||||||
 | 
					        'total': '2.99'
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }]
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  paypal.payment.create(payment_details, function (error, payment) {
 | 
				
			||||||
 | 
					    if(error){
 | 
				
			||||||
 | 
					      console.log(error);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      req.session.payment_id = payment.id;
 | 
				
			||||||
 | 
					      var links = payment.links;
 | 
				
			||||||
 | 
					      for (var i = 0; i < links.length; i++) {
 | 
				
			||||||
 | 
					        if (links[i].rel === 'approval_url') {
 | 
				
			||||||
 | 
					          res.render('api/paypal', {
 | 
				
			||||||
 | 
					            approval_url: links[i].href
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * GET /api/paypal/success
 | 
				
			||||||
 | 
					 * PayPal SDK example
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					exports.getPayPalSuccess = function(req, res, next) {
 | 
				
			||||||
 | 
					  var payment_id = req.session.payment_id;
 | 
				
			||||||
 | 
					  var payment_details = { 'payer_id': req.query.PayerID };
 | 
				
			||||||
 | 
					  paypal.payment.execute(payment_id, payment_details, function(error, payment){
 | 
				
			||||||
 | 
					    if(error){
 | 
				
			||||||
 | 
					      res.render('api/paypal', {
 | 
				
			||||||
 | 
					        result: true,
 | 
				
			||||||
 | 
					        success: false
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      res.render('api/paypal', {
 | 
				
			||||||
 | 
					        result: true,
 | 
				
			||||||
 | 
					        success: true
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * GET /api/paypal/cancel
 | 
				
			||||||
 | 
					 * PayPal SDK example
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					exports.getPayPalCancel = function(req, res, next) {
 | 
				
			||||||
 | 
					  req.session.payment_id = null;
 | 
				
			||||||
 | 
					  res.render('api/paypal', {
 | 
				
			||||||
 | 
					    result: true,
 | 
				
			||||||
 | 
					    canceled: true
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
		Reference in New Issue
	
	Block a user