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