最近项目用到调起微信H5支付,需要从A页面跳到B页面,在B页面直接调起H5支付,结果出现每5秒就重新调起,一直循环。调试半天,试了各种可能,发现是调起微信H5支付5秒后,会有一个后退的动作回到B页,又执行一遍调起动作,从而循环。
我的解决方法是在B页面的执行调起方法时判断是否后退,如果是后退回来的,则直接再后退一次回到A页面,服务器端生成mweb_url的处理代码就不贴出来了,前端js代码模板如下:
<script src="./static/platform/js/jquery.min.js"></script>
<script type="text/javascript" src="ht tps://res.wx.qq.c om /open/js/jweixin-1.3.2.js"></script>
<script type="text/javascript">
var url=服务端处理生成并返回mweb_url 的接口;
function pay(){
$.ajax({
type:"post",
url:url,
dataType:"json",
data:{}, //接口参数
success:function(data) {
if (data.code=="0"){
url = data.url;
//console.log(url);
//window.location.href=url;
window.location.assign(url);
}else
alert("支付失败");
}
}
if(window.performance.navigation.type==0){
pay();//调起H5支付的方法
}else{
window.history.go(-1);
}
</script>