[UNOFFICIAL] TypeScript based Node.js SDK for Razorpay API.
Read up here for getting started and understanding the payment flow with Razorpay: https://docs.razorpay.com/docs/getting-started
npm i razorpay-typescript
Documentation of Razorpay's API and their usage is available at https://docs.razorpay.com
Introducing RazorWebhook
, a wrapper class for simplifying Webhooks actions for Razorpay Webhook Payload. You can now focus more on your core logic than managing event types.
// --------------------
// Webhooks
// --------------------
const razorpayPayload: IRazorWebHookPayload = {
"entity":"event",
"account_id":"acc_BFQ7uQEaa7j2z7",
"event":"subscription.activated",
"contains":[
"subscription"
],
"payload":{
"subscription":{
"entity":{
...Your payload details ...
}
}
},
"created_at":1567690383
};
const wh: RazorWebhook = new RazorWebhook(razorpayPayload);
/// Setup your custom handler actions
wh.handler.subscriptionActivated = (pl) => {
/// ----- Your logic code.
return Promise.resolve();
};
wh.handler.subscriptionUpdated = (pl) => {
/// ----- Your logic code.
return Promise.resolve();
};
const execute: Promise<any> = await wh.execute();
Instantiate the razorpay instance with key_id
& key_secret
. You can obtain the keys from the dashboard app (https://dashboard.razorpay.com/#/app/keys)
const instance: Razorpay = new Razorpay({
authKey: {
key_id: 'YOUR_KEY_ID',
key_secret: 'YOUR_KEY_SECRET',
},
headers: {... Your Headers ...},
});
The resources can be accessed via the instance. All the methods invocations follows the namespaced signature
// API signature
// {razorpayInstance}.{resourceName}.{methodName}(resourceId [, params])
// Build with neat response interfaces
// example
const paymentDetails: IRazorPaymentId = await instance.payments.fetch(paymentId);
// Additional neat functionality than official nodejs SDK
// now even store instances of all services
// with neat instance classes
const payment: RazorPayment = instance.payments.payment('your_payementId');
payment.transfer([
{
account: 'acc_7HGyrafdeQDGfX',
amount: 100,
currency: 'INR'
}
]);
Every resource method returns a promise.
instance.payments
.all({
from: '2016-08-01',
to: '2016-08-20',
})
.then(response => {
// handle success
})
.catch(error => {
// handle error
});
- Add detailed documentation to ease implementation curve.
- Further simplification of the data interfaces and introduce a failure response interface.
- Improve validation for params required and ignore which are params not.
npm install
npm run build
- Switch to
master
branch. Make sure you have the latest changes in the local master - Update the
CHANGELOG.md
& bump the version inpackage.json
- Commit
- Tag the release & push to Github
- Create a release on GitHub using the website with more details about the release
- Publish to npm with
npm publish
command
MIT Licensed. See LICENSE.txt for more details
Razorpay [Unofficial SDK for TypeScript] is a Knoxpo original.