美文网首页
Android原生WebView调用微信H5支付出现【请在微信外

Android原生WebView调用微信H5支付出现【请在微信外

作者: 一击必中 | 来源:发表于2019-10-09 14:00 被阅读0次

这是楼主写的第一篇博文,我的博文特色就是一击必中。如果你的问题是这样的,那么快速浏览找到解决方案,如果不是,关闭文章,继续去探索吧~~

问题:

Android在对接H5支付的时候,出现了这样一个问题。明明是在android原生的调用的H5支付链接,可是报错【请在微信外打开订单,进行支付】,提示很明显,在发起微信支付的时候,认为我是在微信中打开的,所以不让支付。

上图:

探索过程:

当然就是百度了,百度了好多次,竟然没有发现这样的问题。所有的回答全是,在浏览器打开,不要在微信打开。可我明明就是在自己写的WebView中打开的啊,真让人头大。

上图:

问题原因:

原来是在进行webView设置的时候,多了这两句代码。

String ua = settings.getUserAgentString();

settings.setUserAgentString(ua + " MicroMessenger/4.5.255");

问题剖析:

android通过微信内置浏览器访问网页得到的user agent为

Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255

也就是说,微信是通过判断MicroMessenger关键字来鉴别是不是微信内置浏览器,所以才会报错。

解决方案:

去掉这个用户代理(userAgent)就行了。

总结:

自己不了解的代码不要随便拷贝过来就加上,一定要弄明白这些代码的意义,不然你出现的问题,度娘都没法帮你解决。

相关文章

  • Android原生WebView调用微信H5支付出现【请在微信外

    这是楼主写的第一篇博文,我的博文特色就是一击必中。如果你的问题是这样的,那么快速浏览找到解决方案,如果不是,关闭文...

  • ## APP支持H5微信支付案例 - [卓训] android端

    ## APP支持H5微信支付案例 **对于微信支付,android端需用webview直接加载给定的url即可,代...

  • 使用UIWebView中遇到的问题

    1、webView中使用H5微信支付 在webView中使用H5微信支付跳转到微信收银台页面时,点击取消或者支付完...

  • 微信H5支付参考(android)

    android webview 微信h5支付 原因 由于原生app支付需要验证包名和签名,如果要做的是sdk,给所...

  • Android端 支付宝&微信H5支付调用

    一、支付宝H5支付调用 支付宝H5支付官方开发文档 代码示例: 二、微信H5支付调用 微信H5支付官方开发文档 代...

  • 微信支付前端开发指南

    使用场景 微信公众号内嵌H5网页调用微信支付 在微信浏览器中的网页唤起微信支付界面 详情可以查阅微信支付官方文档 ...

  • iOS H5微信支付总结

    功能描述 1、webView加载H5页面 2、点击微信支付,调起微信客户端支付 3、支付完成,返回APP 操作流程...

  • Android 随记 记一次乌龙bug

    记得有这么一天,由于项目中有支付流程,native接了H5,需要跳转至微信和支付宝支付,并且由原生Webview承...

  • 微信支付

    微信支付包括微信H5支付和微信公众号支付 微信H5支付 官方api:https://pay.weixin.qq.c...

  • iOS微信App支付

    微信支付的难点在于微信商户平台配置数据签名 原生客户端调用微信支付非常简单,代码如下: 回调方法: 微信授权登录 ...

网友评论

      本文标题:Android原生WebView调用微信H5支付出现【请在微信外

      本文链接:https://www.haomeiwen.com/subject/ydcdrctx.html