dummywsasabri.js 4.4 KB

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