Reputation: 311
I need a help for How to get Individual values from HTML page. i got response from some PAYU payment gateway team in HTML page but i need individual attributes values from tacking Transaction
Below is the response am getting from PAYU Team:
<h1>This is the success url</h1>
<p>Your transaction is completed successfully. Bank response is
mihpayid=403993715514374636&mode=&status=failure&unmappedstatus=userCancelled&key=gtKFFx&txnid=txn1r23fw&amount=100.00&discount=0.00&net_amount_debit=0.00&addedon=2016-04-25+10%3A48%3A29&productinfo=oxygenconcentrator&firstname=test&lastname=&address1=&address2=&city=&state=&country=&zipcode=&email=test%40gmail.com&phone=8152709721&udf1=&udf2=&udf3=&udf4=&udf5=&udf6=&udf7=&udf8=&udf9=&udf10=&hash=6a9d21bd423d61cd5a7d91098aa1140314e45eaddd8d4b9148399caba8ac61a9476aec130eb369f7d526e741b1b6c47b1ca71bec21fa69aa3deaa13740dbffbc&field1=&field2=&field3=&field4=&field5=&field6=&field7=&field8=&field9=Cancelled+by+user&payment_source=payu&PG_TYPE=&bank_ref_num=&bankcode=&error=&error_Message=
</p>
<script>
PayU.onSuccess("mihpayid=403993715514374636&mode=&status=failure&unmappedstatus=userCancelled&key=gtKFFx&txnid=txn1r23fw&amount=100.00&discount=0.00&net_amount_debit=0.00&addedon=2016-04-25+10%3A48%3A29&productinfo=oxygenconcentrator&firstname=test&lastname=&address1=&address2=&city=&state=&country=&zipcode=&email=test%40gmail.com&phone=8152709721&udf1=&udf2=&udf3=&udf4=&udf5=&udf6=&udf7=&udf8=&udf9=&udf10=&hash=6a9d21bd423d61cd5a7d91098aa1140314e45eaddd8d4b9148399caba8ac61a9476aec130eb369f7d526e741b1b6c47b1ca71bec21fa69aa3deaa13740dbffbc&field1=&field2=&field3=&field4=&field5=&field6=&field7=&field8=&field9=Cancelled+by+user&payment_source=payu&PG_TYPE=&bank_ref_num=&bankcode=&error=&error_Message=");
</script>
I got this response from below snippet
iabRef.executeScript(
{ code: "document.body.innerHTML" },
function( values ) {
alert(values[0]);
console.log(values[0]);
}
);
so i need individual attribute values like mihpayid ,mode,status and so on......
Upvotes: 3
Views: 176
Reputation: 1774
You can just get the contents of the p
tag then perform a split twice
Assuming that p
is the only p
tag in the page you can get the value by calling
var text= document.getElementByTagName('p').innerHtml;
First split the &
var theArray= text.split('&');//or just & depending on how your text comes out
this will return an array that'll contain something like [status=failure,phone=8152709721]
Then you can loop through this array and create an object
var obj = {} ;
//loop here then do this within the loop
var kv=theArray[i].split('=');
obj[kv[0]] = kv[1];
So you can get your attributes by calling obj.status
Upvotes: 0
Reputation: 1322
Assuming that values or values[0] will have : "mihpayid=403993715514374636&mode=&status=failure&unmappedstat"
Then you could write a function as below:
function extractScript(source){
var pattern = /<script>(\w+)<\/script>/
var matches = source.match(pattern);
return matches[1];
}
function getValue(source, key){
var pattern = key+'=(\\w+)(&)?';
var expr = new RegExp(pattern);
var result = source.match(expr);
return result[1];
}
Then in executeScript:
iabRef.executeScript(
{ code: "document.body.innerHTML" },
function( values ) {
//incase values[0] contains result string
console.log(getValue(values[0], 'mihpayid'))
//or
//incase values[0] contains result string
console.log(getValue(values, 'mihpayid'))
}
);
Upvotes: 1