Android 微信H5支付,无法拉起微信支付页面

2021-05-24  本文已影响0人  小猴猴_2d25

最近我其中一个项目需要接入微信支付,实现方式是在WebView里利用Url拉起微信支付页面,但是实际操作的时候却发现始终无法拉起支付页面,最后排查了一段时间,发现原来是因为一个很简单的问题出错了,于是解决问题以后特意想把这个问题记录下来分享,也便于以后自己解决同类问题。

在这里插入图片描述
代码如上,每次微信支付走到https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=************,这个开头的url时,就停住了,根本不会跳到weixin://wap/pay?开头的url中,然后再调用startActivity打开微信客户端支付。当时我百思不得其解,到底那里出错了呢,为什么吊不起微信支付,后来我看了一下自己之前的项目,发现我原先的项目是这样的: 在这里插入图片描述

可以看到,这里return 返回的是false,问题出在这里。这时我又在想,为什么会这样?

查阅资料以后我发现shouldOverrideUrlLoading的返回值的意义为:

那么这种情况下,返回值应该改为 false或者super .shouldOverrideUrlLoading(view, url); ,因为微信支付调用https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb这个开头的url后,会重定向到weixin://wap/pay开头的url,然后调用微信客户端支付,如果用true,则WebView不会自动重定向到weixin://wap/pay开头的url,需要程序员自行处理,这种情况下自然是无法吊起支付的。

上一篇下一篇

猜你喜欢

热点阅读