从 HTML 页面中的第三方响应数据中获取单个值
Get individual values from Third Party Response Data in HTML page
我需要有关如何从HTML页面获取单个值的帮助。我在HTML页面中得到了一些PAYU支付网关团队的回复,但我需要来自跟踪交易的单个属性值
以下是我从PAYU团队得到的回应:
<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>
我从下面的代码片段中得到了这个回复
iabRef.executeScript(
{ code: "document.body.innerHTML" },
function( values ) {
alert(values[0]);
console.log(values[0]);
}
);
所以我需要单独的属性值,如 mihpayid 、模式、状态等......
假设值或值[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+)(&)?';
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'))
}
);
您可以获取p
标签的内容,然后执行两次拆分
假设p
是页面中唯一的p
标记,您可以通过调用来获取值
var text= document.getElementByTagName('p').innerHtml;
首先拆分&
var theArray= text.split('&');//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
来获取属性
相关文章:
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 访问令牌和响应数据
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 如何在UI自动化中捕获响应数据
- 基于类的单击事件在10行之后不响应-数据表
- 从 HTML 页面中的第三方响应数据中获取单个值
- 如何从xhrpost函数中检索响应数据并将该对象存储在dojo/store中
- 可以'无法使用Oauth2/BaseCamp API获取响应数据
- jQuery$.ajax方法.成功:使用响应数据的函数
- $('body').html()从来自Firefox中$jQuery.post的响应数据中给出了空白内容
- 如何在我的高图表中传递 Ajax 响应数据
- 将 Ajax 响应数据加载到挖空数组中
- JavaScript/angular - 无法获取确切的返回响应数据
- 如何使jQuery JSON请求并使用响应数据来更改html元素值
- 将数据绑定到 kendo 下拉列表时,如何将 ajax 响应数据获取到变量
- Dojo 筛选选择 - 完整的 JSON 响应数据不可见
- 调用特定函数时无法加载响应数据
- html 响应数据 ID 不能在 Facebook API 调用中用作字符串
- 访问Ajax响应数据
- Angular$http-在接收响应数据时对其进行处理