Adds PayPal SDK sample to the API controller

This commit is contained in:
Tim Messerschmidt
2014-01-27 12:22:12 -08:00
parent 12d402f8fb
commit cdb73bf261

View File

@ -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
});
};