node-payments
Version:
node-payments is a express based facade to multiple payment services.
82 lines (63 loc) • 1.84 kB
text/coffeescript
config = require( "./config" )
module.exports = class RedirServer extends require( "./basic" )
constructor: ( , express )->
super()
if express?.engines?
# reuse an existing express server
# proxy the listen method to get the port
_listen = express.listen
express.listen = ( port, host )=>
= port
_listen.apply( express, arguments )
return
= express
else
# create a express server
return
createExpress: =>
= config.get( "serverDefaultPort" )
= config.get( "serverDefaultHost" )
try
express = require( "express" )
catch _err
if _err.code is "MODULE_NOT_FOUND"
return
= express()
.set( "title", "node-payment" )
.use( express.logger( "dev" ) )
.use( express.urlencoded() )
.use( express.json() )
.listen( )
return
auth: ( req, res, next )=>
next()
return
createRoutes: =>
_urls = .getUrls()
"redir-urls", _urls
.get _urls.success, ,
.get _urls.cancel, ,
return
onSuccess: ( req, res )=>
.onSuccessReturn req.params.pid, req.query.token, req.query.PayerID, ( err, payment )=>
if err
res.send( err, 500 )
return
.emit( "approved", res, payment )
return
return
onCancel: ( req, res )=>
.onCancelReturn req.params.pid, ( err, payment )=>
if err
res.send( err, 500 )
return
.emit( "cancel", res, payment )
return
return
ERRORS: =>
super,
"EMISSINGEXPRESS": "To use a internal express you have to run `npm install express`. It's not a hard dependency to reduce node_module size for the usually used integrated version."