The official Node.js client library for the Scanpay API (docs). You can always e-mail us at help@scanpay.dk, or chat with us on IRC at libera.chat #scanpay
This package works with Node.js >= 6.6. You can install the package with npm:
npm install scanpay --saveYou can then include it in your project with:
constscanpay=require('scanpay')('API key');If you do not wish to use npm, you can download the latest release and include in into your project:
constscanpay=require('lib/scanpay.js')('API key');The API documentation is available here. All methods, except handlePing, will return a Promise. Most methods accept an optional per-request object with options, here referred to as options.
Create a link to our hosted payment window (docs | example).
constorder={items: [{total: '6000 DKK'}]};scanpay.newURL(order,options).then(url=>console.log(url)).catch(err=>{/* handle errors */});Make a sequence request to pull changes from the server (docs | example).
constlocalSeq=921;scanpay.seq(localSeq,options).then(obj=>console.log(obj.changes)).catch(err=>{/* handle errors */});Handle and validate synchronization pings.
The method accepts two arguments, the body of the received ping and the X-Signature HTTP header. The method returns an object (docs | example).
try{constjson=scanpay.handlePing(body,req.headers['x-signature']);}catch(e){/* handle errors */}Create a link to our hosted payment window to create a new subscriber (docs | example).
constorder={subscriber: {ref: '5'}};scanpay.newURL(order,options).then(url=>console.log(url)).catch(err=>{/* handle errors */});Charge an amount from an existing subscriber (docs | example):
constsubscriberid=5;constorder={items: [{total: '6000 DKK'}]};scanpay.charge(subscriberid,order,options).then(res=>console.log(res)).catch(err=>{/* handle errors */});Renew the payment method for an existing subscriber (docs | example):
constsubscriberid=5;scanpay.renew(subscriberid,{},options).then(url=>console.log(url)).catch(err=>{/* handle errors */});All methods, except handlePing, accept an optional per-request options object. You can use it to:
- Set the API key for this request (example)
- Set HTTP headers, e.g. the highly recommended
X-Cardholder-IP(example) - Change the hostname to use our test environment
api.test.scanpay.dk(example)
Nodejs compatibility table for this library.
| Feature | Version |
|---|---|
| crypto.timingSafeEqual | 6.6 |
| Arrow functions | 6.0 |
| Default function parameters | 6.0 |
| Array.isArray | 6.0 |
| Buffer.from | 5.10 |
Everything in this repository is licensed under the MIT license.