node-payments
Version:
node-payments is a express based facade to multiple payment services.
66 lines (55 loc) • 1.51 kB
text/coffeescript
config = require( "../../lib/config" )
module.exports = class PaypalPayment extends require( "../_base/payment" )
type: "paypalrest"
constructor: ->
= false
= require('paypal-rest-sdk')
super
return
setAuthentication: ( cb )=>
if
cb( null, true )
return
= true
.configure( config.get( "paypal" ) )
cb( null, true )
return
requestProvider: ( auth, cb )=>
# construct paypal JSON object
_urls =
_oPP =
intent: "sale"
payer:
payment_method: "paypal"
transactions: [
amount:
total:
currency:
description:
]
redirect_urls:
return_url: _urls.success
cancel_url: _urls.cancel
"send paypal payment", JSON.stringify( _oPP, true, 4 )
.payment.create _oPP, ( err, response )=>
if err
cb( err )
return
"PAYMENT RESPONSE", JSON.stringify( response, true, 4 )
"paypal payment links", response.links
# get the regular link
for link in response.links when link.rel is "approval_url"
cb( null, response.id, link.href )
return
cb( null, response.id, response.links )
return
return
executeProvider: ( token, auth, cb )=>
.payment.execute , { payer_id: }, {}, ( err, response )=>
if err
cb( err )
return
"EXEC RESPONSE", JSON.stringify( response, true, 4 )
cb( null, response.state.toUpperCase(), response )
return
return