OpenPAYGO is an Open Source ecosystem to enable pay-as-you-go functionality in new devices and products.
This repository contains the JavaScript implementions of different OpenPAYGO technologies to run on your server or device.
Server-side tasks include
- generating OpenPAYGO tokens
- decoding OpenPAYGO metrics payloads
Device side tasks
- decoding OpenPAYGO tokens
- generating OpenPAYGO metrics payloads
Install via NPM (browser/nodejs)
npm i openpaygo
Generate normal or extended tokens
// initialize token encoder
const encoder = new require("openpaygo").Encoder()
// generate normal or extended token using generateToken function
const { finalToken, newCount } = encoder.generateToken({
tokenType: 1,
secretKeyHex: "bc41ec9530f6dac86b1a29ab82edc5fb",
count: 3,
startingCode: 516959010,
restrictDigitSet: false,
value: 1,
extendToken: false,
})
console.log("generated token ", finalToken)
console.log("next token count ", newCount)
Decode tokens using token decoder
// initialize token decoder
const decoder = new require("openpaygo").Decoder()
// decord token (type, value, count, updated_counts) using decodeToken function
const { value, tokenType, count, updatedCounts } = decoder.decodeToken({
token: "380589011",
secretKeyHex: "bc41ec9530f6dac86b1a29ab82edc5fb",
count: 3,
usedCounts: [],
startingCode: 516959010,
restrictedDigitSet: false,
})
console.log(value) // decoded token value
console.log(count) // decoded token count
console.log(tokenType) // decoded token type
console.log(updatedCounts) // decoder token update count
OpenPAYGO documentation is hosted on https://enaccess.github.io/OpenPAYGO-docs/.
The OpenPAYGO ecosystem offers a range of feautres to implement pay-as-you-go services. These features are implemented in different programming language libraries individually. Not all libraries have implemented the full range of features yet.
The OpenPAYGO JavaScript library supports the following features:
Feature | Status |
---|---|
OpenPAYGO Token | ✅ (stable) |
OpenPAYGO Metrics | ❌ (not implemented) |
- OSEA Discord (
#openpaygo
channel) - EnAccess