Tamara Nodejs SDK is a wrapper for the Tamara API.
npm install tamara-sdk
{
"dependencies": {
"nodejs-sdk": "file:lib/nodejs-sdk-1.0.0.tgz"
}
}
`
2. Install online package from https://www.npmjs.com
`
npm i tamara-sdk --save
`
$3
#### 1. Create configuration for sdk
Create a object or load a json file with template below:
`
{
"clientVersion": "1.0.0",
"baseUrl": "your baseUrl",
"requestTimeoutInSecond": 0,
"apiToken": "your token",
"notificationPrivateKey": "your private key",
"logger":{
"useLog": true,
"filePath": "./logs"
}
}
`
`
- baseUrl (Required): Url points to api, example: https://api-sandbox.tamara.co
- requestTimeoutInSecond (Optional): timeout for request in seconds (0 or remove this field if you don't apply).
- apiToken (Required): authenticate token for api.
- notificationPrivateKey (Required): authenticate token for notification service.
- logger (Optional): configure logger for sdk (winston).
+ Set userlog = false if you don't apply.
+ filePath: Input your out put folder otherwise remove this field, system will log in console by default.
`
#### 2. Api Client
Using TamaraClientFactory with sample code:
`
const apiConfiguration = require("../public/apiConfiguration.json");
var client = TamaraClientFactory.createApiClient(apiConfiguration);
//1. GetPaymentTypes
var rs = client.getPaymentTypes("SA", {currency: 'SAR', amount: 200}).then((response)=>{
console.log(response.data[0].supportedInstalments);
});
`
#### 3. Notification Service
##### 1. Register notification service
Using TamaraClientFactory with sample code:
`
const apiConfiguration = require("../public/apiConfiguration.json");
const notificationService = TamaraClientFactory.createNotificationService(apiConfiguration);
`
###### 2. Create a endpoint to receive notification from Tamara
Sample code
`
const server = createServer((request: IncomingMessage, response: ServerResponse) => {
switch (request.url) {
case '/testWebhook': {
if (request.method === 'POST') {
var res = notificationService.processWebhook(request);
res.then((reponse) => {
//handle the response here
})
}
break;
}
case '/testAuthorise': {
if (request.method === 'POST') {
var res = notificationService.processAuthoriseNotification(request);
res.then((reponse) => {
//handle the response here
})
}
break;
}
default: {
response.statusCode = 404;
response.end();
}
}
});
``