Ver código fonte

update : added smmptn to bds billpayment and its initiation kit

Rizalul Fiqri 1 semana atrás
pai
commit
29a7959698

+ 3 - 0
btn-middleware/QueueManager/BDSBROKER/queue.mqsc

@@ -47,6 +47,9 @@ DEFINE QLOCAL(BDS_BP.WS_INQ_PEMKO) REPLACE
 DEFINE QLOCAL(BDS_BP.PEMKO_ISO_PAY_REPLY) REPLACE
 DEFINE QLOCAL(BDS_BP.WS_PAY_PEMKO) REPLACE
 DEFINE QLOCAL(BDS_MP_PEMKO_RPG_REPLY) REPLACE
+DEFINE QLOCAL(BDS_BP.WS_INQ_SMMPTN) REPLACE
+DEFINE QLOCAL(BDS_BP.WS_PAY_SMMPTN) REPLACE
+DEFINE QLOCAL(BDS_BP_SMMPTN_RPG_REPLY) REPLACE
 DEFINE QREMOTE(BP.WS.PAYMENT.COREFAILEREV.COREREPLY) RNAME(BP.WS.PAYMENT.COREFAILEREV.COREREPLY) RQMNAME(PAYBROKER.QM) XMITQ(PAYBROKER.QM_TRAN)
 DEFINE QREMOTE(BP.WS.PAYMENT.COREREPLY) RNAME(BP.WS.PAYMENT.COREREPLY) RQMNAME(PAYBROKER.QM) XMITQ(PAYBROKER.QM_TRAN)
 DEFINE QREMOTE(BP.WS.PAYMENT.REV.COREREPLY) RNAME(BP.WS.PAYMENT.REV.COREREPLY) RQMNAME(PAYBROKER.QM) XMITQ(PAYBROKER.QM_TRAN)

+ 2 - 1
btn-middleware/QueueManager/PAYBROKER/queue.mqsc

@@ -278,4 +278,5 @@ DEFINE QREMOTE(BDS_BP.WS_INQ_PEMKO) RNAME(BDS_BP.WS_INQ_PEMKO) RQMNAME(BDSBROKER
 DEFINE QREMOTE(BDS_BP.PEMKO_ISO_PAY_REPLY) RNAME(BDS_BP.PEMKO_ISO_PAY_REPLY) RQMNAME(BDSBROKER.QM) XMITQ(BDSBROKER.QM_TRAN) REPLACE
 DEFINE QREMOTE(BDS_BP.WS_PAY_PEMKO) RNAME(BDS_BP.WS_PAY_PEMKO) RQMNAME(BDSBROKER.QM) XMITQ(BDSBROKER.QM_TRAN) REPLACE
 
-
+DEFINE QREMOTE(BDS_BP.WS_INQ_SMMPTN) RNAME(BDS_BP.WS_INQ_SMMPTN) RQMNAME(BDSBROKER.QM) XMITQ(BDSBROKER.QM_TRAN) REPLACE
+DEFINE QREMOTE(BDS_BP.WS_PAY_SMMPTN) RNAME(BDS_BP.WS_PAY_SMMPTN) RQMNAME(BDSBROKER.QM) XMITQ(BDSBROKER.QM_TRAN) REPLACE

BIN
btn-middleware/bar/BDSBROKER/BDS_BILLPAYMENT/BDS_BP_RA-67.bar


+ 70 - 0
btn-middleware/dummy-ws/dummysmmptn.js

@@ -0,0 +1,70 @@
+const http = require('http');
+
+const server = http.createServer((req, res) => {
+        let body = '';
+    let hasInquiry = false;
+    let hasPayment = true
+    req.on('data', (chunk) => {
+        body += chunk;
+    });
+    req.on('end', () => {
+        hasInquiry = /<(\w+:)?Inquiry\b/.test(body);
+        hasPayment = /<(\w+:)?Payment\b/.test(body);
+        if (req.url === '/dummy-smmptn' && req.method === 'POST') {
+          const xmlInquiryResponse = `<?xml version="1.0" encoding="utf-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <SOAP-ENV:Body>
+        <InquiryResponse xmlns="http://BTN-SMM/">
+          <rsp>000</rsp>
+          <rspdesc>Transaction success</rspdesc>
+          <trxID>45</trxID>
+          <idTagihan>953016738727</idTagihan>
+          <namaMhs>HADI NUR CAHAYA</namaMhs>
+          <fakultas>UTBK SMMPTN-BARAT</fakultas>
+          <billCode>00</billCode>
+          <billName>BIAYA PENDAFTARAN</billName>
+          <billShortName>SMMPTN-BARAT 2026</billShortName>
+          <billAmount>375000</billAmount>
+          <totalTagihan>375000</totalTagihan>
+          <reference1>0</reference1>
+          <reference2>0</reference2>
+          <reference3>0</reference3>
+        </InquiryResponse>
+    </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>`;
+        const xmlPaymentResponse = `<?xml version="1.0" encoding="utf-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <SOAP-ENV:Body>
+        <PaymentResponse xmlns="http://BTN-SMM/">
+          <rsp>000</rsp>
+          <rspdesc>Transaction success</rspdesc>
+          <trxID>47</trxID>
+          <idTagihan>953016738727</idTagihan>
+          <namaMhs>HADI NUR CAHAYA</namaMhs>
+          <fakultas>UTBK SMMPTN-BARAT</fakultas>
+          <billName>BIAYA PENDAFTARAN</billName>
+          <billShortName>SMMPTN-BARAT 2026</billShortName>
+        </PaymentResponse>
+    </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>`;
+          if(hasInquiry) {
+            res.writeHead(200, { 'Content-Type': 'text/xml; charset=ISO-8859-1' });
+            res.end(xmlInquiryResponse);
+          } else if (hasPayment) {
+            res.writeHead(200, { 'Content-Type': 'text/xml; charset=ISO-8859-1' });
+            res.end(xmlPaymentResponse);
+          } else {
+            res.writeHead(404, { 'Content-Type': 'text/plain' });
+            res.end('Not found');
+          }
+        } else {
+          res.writeHead(404, { 'Content-Type': 'text/plain' });
+          res.end('Not found');
+        }
+    });
+});
+
+server.listen(3070, () => {
+  console.log('SOAP dummy running at http://localhost:3070/dummy-smmptn');
+});
+

+ 1 - 0
btn-middleware/init.sh

@@ -15,6 +15,7 @@ cmd "node /home/admmdw/dummyws/dummyPemko4006.js &"
 cmd "node /home/admmdw/dummyws/dummyPemko4020.js &"
 cmd "node /home/admmdw/dummyws/dummyPemko5464.js &"
 cmd "node /home/admmdw/dummyws/dummyPemko8768.js &"
+cmd "node /home/admmdw/dummyws/dummysmmptn.js &"
 
 export PATH=$PATH:/opt/mqm/bin
 cfg="/home/admmdw/config.yaml"

+ 2 - 0
mwconfig/migration/MWCONFIG_INIT_SMMPTN.sql

@@ -0,0 +1,2 @@
+INSERT INTO MWCONFIG.CHARGES (ID, C1_VALUE, C1_NAME, C1_SCRIPT, C1_ACCOUNT, C2_VALUE, C2_NAME, C2_SCRIPT, C2_ACCOUNT, C3_VALUE, C3_NAME, C3_SCRIPT, C3_ACCOUNT, C4_VALUE, C4_NAME, C4_SCRIPT, C4_ACCOUNT, C5_VALUE, C5_NAME, C5_SCRIPT, C5_ACCOUNT, MODIFIED_BY, "TIMESTAMP") VALUES('bds SMMPTN', 0.00, 'charge', NULL, '0059201305656565', 2000.00, 'charge2', NULL, '0000000467811491352', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'DB2PROD ', '2017-05-30 15:20:49.911976');
+INSERT INTO MWCONFIG.PARAM_MAP ("GROUP", NAME, VALUE, SEQ, MODIFIED_BY, "TIMESTAMP", DESCRIPTION) VALUES('destination.nbds', 'SMMPTN', 'http://0.0.0.0:3070/dummy-smmptn', NULL, 'DB2INST1', '2025-11-12 16:04:27.488608', NULL);