🚀 DAY 4 OF LAUNCH WEEK:Introducing Socket Scanning for OpenVSX Extensions.Learn more →
Socket
Book a DemoInstallSign in
Socket

@opencollective/paypal-adaptive

Package Overview
Dependencies
Maintainers
0
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package was removed
Sorry, it seems this package was removed from the registry

@opencollective/paypal-adaptive

Paypal Adaptive (Payments & Accounts) SDK in node.js

unpublished
latest
Source
npmnpm
Version
2.0.0
Version published
Maintainers
0
Created
Source

Adaptive Payments and Adaptive Accounts SDK

Node.js sdk for Paypal Adaptive Payments and Paypal Adaptive Accounts APIs. Forked from https://github.com/Ideame/paypal-adaptive-sdk-nodejs and updated with Typescript + security fixes. Backward compatible with the original sdk.

Usage

  • Install with:

npm install --save-exact @opencollective/paypal-adaptive

  • Initialize the sdk with your Paypal credentials.
import Paypal from '@opencollective/paypal-adaptive';

var paypalSdk = new Paypal({
  userId: 'userId',
  password: 'password',
  signature: 'signature',
  sandbox: true, //defaults to false
});
  • Call to sdk methods or to the generic method callApi. If you get an error, you can check the response too for better error handling.
const requestData = { payKey: 'AP-1234567890' };

paypalSdk.callApi('AdaptivePayments/PaymentDetails', requestData, function (err, response) {
  if (err) {
    // You can see the error
    console.log(err);
    //And the original Paypal API response too
    console.log(response);
  } else {
    // Successful response
    console.log(response);
  }
});

API

GetPaymentOptions

var payKey = 'AP-1234567890';

paypalSdk.getPaymentOptions(payKey, function (err, response) {
  if (err) {
    console.log(err);
  } else {
    // payments options for this payKey
    console.log(response);
  }
});

PaymentDetails

// One of this params is required
// The payKey
var params = {
  payKey: 'AP-1234567890',
};
// Or the transactionId
var params = {
  transactionId: 'AP-1234567890',
};
// Or the trackingId
var params = {
  trackingId: 'AP-1234567890',
};

paypalSdk.paymentDetails(params, function (err, response) {
  if (err) {
    console.log(err);
  } else {
    // payments details for this payKey, transactionId or trackingId
    console.log(response);
  }
});

Pay

var payload = {
  requestEnvelope: {
    errorLanguage: 'en_US',
  },
  actionType: 'PAY',
  currencyCode: 'USD',
  feesPayer: 'EACHRECEIVER',
  memo: 'Chained payment example',
  cancelUrl: 'http://test.com/cancel',
  returnUrl: 'http://test.com/success',
  receiverList: {
    receiver: [
      {
        email: 'primary@test.com',
        amount: '100.00',
        primary: 'true',
      },
      {
        email: 'secondary@test.com',
        amount: '10.00',
        primary: 'false',
      },
    ],
  },
};

paypalSdk.pay(payload, function (err, response) {
  if (err) {
    console.log(err);
  } else {
    // Response will have the original Paypal API response
    console.log(response);
    // But also a paymentApprovalUrl, so you can redirect the sender to checkout easily
    console.log('Redirect to %s', response.paymentApprovalUrl);
  }
});

Preapproval

var payload = {
  currencyCode: 'USD',
  startingDate: new Date().toISOString(),
  endingDate: new Date('2020-01-01').toISOString(),
  returnUrl: 'http://your-website.com',
  cancelUrl: 'http://your-website.com',
  ipnNotificationUrl: 'http://your-ipn-listener.com',
  maxNumberOfPayments: 1,
  displayMaxTotalAmount: true,
  maxTotalAmountOfAllPayments: '100.00',
  requestEnvelope: {
    errorLanguage: 'en_US',
  },
};

paypalSdk.preapproval(payload, function (err, response) {
  if (err) {
    console.log(err);
  } else {
    // Response will have the original Paypal API response
    console.log(response);
    // But also a preapprovalUrl, so you can redirect the sender to approve the payment easily
    console.log('Redirect to %s', response.preapprovalUrl);
  }
});

Note: The other API methods has default behavior by now: you send a payload and obtains the Paypal original response.

var payload = {
  requestEnvelope: {
    errorLanguage: 'en_US',
  },
  // another data required by API method
};

var callback = function (err, response) {
  if (err) {
    // Handle error
    console.log(err);
  } else {
    // Paypal response
    console.log(response);
  }
};

// For Adaptive Payments
paypalSdk.cancelPreapproval(payload, callback);

paypalSdk.convertCurrency(payload, callback);

paypalSdk.executePayment(payload, callback);

paypalSdk.getFundingPlans(payload, callback);

paypalSdk.getShippingAddresses(payload, callback);

paypalSdk.preapprovalDetails(payload, callback);

paypalSdk.setPaymentOptions(payload, callback);

// For Adaptive Accounts
paypalSdk.addBankAccount(payload, callback);

paypalSdk.addPaymentCard(payload, callback);

paypalSdk.checkComplianceStatus(payload, callback);

paypalSdk.createAccount(payload, callback);
// To use this method you can set X-PAYPAL-SANDBOX-EMAIL-ADDRESS and X-PAYPAL-DEVICE-IPADDRESS headers passing 'sandboxEmailAddress' and 'deviceIpAddress' properties on config

paypalSdk.getUserAgreement(payload, callback);

paypalSdk.getVerifiedStatus(payload, callback);

paypalSdk.setFundingSourceConfirmed(payload, callback);

paypalSdk.updateComplianceStatus(payload, callback);

Development

Tests

Tests can be ran with:

npm test

Release

To release a new version, you need to:

  • Increment version with npm version patch (or minor or major)
  • Push changes to the repository
  • Publish the new version to npm with npm publish

Reference

https://developer.paypal.com/api/nvp-soap/adaptive-platform/

License

Copyright (c) 2024 Open Collective. Copyright (c) 2014 Gonzalo Aguirre. See the LICENSE file for license rights and limitations (MIT).

Keywords

api

FAQs

Package last updated on 03 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts