Node.js wrapper for the Paypal Name-Value Pair — NVP
Import module and init an instance with given config:
const Paypal = require('paypal-nvp-api');
const config = {
mode: 'sandbox', // or 'live'
username: 'someone.itravellocal.com',
password: 'DYKNJZZE42ASN699',
signature: 'A0aEilikhBmwfK.NlduDjCbsdgXdA8VDPMDksDhGsHmLQECu80Qtru09'
}
const paypal = Paypal(config);
Build query and send to Paypal server:
paypal.request('GetBalance', {}).then((result) => {
console.log(result);
}).catch((err) => {
console.trace(err);
});
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.request('SetExpressCheckout', query).then((result) => {
console.log(result);
}).catch((err) => {
console.trace(err);
});
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'
}
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:
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.formatCurrency(123456); // = '123,456.00'
paypal.formatCurrency(12345); // = '12,345.00'
paypal.formatCurrency(1234); // = '1,234.00'
paypal.formatCurrency(12); // = '12.00'
paypal.formatCurrency(12.5); // = '12.50'
paypal.formatCurrency('12.00'); // = '12.00'
git clone https://github.com/ndaidong/paypal-nvp-api.git
cd paypal-nvp-api
npm install
npm test
The MIT License (MIT)