dummywsasabri.js 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. const http = require('http');
  2. const server = http.createServer((req, res) => {
  3. let body = '';
  4. let hasInquiry = false;
  5. let hasPayment = true
  6. req.on('data', (chunk) => {
  7. body += chunk;
  8. });
  9. req.on('end', () => {
  10. hasInquiry = /<(\w+:)?Inquiry/.test(body);
  11. hasPayment = /<(\w+:)?Payment/.test(body);
  12. // console.log(hasInquiry);
  13. // console.log(body);
  14. if (req.url === '/dummy-asabri' && req.method === 'POST') {
  15. const xmlInquiryDetailResponse = `<?xml version="1.0" encoding="utf-8"?>
  16. <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">
  17. <SOAP-ENV:Body>
  18. <InquiryDetailResponse xmlns="http://tempuri.org/">
  19. <InquiryDetailResult>
  20. <action>getDataPP102NonBPLS</action>
  21. <resp_code>00</resp_code>
  22. <resp_desc>Berhasil</resp_desc>
  23. <trx_obj>
  24. <NO_KTPA>BE141852</NO_KTPA>
  25. <KODE_BAYAR>BE141852THT21</KODE_BAYAR>
  26. <KODE_PROG>1</KODE_PROG>
  27. <F_BYR>1</F_BYR>
  28. <KODE_MUTASI>70</KODE_MUTASI>
  29. <KODE_KEJADIAN>2</KODE_KEJADIAN>
  30. <NO_SP>B/002759-AS/THT/I/2026</NO_SP>
  31. <TGL_SP>2026-01-08</TGL_SP>
  32. <KODE_KANCAB>1700</KODE_KANCAB>
  33. <MITRA_BAYAR>AAW0414</MITRA_BAYAR>
  34. <NAMA_PESERTA>SUWANTAH</NAMA_PESERTA>
  35. <NRPNIP>479045</NRPNIP>
  36. <KD_PANGKAT>1662</KD_PANGKAT>
  37. <UNOR>1</UNOR>
  38. <TGL_LAHIR_PESERTA>1943-03-02</TGL_LAHIR_PESERTA>
  39. <NAMA_PENERIMA>WIKE TIN KEMASAN SARI</NAMA_PENERIMA>
  40. <JNS_ID_PENERIMA>002</JNS_ID_PENERIMA>
  41. <NO_ID_PENERIMA>7309015003810002</NO_ID_PENERIMA>
  42. <NO_REKENING>0007601500167476</NO_REKENING>
  43. <HUBKEL>3</HUBKEL>
  44. <ALAMAT>PERUMAHAN SOLINDO IM/5</ALAMAT>
  45. <RT>006</RT>
  46. <RW>003</RW>
  47. <KELURAHAN>BONTOA</KELURAHAN>
  48. <KECAMATAN>MANDAI</KECAMATAN>
  49. <KD_KOTA>A0398</KD_KOTA>
  50. <KD_PROPINSI>A0026</KD_PROPINSI>
  51. <NO_HP>6282259395559</NO_HP>
  52. <LIST_MANFAAT>
  53. <KD_MANFAAT>008</KD_MANFAAT>
  54. <NOMINAL>4000000</NOMINAL>
  55. </LIST_MANFAAT>
  56. <JML_HAK>4000000</JML_HAK>
  57. <POTONGAN>0</POTONGAN>
  58. <JML_PENERIMAAN>4000000</JML_PENERIMAAN>
  59. <GIRO_NO>0</GIRO_NO>
  60. </trx_obj>
  61. </InquiryDetailResult>
  62. </InquiryDetailResponse>
  63. </SOAP-ENV:Body>
  64. </SOAP-ENV:Envelope>`;
  65. const xmlFlaggingDetailResponse = `<?xml version="1.0" encoding="utf-8"?>
  66. <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">
  67. <SOAP-ENV:Body>
  68. <FlaggingDetailResponse xmlns="http://tempuri.org/">
  69. <FlaggingDetailResult>
  70. <resp_code>00</resp_code>
  71. <resp_desc>sukses</resp_desc>
  72. <noBuktiPembayaran>BTNTHT20901202600241154800010</noBuktiPembayaran>
  73. </FlaggingDetailResult>
  74. </FlaggingDetailResponse>
  75. </SOAP-ENV:Body>
  76. </SOAP-ENV:Envelope>`;
  77. if(hasInquiry) {
  78. res.writeHead(200, { 'Content-Type': 'text/xml; charset=ISO-8859-1' });
  79. res.end(xmlInquiryDetailResponse);
  80. } else if (hasPayment) {
  81. res.writeHead(200, { 'Content-Type': 'text/xml; charset=ISO-8859-1' });
  82. res.end(xmlFlaggingDetailResponse);
  83. } else {
  84. res.writeHead(404, { 'Content-Type': 'text/plain' });
  85. res.end('Not found');
  86. }
  87. } else {
  88. res.writeHead(404, { 'Content-Type': 'text/plain' });
  89. res.end('Not found');
  90. }
  91. });
  92. });
  93. server.listen(3046, () => {
  94. console.log('SOAP dummy running at http://localhost:3046/dummy-asabri');
  95. });