From 05d016dd09546d33ca52b7befb3153ed032ba152 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <adhisimon@gmail.com> Date: Mon, 31 May 2021 15:14:15 +0700 Subject: [PATCH] CALLBACK-SENDER: using POST on postpaid callback --- lib/core-callback/sender.js | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/lib/core-callback/sender.js b/lib/core-callback/sender.js index 0a0e3d6..ff3fa0a 100644 --- a/lib/core-callback/sender.js +++ b/lib/core-callback/sender.js @@ -22,6 +22,11 @@ logger.verbose(`${MODULE_NAME} 848B9104: Initialized`, { MAX_RETRY, }); +const axiosHeaders = { + 'Content-Type': 'application/json', + 'User-Agent': 'KOMODO-HTTPGETX callback sender', +}; + const sleep = require('../sleep'); const urlConcatQs = require('../url-concat-qs'); @@ -38,11 +43,14 @@ const sender = async (data, xid, retry) => { const params = { httpgetx_xid: xid, command: data.command, + request_id: data.request_id && data.request_id.toString(), transaction_id: data.transaction_id && data.transaction_id.toString(), transaction_date: data.transaction_date, + store_name: data.store_name, terminal_name: data.terminal_name, + product_name: data.product_name, destination: data.destination, @@ -65,18 +73,30 @@ const sender = async (data, xid, retry) => { params.amount_to_charge = data.amount_to_charge; } - const fullUrl = urlConcatQs(data.reverse_url, params); + const isPostpaid = ['INQUIRY', 'PAY'].indexOf(data.command) >= 0; + const isHttpPost = isPostpaid; + + const endpointUrl = isHttpPost ? data.reverse_url : urlConcatQs(data.reverse_url, params); + logger.info(`${MODULE_NAME} 8B6A4CEC: Sending to PARTNER`, { xid, retry, - fullUrl, + isPostpaid, + isHttpPost, + endpointUrl, }); try { - const response = await axios.get(data.reverse_url, { - params, - timeout: HTTP_TIMEOUT, - }); + const response = isHttpPost + ? await axios.post(data.reverse_url, params, { + timeout: HTTP_TIMEOUT, + headers: axiosHeaders, + }) + : await axios.get(data.reverse_url, { + params, + timeout: HTTP_TIMEOUT, + headers: axiosHeaders, + }); logger.info(`${MODULE_NAME} 3641FBD7: Has been sent to PARTNER successfully`, { xid, @@ -92,7 +112,7 @@ const sender = async (data, xid, retry) => { errCode: e.code, errMessage: e.message, reverseUrl: data.reverse_url, - fullUrl, + endpointUrl, httpStatus: e.response && e.response.status, responseBody: e.response && e.response.data, }); -- 1.9.0