tamara-sdk
v1.0.7
Published
Tamara Nodejs SDK is a wrapper for the Tamara API.
Downloads
380
Readme
nodejs SDK
Tamara Node.js SDK is a wrapper for the Tamara API.
Installation
There are two ways to install Tamara Nodejs SDK in Publish folder:
- Use local pacakge
Copy nodejs-sdk-1.0.0.tgz to your folder.
Update dependency in package.json and run npm install
{ "dependencies": { "nodejs-sdk": "file:lib/nodejs-sdk-1.0.0.tgz" } }
- Install online package from https://www.npmjs.com
npm i tamara-sdk --save
Usage
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();
}
}
});
API Support:
- GetPaymentTypes --- /checkout/payment-types
- CreateCheckout --- /checkout
- AuthoriseOrder --- /orders/{orderId}/authorise
- CancelOrder --- /orders/{orderId}/cancel
- Capture --- /payments/capture
- Refund --- /merchants/orders/{orderId}/refund
- GetOrderDetails --- /orders/{orderId}
- UpdateOrderReferenceId --- /orders/{orderId}/reference-id
- RegisterWebhook --- /webhooks
- RetrieveWebhook --- /webhooks/{webhookId}
- RemoveWebhook --- /webhooks/{webhookId}
- UpdateWebhook --- /webhooks/{webhookId}
- GetOrderDetailsByReference --- /merchants/orders/reference-id/{orderReferenceId}
Versions:
1.0.6: Updated RiskAssesstment, AuthorisedOrder response, OrderDetails, Simple refund 1.0.7: Updated Simple refund