最新项目中遇到H5页面中调用微信、支付宝客户端支付的需求,虽然这并不是推荐的做法,但是需求确实存在。。。加载h5页面点击支付调起需要支付的客户端(微信或者支付宝)。
微信支付解决方案:
1.首先要设置好你自己项目中的scheme, LSApplicationQueriesSchemes 中添加weixin;
2.你点击支付的时候,在shouldStartLoadWithRequest回调方法中会获取到https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?。。。。类似这种的连接,这就是你的支付链接,webView加载完成后就可以调起微信/支付宝进行支付了。
3.支付完成后无论成功失败,都会调转到Safari浏览器中。
4.要想支付完成后跳回app,我们就需要拦截回调的URL地址,回调的URL中一定不要拼接redirect_url, 不然还是会跳转到浏览器中。
5.最后把Referer设置成:www.xxx.com:// scheme设置成:www.xxx.com就可以直接返回APP了。(www.xxx.com 这个必须是H5授权的域名)。
支付宝支付解决方案:
1.首先要设置好你自己项目中的scheme, LSApplicationQueriesSchemes 中添加alipay;
2.跟微信支付一样,在shouldStartLoadWithRequest回调中拦截UrlScheme,并替换为项目中设置的UrlScheme。
代码如