paypal-nvp-api
Node.js wrapper for the Paypal Name-Value Pair — NVP
Usage
Import module and init an instance with given config:
const Paypal = ; const config = mode: 'sandbox' // or 'live' username: 'someone.itravellocal.com' password: 'DYKNJZZE42ASN699' signature: 'A0aEilikhBmwfK.NlduDjCbsdgXdA8VDPMDksDhGsHmLQECu80Qtru09' const paypal = ;
Build query and send to Paypal server:
paypal;
The 'result' looks like this:
L_AMT0: '71084.27' L_CURRENCYCODE0: 'USD' TIMESTAMP: '2016-03-18T09:48:16Z' CORRELATIONID: 'e3de6137ce65c' ACK: 'Success' VERSION: '124' BUILD: '18316154'
Another example with "SetExpressCheckout" operation:
const query = 'PAYMENTREQUEST_0_AMT': '20.00' 'PAYMENTREQUEST_0_CURRENCYCODE': 'USD' 'PAYMENTREQUEST_0_PAYMENTACTION': 'Sale' 'RETURNURL': 'http://google.com/test/onreturn' 'CANCELURL': 'http://google.com/test/oncancel'; paypal;
In this case, it returns something like this:
TOKEN: 'EC-5Y171147E8077933D' TIMESTAMP: '2016-03-18T09:58:38Z' CORRELATIONID: 'e8289e4235624' ACK: 'Success' VERSION: '124' BUILD: '18316154'
APIs
request(String method, Object query)
In which:
- method: one of API operations Paypal NVP supports, such as SetExpressCheckout, DoCapture, SetCustomerBillingAgreement, etc.
- query: a set of parameters you want to send to Paypal API endpoint, relying on which method is being used.
For more info:
formatCurrency(Number amount)
You can use this util to quickly convert a number to standard currency format that fits Paypal convention.
Return: a string in the format of X,XXX,XX.XX (used in United States, Canada).
paypal; // = '123,456.00'paypal; // = '12,345.00'paypal; // = '1,234.00'paypal; // = '12.00'paypal; // = '12.50'paypal; // = '12.00'
Test
git clone https://github.com/ndaidong/paypal-nvp-api.gitcd paypal-nvp-apinpm installnpm test
License
The MIT License (MIT)