dummyMP7727.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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\b/.test(body);
  11. hasPayment = /<(\w+:)?Payment\b/.test(body);
  12. if (req.url === '/dummy-ws-mp-7727' && req.method === 'POST') {
  13. const xmlInquiryResponse = `<?xml version="1.0" encoding="utf-8"?>
  14. <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">
  15. <SOAP-ENV:Body>
  16. <InquiryResponse xmlns="http://tempuri.org/">
  17. <InquiryResult>
  18. <PaymentNo>52000030128</PaymentNo>
  19. <CustomerName>MUHAMMAD FAUZIANNOOR</CustomerName>
  20. <Description>Tagihan POLITEKNIK NEGERI BANJARMASIN</Description>
  21. <TotalAmount>2900000</TotalAmount>
  22. <AdminAmount>1500</AdminAmount>
  23. <BillDetails></BillDetails>
  24. <Status>
  25. <ErrorCode>00</ErrorCode>
  26. <ErrorDescription>Sukses</ErrorDescription>
  27. <IsError>false</IsError>
  28. </Status>
  29. </InquiryResult>
  30. </InquiryResponse>
  31. </SOAP-ENV:Body>
  32. </SOAP-ENV:Envelope>`;
  33. const xmlPaymentResponse = `<?xml version="1.0" encoding="utf-8"?>
  34. <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">
  35. <SOAP-ENV:Body>
  36. <PaymentResponse xmlns="http://tempuri.org/">
  37. <PaymentResult>
  38. <PaymentNo>52000030128</PaymentNo>
  39. <CustomerName>MUHAMMAD FAUZIANNOOR</CustomerName>
  40. <Description>Tagihan POLITEKNIK NEGERI BANJARMASIN</Description>
  41. <TransactionAmount>2900000</TransactionAmount>
  42. <AdminAmount>1500</AdminAmount>
  43. <TransactionId>26080600000610008252</TransactionId>
  44. <BillDetails></BillDetails>
  45. <Status>
  46. <ErrorCode>00</ErrorCode>
  47. <ErrorDescription>Sukses</ErrorDescription>
  48. <IsError>false</IsError>
  49. </Status>
  50. </PaymentResult>
  51. </PaymentResponse>
  52. </SOAP-ENV:Body>
  53. </SOAP-ENV:Envelope>`;
  54. if(hasInquiry) {
  55. res.writeHead(200, { 'Content-Type': 'text/xml; charset=ISO-8859-1' });
  56. res.end(xmlInquiryResponse);
  57. } else if (hasPayment) {
  58. res.writeHead(200, { 'Content-Type': 'text/xml; charset=ISO-8859-1' });
  59. res.end(xmlPaymentResponse);
  60. } else {
  61. console.log('nohasinqorpay');
  62. res.writeHead(404, { 'Content-Type': 'text/plain' });
  63. res.end('Not found');
  64. }
  65. } else {
  66. console.log(req)
  67. console.log('nopost');
  68. res.writeHead(404, { 'Content-Type': 'text/plain' });
  69. res.end('Not found');
  70. }
  71. });
  72. });
  73. server.listen(3133, () => {
  74. console.log('SOAP dummy running at http://localhost:3133/dummy-ws-mpp-7727');
  75. });