node-payments
Version:
node-payments is a express based facade to multiple payment services.
84 lines (60 loc) • 1.88 kB
JavaScript
/*
To test this example run `node examples/express.js` and then call
http://localhost:8888/pay/paypal?amount=0.01&desc=Cup%20of%20coffee&userid=123
*/
(function() {
var Payments, app, express, fs, path, pymts, _configTest, _port;
fs = require("fs");
path = require("path");
express = require("express");
app = express();
app.use(express.bodyParser());
app.use(express.logger("dev"));
_configTest = JSON.parse(fs.readFileSync(path.resolve(__dirname + "/../config_test.json")));
_configTest.express = app;
Payments = require("../.");
_configTest.paymentStore = new Payments.RedisHashStore();
pymts = new Payments(_configTest);
pymts.on("approved", function(res, payment) {
res.send("Thank you!");
});
pymts.on("cancel", function(res, payment) {
res.send("What a pity!");
});
pymts.on("verfied", function(payment) {
console.log("PAYMENT VERIFIED\n", payment.valueOf());
});
pymts.on("payment", function(type, payment) {
console.log("PAYMENT ACTION: " + type + "\n", payment.valueOf());
});
app.get("/pay/:provider", function(req, res) {
var _amount, _desc, _provider, _uid;
_provider = req.params.provider;
_amount = req.query.amount;
_desc = req.query.desc;
_uid = req.query.userid;
pymts.provider(_provider, function(err, provider) {
var payment;
if (err) {
res.send("Unkown provider", 500);
return;
}
payment = provider.create();
payment.set({
amount: _amount,
desc: _desc,
user_id: _uid
});
payment.exec(function(err, link) {
if (err) {
res.send("Cannot send payment: " + (JSON.stringify(err)), 500);
return;
}
res.redirect(link);
});
});
});
_port = 8888;
console.log("listen to " + _port);
app.listen(_port);
}).call(this);