Commit 5a173671e4cd14c781952fd413b366d1d1288c3a

Authored by Adhidarma Hadiwinoto
1 parent f1040c3ff7
Exists in master

penanganan invalid xml

Showing 1 changed file with 32 additions and 2 deletions Side-by-side Diff

... ... @@ -109,8 +109,15 @@ function directResponseHandler(body, request_id) {
109 109 var response_code = '68';
110 110  
111 111 //var request_id = result.pulsamatic.partner_trxid[0].trim();
112   - var message = result.pulsamatic.message[0].trim();
113   - var status = result.pulsamatic.result[0].trim();
  112 + var message = getMessageFromXmlResponse(result);
  113 + if (!message) {
  114 + message = body;
  115 + }
  116 +
  117 + var status = getStatusFromXmlResponse(result);
  118 + if (!status) {
  119 + status = 'UNKNOWN';
  120 + }
114 121  
115 122 if (status === 'failed') {
116 123 response_code = '40';
... ... @@ -126,6 +133,29 @@ function directResponseHandler(body, request_id) {
126 133 });
127 134 }
128 135  
  136 +function getMessageFromXmlResponse(response) {
  137 + var message = null;
  138 + try {
  139 + message = response.pulsamatic.message[0].trim();
  140 + }
  141 + catch(e) {
  142 + logger.warn('Undefined message from response', {response: response});
  143 + }
  144 + return message;
  145 +}
  146 +
  147 +function getStatusFromXmlResponse(response) {
  148 + var status = null;
  149 + try {
  150 + status = response.pulsamatic.result[0].trim();
  151 + }
  152 + catch(e) {
  153 + logger.warn('Undefined status from response', {response: response});
  154 + }
  155 + return message;
  156 +}
  157 +
  158 +
129 159 function responseCodeFromMessage(message) {
130 160 if (message.indexOf('Jenis produk tidak cocok') >= 0) {
131 161 return '14';