WebView启动支付宝客户端支付失败
来源:互联网 发布:ubuntu 64位安装wine 编辑:程序博客网 时间:2024/04/30 03:18
本文转载:http://blog.csdn.net/u014752325/article/details/53976422
目前在做一个用App加载H5网页,然后在网页中调起支付宝客户端支付,蚂蚁金服的开发文档上明确写有支付宝支持手机网站支付,所以那就集成呗,但是做完之后出现了一个问题,不知道是不是Android端集成出现了细节问题,然后再使用支付的时候,支付宝客户端具有一定的失败率,所以失败了只能采用收银台支付,虽然可以实现支付,但是体验方面还是达不到公司的要求。
在H5中启动支付宝我们可以看到这个界面
他说他在尝试打开,其实也就是在检测是否安装的支付宝客户端,但是不知道为什么,有时候会失败,然后就只能走收银台了,但是收银台是需要登录的,所以体验方面不是很好,但是我尝试在浏览器上访问url的时候,调起支付宝客户端就可以的,不会出现失败的情况,看来我们得想办法借用浏览器的能力来启动支付宝了。
本地用的是webview,所以拦截url还是比较方便的,通过打印url,发现有一个url是这样的alipays://platformapi/startApp?
这个就是检测的程序了,然后我们在WebView中加入这样一句话:
public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.contains("alipays://platformapi")) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity( intent ); } else { view.loadUrl(url); } return false;}
意图很明显,在检测是否安装支付宝的时候,借用浏览器的能力来启动支付宝,这样效果真的不错,然后你就会看见这样一个页面:
支付宝文档(官方权威解释)
用上述方式做完之后,感觉有点不安,感觉并不是使用正规的渠道来实现的,然后又看了看支付宝的APP支付文档,中间有一个功能叫做其他接入。
支付宝其实也早就准备了这个功能,但是唯一的区别就是,这个手机网站转原生的实现,我是借助了自带浏览器,而他的实现是webview和js进行交互,拦截url,然后交给支付宝的SDK去处理,原理还是离不开他的SDK,所以他的实现方式比我的这种要麻烦一点,但是绝对权威,这点毫无疑问,所以看自己怎么选择了。
0 0
- WebView启动支付宝客户端支付失败
- WebView启动支付宝客户端支付失败的解决办法
- WebView启动支付宝客户端支付失败的解决办法
- WebView支付宝wap支付转支付宝客户端支付
- Webview调用支付宝客户端
- iOS支付功能篇:原生WebView调起支付宝客户端支付方案
- 【支付宝】支付宝支付失败:4000
- 【支付宝】支付宝支付失败:4000
- 支付宝支付失败:4000
- Android客户端支付宝支付
- 支付宝快捷支付(支付宝客户端支付)
- Android WebView调起微信支付宝支付
- 支付宝支付成功后验证失败
- 支付宝sdk 支付订单查询失败
- 调用支付宝绕过快捷支付客户端
- 支付宝 rsa 签名-客户端支付
- iOS客户端 支付宝支付 (密钥生成)
- ios调起微信客户端失败 微信支付调起失败
- Unity 获取游戏对象
- solr服务器的搭建
- 2017java
- class<T>和 class<?>类型 有什么区别
- 本地访问阿里云故障问题
- WebView启动支付宝客户端支付失败
- 1934. 移动小球
- Mesos+Marathon对比Kubernetes
- 笔试之语言特性代码记录
- mysql 5.7.10使用客户端mysql-font 连接异常 提示:The'INFORMATION_SCHEMA.SESSION_VARIABLES' feature is dis
- jQuery事件:bind、delegate、on的区别
- ElasticSearch的update_by_query方法
- redis.conf配置详细解析
- JPEG算法解密(三)