【问题标题】:Get individual values from Third Party Response Data in HTML page从 HTML 页面中的第三方响应数据中获取单个值
【发布时间】:2016-04-25 05:37:56
【问题描述】:

我需要有关如何从 HTML 页面获取单个值的帮助。 我在 HTML 页面中收到了一些 PAYU 支付网关团队的回复,但我需要从跟踪交易中获得个人属性值

以下是 PAYU 团队的回复:

<h1>This is the success url</h1>
<p>Your transaction is completed successfully. Bank response is 
   mihpayid=403993715514374636&amp;mode=&amp;status=failure&amp;unmappedstatus=userCancelled&amp;key=gtKFFx&amp;txnid=txn1r23fw&amp;amount=100.00&amp;discount=0.00&amp;net_amount_debit=0.00&amp;addedon=2016-04-25+10%3A48%3A29&amp;productinfo=oxygenconcentrator&amp;firstname=test&amp;lastname=&amp;address1=&amp;address2=&amp;city=&amp;state=&amp;country=&amp;zipcode=&amp;email=test%40gmail.com&amp;phone=8152709721&amp;udf1=&amp;udf2=&amp;udf3=&amp;udf4=&amp;udf5=&amp;udf6=&amp;udf7=&amp;udf8=&amp;udf9=&amp;udf10=&amp;hash=6a9d21bd423d61cd5a7d91098aa1140314e45eaddd8d4b9148399caba8ac61a9476aec130eb369f7d526e741b1b6c47b1ca71bec21fa69aa3deaa13740dbffbc&amp;field1=&amp;field2=&amp;field3=&amp;field4=&amp;field5=&amp;field6=&amp;field7=&amp;field8=&amp;field9=Cancelled+by+user&amp;payment_source=payu&amp;PG_TYPE=&amp;bank_ref_num=&amp;bankcode=&amp;error=&amp;error_Message=
</p>

 <script>
PayU.onSuccess("mihpayid=403993715514374636&amp;mode=&amp;status=failure&amp;unmappedstatus=userCancelled&amp;key=gtKFFx&amp;txnid=txn1r23fw&amp;amount=100.00&amp;discount=0.00&amp;net_amount_debit=0.00&amp;addedon=2016-04-25+10%3A48%3A29&amp;productinfo=oxygenconcentrator&amp;firstname=test&amp;lastname=&amp;address1=&amp;address2=&amp;city=&amp;state=&amp;country=&amp;zipcode=&amp;email=test%40gmail.com&amp;phone=8152709721&amp;udf1=&amp;udf2=&amp;udf3=&amp;udf4=&amp;udf5=&amp;udf6=&amp;udf7=&amp;udf8=&amp;udf9=&amp;udf10=&amp;hash=6a9d21bd423d61cd5a7d91098aa1140314e45eaddd8d4b9148399caba8ac61a9476aec130eb369f7d526e741b1b6c47b1ca71bec21fa69aa3deaa13740dbffbc&amp;field1=&amp;field2=&amp;field3=&amp;field4=&amp;field5=&amp;field6=&amp;field7=&amp;field8=&amp;field9=Cancelled+by+user&amp;payment_source=payu&amp;PG_TYPE=&amp;bank_ref_num=&amp;bankcode=&amp;error=&amp;error_Message=");
 </script>

我从sn-p下面得到了这个回复

iabRef.executeScript(
   { code: "document.body.innerHTML" },
    function( values ) {
        alert(values[0]);
        console.log(values[0]);
    }
  );

所以我需要单独的属性值,例如 mihpayidmodestatus 等等......

【问题讨论】:

  • 你的控制台结果是什么??
  • @WasiqMuhammad 我在我的查询中提到了console.log 响应,您能否找到...。

标签: javascript html angularjs json


【解决方案1】:

假设 values 或 values[0] 将具有: "mihpayid=403993715514374636&mode=&status=failure&unmappedstat"

那么你可以编写如下函数:

   function extractScript(source){
     var pattern = /<script>(\w+)<\/script>/
     var matches = source.match(pattern);

     return matches[1];
   }

function getValue(source, key){
      var pattern = key+'=(\\w+)(&amp;)?';
      var expr = new RegExp(pattern);

      var result = source.match(expr);

      return result[1];
 }

然后在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'))
}
);

【讨论】:

  • 感谢您的回复,但收到类似 Uncaught TypeError: Object [object Array] has no method 'match' 之类的错误
  • @Sai 你能不能试试 console.log(getValues(values[0], 'mihpayid'));
  • 如果你能分辨出 values[0] 的值是什么以及你得到的值是什么,这会有所帮助?
  • 但是从上面的 sn-p 我得到两个调用,一个来自

    标签,第二个来自 标签,但实际上我只需要一个来自任何一个这些标签
  • 我已经编辑并添加了一个名为 extractScript 的新函数,您可以使用它来使用 extractScript(values[0]) 仅提取脚本部分并将该输出用作 getValue 中的源:ex :getValue( extractScript(values[0]) , 'mihpayid);
【解决方案2】:

你可以只获取p标签的内容然后执行两次拆分

假设p是页面中唯一的p标签,你可以通过调用获取值

 var text= document.getElementByTagName('p').innerHtml;

先拆分&amp;amp;

var theArray= text.split('&amp;');//or just & depending on how your text comes out 

这将返回一个包含[status=failure,phone=8152709721] 之类的数组 然后你就可以遍历这个数组并创建一个对象

var obj = {} ;
//loop here then do this within the loop 
var kv=theArray[i].split('=');
obj[kv[0]] = kv[1];

所以你可以通过调用obj.status来获取你的属性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    相关资源
    最近更新 更多