The ZRU NodeJS SDK provides seamless integration with the ZRU API, enabling developers to easily manage transactions, products, plans, taxes, and notifications in their applications.
Install the SDK using npm:
npm install --save zru
- ES5, ES6, ES8, and TypeScript: The SDK is compatible with modern JavaScript standards and includes support for
async/await
, Promises, and traditional callbacks. - JSON Responses: All API responses are returned in JSON format.
- Promise and Callback Support: All methods support both Promises and Callbacks, providing flexibility in how you handle API responses.
const zru = require('zru')('PUBLIC_KEY', 'SECRET_KEY');
zru.transaction.create({
currency: "EUR",
products: [{
amount: 1,
product_id: "PRODUCT-ID"
}]
}, function (error, transaction) {
if (error) {
console.error('Error:', error);
return;
}
console.log('Transaction:', transaction);
console.log('Transaction Token:', transaction.token); // Transaction token
});
Alternatively, create a transaction with product details:
zru.transaction.create({
currency: "EUR",
products: [{
amount: 1,
product: {
name: "Product",
price: 5
}
}]
}, function (error, transaction) {
if (error) {
console.error('Error:', error);
return;
}
console.log('Transaction:', transaction);
console.log('Transaction Token:', transaction.token);
});
zru.plan.list(function (error, planPaginator) {
if (error) {
console.error('Error:', error);
return;
}
console.log('Plans:', planPaginator.results); // List of plans
console.log('Total Plans:', planPaginator.count); // Total number of plans
console.log('Next Page URL:', planPaginator.next); // URL for next page
});
zru.product.get("PRODUCT-ID", function (error, product) {
if (error) {
console.error('Error:', error);
return;
}
console.log('Product:', product);
});
zru.product.change("PRODUCT-ID", { price: 10 }, function (error, product) {
if (error) {
console.error('Error:', error);
return;
}
console.log('Updated Product:', product);
});
zru.tax.create({
name: "Tax",
percent: 5
}, function (error, tax) {
if (error) {
console.error('Error:', error);
return;
}
console.log('Created Tax:', tax);
});
zru.tax.delete("TAX-ID", function (error, tax) {
if (error) {
console.error('Error:', error);
return;
}
console.log('Deleted Tax:', tax);
});
const event = zru.notification.constructEvent(
request.rawBody, zru // Raw JSON request received from ZRU
);
console.log('Event Status:', event.status);
console.log('Event Type:', event.type);
console.log('Event Signature:', event.checkSignature());