- integrating vocagame supplier

This commit is contained in:
2023-09-20 22:07:06 +07:00
parent 8f731226ee
commit 28f98de87c
4 changed files with 136 additions and 7 deletions

View File

@@ -1,5 +1,6 @@
import axios from 'axios';
import {HttpException, HttpStatus, NotFoundException} from "@nestjs/common";
import {createHmac} from "crypto";
const irs_url = 'http://h2h.elangpixiu.com/api/h2h';
const irs_id = 'PT0005';
@@ -15,6 +16,8 @@ export const doTransaction = async (
authorization,
typePaid,
billTrxId,
productVocaSubCategoryId,
productPrice
) => {
try {
if (supplier.code == 'IRS') {
@@ -29,6 +32,62 @@ export const doTransaction = async (
);
return res.data;
} else if (supplier.code == 'Vocagame') {
const merchantId = supplier.irs_user;
const reference = idtrx
const endpoint = `/transaction/${reference}`;
const secretKey = supplier.irs_pass;
const signature = createHmac('sha256', secretKey)
.update(merchantId + endpoint)
.digest('hex');
const options = {
headers: {'Content-Type': 'application/json'},
};
const mergedDestination = destination;
const regex = /\(([^)]+)\)/;
const match = regex.exec(mergedDestination);
let productDestination = ""
let productRegion = ""
if (match) {
productDestination = match[0]
const insideBrackets = match[1];
productRegion = insideBrackets // This will print inside brackets
} else {
productDestination = destination
}
const data =
{
productId: productVocaSubCategoryId, // Sub Kategori ID
productItemId: productCode, // Product Code
data: { // Get object from user input within endpoint /products/detail
userId: productDestination,
zoneId: productRegion // Optional
},
price: productPrice, // Price equals from items
reference: reference, // Your reference I
callbackUrl: "https://ppob-backend.k3s.bangun-kreatif.com/v1/ppob_callback/vocagame" // Set your endpoint callback
}
const res = await axios.post(
`${supplier.url}/v1/core/transaction?signature=${signature}`,
data,
options,
);
var responseVoca = res.data;
if (responseVoca != null) {
const resDetail = await axios.get(
`${supplier.url}/v1/core/transaction/${responseVoca.invoiceId}/detail?signature=${signature}`,
options,
);
return resDetail
}
} else if (supplier.code == 'Digiflazz') {
if (typePaid == 'INQUIRY') {
const md5HashDigiflazz = `${supplier.irs_user}${supplier.irs_pass}${idtrx}`;