0.4.0 • Published 10 years ago

payjunction v0.4.0

Weekly downloads
-
License
BSD
Repository
-
Last release
10 years ago

payjunction-nodejs TravisCI

A PayJunction API client for node

Installation

$ npm install payjunction

Usage

You will need a PayJunction account in order to use this library. If you don't have one, you should sign up. If you already have an account, then you can get started by requiring this library and instantiating a PayJunctionClient object:

var PayJunctionClient = require('payjunction');

// set the connection parameters to your own values
var payjunction = new PayJunctionClient({
  username: 'YOUR-USERNAME',
  password: 'YOUR-PASSWORD',
  appkey: 'YOUR-APP-KEY',
  endpoint: 'test' // use 'live' for production
});

The API client has a property for each of the resources it supports (transactions, receipts and customers) and each property has a method for each of the supported actions. Each of the methods return an object that emits events for you to handle. The client itself uses restler under the hood, so you can read all about which events are available and callback signatures for each event in the restler documentation.

The examples here use the 'complete' event which can be used to handle both success and failure events in the same callback, but restler allows much more flexibility in this area if you need it.

Examples

Consult the PayJunction API Documentation for information about all the available API resources and actions including what parameters can be set and example responses.

Transactions

Create a transaction for a keyed credit card:

payjunction.transaction.create({
  cardNumber: 4444333322221111,
  cardExpMonth: '01',
  cardExpYear: '18',
  cardCvv: 999,
  amountBase: '99.50'
}).on('complete', function(data){
  console.log(data);
});

Create a transaction for a swiped credit card:

payjunction.transaction.create({
  cardTrack: '%B4444333322221111^First/Last^1712980100000?;4444333322221111=1712980100000?',
  amountBase: '12.00'
}).on('complete', function(data){
  console.log(data);
});

Create a transaction for an ACH transfer:

payjunction.transaction.create({
  achRoutingNumber: 104000016,
  achAccountNumber: 123456789,
  achAccountType: 'CHECKING',
  achType: 'PPD',
  amountBase: '21.00'
}).on('complete', function(data){
  console.log(data);
});

Create a new transaction from a previous transaction:

payjunction.transaction.create({
  transactionId: 74600
}).on('complete', function(data){
  console.log(data);
});

Void a transaction:

var transaction = payjunction.transaction.update(74600, {
  status: 'VOID'
}).on('complete', function(data){
  console.log(data);
});

Read a transaction:

var transaction = payjunction.transaction.read(74600).on('complete, function(data){
  console.log(data);
});

Add signature to transaction:

payjunction.transaction.addSignature({
  id: 74600,
  // JSON signature document or raw data from a capture device
  signature: '{"width":500,"height":100,"points":[[],[109,63],[109,63],[108,63],[108,62]]}'
}).on('complete', function(data){
  console.log(data);
});

receipts

Read receipt data by transaction id:

payjunction.receipt.read(74600).on('complete', function(data){
  console.log(data);
});

Sent an email receipt:

payjunction.receipt.email(74600, {
  to: 'stephen@brandedcrate.com',
  replyTo: 'foobar@anything.com'
}).on('complete', function(data){
  console.log(data);
});

customers

Create a customer:

client.customer.create({
  companyName: 'ACME, inc.',
  email: 'customer@acme.com',
  identifier: 'your-custom-id',
  firstName: 'Joe',
  jobTitle: 'Wage Slave',
  lastName: 'Schmoe',
  middleName: 'Ignatius',
  phone: '5555551212',
  phone2: '1234567890',
  website: 'acme.com'
}).on('complete', function(data){
  console.log(data);
});

Delete a customer:

client.customer.delete(1).on('complete', function(data){
  console.log(data);
});

Running Tests

To run the test suite, first run npm install to install the development dependencies:

$ npm install

Then run the tests:

$ npm test

Maintainer

This package is maintained by Branded Crate.

License

This package is released under the MIT License.

0.4.0

10 years ago

0.3.0

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago