在APP 中使用 WebView 调起H5支付

微信H5 支付开发官方文档参考资料: https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4 

0. 场景描述:在APP 中使用webView 显示第三方H5, H5中涉及到微信支付流程,无法正常支付,提示 “商家参数格式有误,请联系商家解决”。

1. 线索分析:参照微信H5 支付开发官方文档,提及 “如果是APP里调起H5支付,需要在webview中手动设置referer”,具体内容如下,或者参考官方文档:PS@官方文档 -- 致谢

1. 1 解决策略:按照官方文档描述,添加referer 之后,发现仍然提示此错误:

2. 线索分析:经过询问H5 前端技术人员,反馈referer 需要实时设置更新, 每个页面都要获取上一个界面的referer,然后传递给下一个页面,而不是一层不变。PS@H5前端技术 -- 致谢

2.1 解决策略:通过线索分析,得知两个重要线索 ->

  Num 1:referer 需要实时设置更新 -> 需要在WebViewClient -> shouldOverrideUrlLoading() 中实时设置referer, 而不是只在最外层设置referer;

  Num 2:每个页面都要获取上一个界面的referer,然后传递给下一个页面 -> 获取上一个界面referer并传递给下一个页面;

2.2 碰到的小问题*#110*#  :WebView 中并没有获取referer 的相关方法,referer 是个什么鬼东东,一脸茫然??????????

  猜测:根据单词意思,是否是指上一个界面的网址,即页面来源?

  尝试:将授权域名作为初始referer ,然后每次保存上一个页面的url 作为下一个页面的referer 

运行代码-》调试-》问题解决。

  

猜你喜欢

转载自www.cnblogs.com/lizhilin2016/p/9001452.html