ukrocks007 / ondc-node

NPM Package to integrate ONDC into Node.js backend

Home Page:https://www.npmjs.com/package/ondc-node

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ondc-node

This library can be used to integrate ONDC in JavaScript based applications.

Package is developed in TypeScript and will work with Node.Js & other JavaScript based stacks.

Introduction πŸ‘‹

ONDC stands for Open Network for Digital Commernce.

ONDC is an Open Network which makes it easy for any buyer and seller to engage in a transactions.

LOGO

How to install? πŸ‘€

npm i ondc-node --save

☝️ Using to call APIs

Initialization

const ondc = require('ondc-node');
const instance = new ondc.ONDC({
    host: "http://localhost:5000",
    bapId: "bap.com",
    bapUri: "https://bap.com/beckn",
    bppId: "bpp.com",
    bppUri: "https://bpp.com/beckn",
    country: "IND",
    city: "std:080",
    ttl: "P1M"
});

Search an Item

const response = await instance.search({
        "item": {
            "descriptor": {
                "name": "ABC Aata"
            }
        },
        "fulfillment": {
            "end": {
                "location": {
                    "gps": "12.4535445,77.9283792"
                }
            }
        }
    })

✌️ Using as Express Middleware

const ONDC = require('ondc-node');
const express = require("express");

const app = express();
app.use(express.json());

app.use(ONDC.Middleware({"on_search": onSearchHandler, "init": initHandler}));

🀩 Effortless Authorization πŸ” with ONDC

You can use ondc.createAuthorizationHeader function to create Authorization header signature.

    const ondc = require('ondc-node');
    // Private key & Public keys are must for Auth to work
    const instance = new ondc.ONDC({
        host: "http://localhost:5000",
        bapId: "bap.com",
        bapUri: "https://bap.com/beckn",
        bppId: "bpp.com",
        bppUri: "https://bpp.com/beckn",
        country: "IND",
        city: "std:080",
        ttl: "P1M",
        publicKey: "<Public Key>",
        privateKey: "<Private Key>",
        uniqueKey: "dev.test.ondc-node.com",
        subscriberId: "<Gateway Address>",
    });

    let body = {
        "item": {
            "descriptor": {
                "name": "ABC Aata"
            }
        },
        "fulfillment": {
            "end": {
                "location": {
                    "gps": "12.4535445,77.9283792"
                }
            }
        }
    };
    // apiKey is sent in Authorization Header
    instance.apiKey = await instance.createAuthorizationHeader(body);
    const response = await instance.search(body)

Next function is ondc.verifyHeader which is used to verify the Authorization header signature with senders Public Keys.

You can fetch the public key from Gateway using /lookup call.

    const publicKey = "<Public key of Sender>";

    // verifyHeader return true/false
    let output = await ondc.verifyHeader(req.header.Authorization, {
        signing_public_key: publicKey
    }, req.body);

    console.log(`output: ${output}`);

Reference πŸ“š

Functions Covered πŸš€

Async Function Callback Function Other Function
search on_search get_cancellation_reasons
select on_select cancellation_reasons
init on_init get_return_reasons
confirm on_confirm return_reasons
status on_status get_rating_categories
track on_track rating_categories
cancel on_cancel get_feedback_categories
update on_update feedback_categories
rating on_rating get_feedback_form
support on_support feedback_form

Content

About

NPM Package to integrate ONDC into Node.js backend

https://www.npmjs.com/package/ondc-node

License:Apache License 2.0


Languages

Language:TypeScript 98.1%Language:JavaScript 1.9%