webview或AgentWeb调用微信H5支付后回退时重复调用微信支付解决方案

这里记录下我的解决方案,这个资料太少了

1.在“shouldOverrideUrlLoading方法中拦截含有微信支付的域名如图

webview或AgentWeb调用微信H5支付后回退时重复调用微信支付解决方案_第1张图片

 ”extraHeaders 这个map对象必须写,这是用来传递微信支付时临时授权域名的,不写会出现“商家参数格式有误,请联系商户”

webview或AgentWeb调用微信H5支付后回退时重复调用微信支付解决方案_第2张图片

Refere:这个就是你的微信授权域名;最后在loadurl带过去给微信。

layoutWebView:是当前fragment中的根布局,用来加载新的webview而已


2.在新创建的webview中再次拦截weixin

webview或AgentWeb调用微信H5支付后回退时重复调用微信支付解决方案_第3张图片

这里拦截主要就是唤醒微信支付。

3.最后,支付完成后在回到app时在onresume生命周期重新加载该页面,改变状态,这就很巧妙地完成了重复调用微信的坑

webview或AgentWeb调用微信H5支付后回退时重复调用微信支付解决方案_第4张图片

你可能感兴趣的:(安卓)