JSPM

pin-subscriptions-node

1.2.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q32311F

A pin subscriptions (formerly Spreedly) client library for Node.js

Package Exports

  • pin-subscriptions-node

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pin-subscriptions-node) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

pin-subscriptions-node

This is a node.js module for http://https://subs.pinpayments.com Payments API. It aims to be compatible with API v4 - https://https://subs.pinpayments.com/manual/integration-reference/.

Installation

npm install pin-subscriptions-node

Usage

var Pin = require("pin-subscriptions-node").Pin;
…
var cli = new Pin( site_name, api_key );

Handling errors

Every operation that takes a callback, except of

- getSubscriptionPlans( callback )
- getTransactions( since, callback )
- testSite_deleteSubscribers( callback )
- testSite_deleteSubscriber( subscriber_id, callback )

calls the callback with max two arguments. First argument is always an error object. Every error object contains at least a code field and may but not must contain a text description of the error under a message field.

What's different from the API

There is 1 implementation detail that differs from the original Payments API.

  • fields use _ instead of - ; for example: customer_id instead of customer-id ; these are automatically translated to the correct format while constructing the XML ; this was implemented to simplify properties access

Sample app

var Pin = require("pin-subscriptions-node").Pin
    util = require("util");

var cli = new Pin(site_name, api_key);
var subscriber = { customer_id: 100, screen_name: "some name", email: "some@email.com" };
cli.getSubscriptionPlans( function(result) {
    var plans = result;
    cli.createSubscriber( subscriber, function( error, result ) {
        if ( !error ) {
            cli.raiseInvoice( plans[0].id, subscriber, function( error, invoice ) {
                if ( !error ) {
                    cli.payWithCreditCard( invoice.token, { … }, { … }, function( error, invoice ) {
                        if ( !error ) {
                            util.puts("Payment went through.");
                        } else {
                            util.puts("Error while putting a payment through: " + error.code + " :: " + error.message);
                        }
                    });
                }
            });
        }
    } );
} );

License

Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0