0

I get following response from payment gateway site : this is what i get in console.log

order_id=6&tracking_id=309006168284&bank_ref_no=null
&order_status=Aborted&failure_message=&payment_mode=null&card_name=null&status_code=&
status_message=I wish to pay through another payment 
option.&currency=INR&amount=1.00&billing_name=Peter&billing_address=Santacruz&billing_city=Mumbai

I am try to convert above result in JSON format.

var finalData = responseFromSite.replace(/&/gi,',');
var finalData2 = finalData.replace(/=/gi,':');
var parsData = JSON.parse(JSON.stringify(finalData2));
console.log('parsData',parsData.order_status);

In console.log parsData i get undefined.

expected result is

{
"order_id": "9840661",
"tracking_id": "308005007091",
"bank_ref_no": "1555842850653",
"order_status": "Success",
"failure_message": "",
"payment_mode": "Net Banking",
"card_name": "AvenuesTest",
"status_code": "null",
"status_message": "Y",
"currency": "INR",
"amount": "1000.00",
"billing_name": "OPTIONAL",
"billing_address": "OPTIONAL",
"billing_city": "OPTIONAL",
}

how can i get above result.

sangRam
  • 315
  • 4
  • 17

1 Answers1

1

Don't try to munge data into a different format with regular expressions. Use a parser designed to handle that format to read it, and a JSON encoder to convert it to JSON.

const qs = require("query-string");

const data = `order_id=6&tracking_id=309006168284&bank_ref_no=null
&order_status=Aborted&failure_message=&payment_mode=null&card_name=null&status_code=&
status_message=I wish to pay through another payment 
option.&currency=INR&amount=1.00&billing_name=Peter&billing_address=Santacruz&billing_city=Mumbai`;

const parsed = qs.parse(data);

const json = JSON.stringify(parsed, null, 2);

process.stdout.write(json);
Quentin
  • 914,110
  • 126
  • 1,211
  • 1,335