WebView启动支付宝客户端支付失败的问题小结


Posted in Javascript onJanuary 11, 2017

目前在做一个用App加载H5网页,然后在网页中调起支付宝客户端支付,蚂蚁金服的开发文档上明确写有支付宝支持手机网站支付,所以那就集成呗,但是做完之后出现了一个问题,不知道是不是Android端集成出现了细节问题,然后再使用支付的时候,支付宝客户端具有一定的失败率,所以失败了只能采用收银台支付,虽然可以实现支付,但是体验方面还是达不到公司的要求。

在H5中启动支付宝我们可以看到这个界面

WebView启动支付宝客户端支付失败的问题小结

他说他在尝试打开,其实也就是在检测是否安装的支付宝客户端,但是不知道为什么,有时候会失败,然后就只能走收银台了,但是收银台是需要登录的,所以体验方面不是很好,但是我尝试在浏览器上访问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;
}

意图很明显,在检测是否安装支付宝的时候,借用浏览器的能力来启动支付宝,这样效果真的不错,然后你就会看见这样一个页面:

WebView启动支付宝客户端支付失败的问题小结

支付宝文档(官方权威解释)

用上述方式做完之后,感觉有点不安,感觉并不是使用正规的渠道来实现的,然后又看了看支付宝的APP支付文档,中间有一个功能叫做其他接入。

WebView启动支付宝客户端支付失败的问题小结

WebView启动支付宝客户端支付失败的问题小结

支付宝其实也早就准备了这个功能,但是唯一的区别就是,这个手机网站转原生的实现,我是借助了自带浏览器,而他的实现是webview和js进行交互,拦截url,然后交给支付宝的SDK去处理,原理还是离不开他的SDK,所以他的实现方式比我的这种要麻烦一点,但是绝对权威,这点毫无疑问,所以看自己怎么选择了。

以上所述是小编给大家介绍的WebView启动支付宝客户端支付失败的问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
ECMAScript 基础知识
Jun 29 Javascript
EasyUI 中 MenuButton 的使用方法
Jul 14 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
Oct 11 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
Mar 03 Javascript
jquery中$each()方法的使用指南
Apr 30 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
Nov 25 Javascript
JavaScript中数组去除重复的三种方法
Apr 22 Javascript
jquery动态遍历Json对象的属性和值的方法
Jul 27 Javascript
微信小程序 wx:key详细介绍
Oct 28 Javascript
Angularjs的$http异步删除数据详解及实例
Jul 27 Javascript
layui 上传图片 返回图片地址的方法
Sep 26 Javascript
js简单粗暴的发布订阅示例代码
Jan 23 Javascript
Bootstrap实现提示框和弹出框效果
Jan 11 #Javascript
分享bootstrap学习笔记心得(组件及其属性)
Jan 11 #Javascript
jQuery实现CheckBox全选、全不选功能
Jan 11 #Javascript
理解javascript中的闭包
Jan 11 #Javascript
javascript常用经典算法详解
Jan 11 #Javascript
总结几道关于Node.js的面试问题
Jan 11 #Javascript
微信端开发--登录小程序步骤
Jan 11 #Javascript
You might like
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
php分页函数完整实例代码
2014/09/22 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
javascript multibox 全选
2009/03/22 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
AngularJS入门教程(二):AngularJS模板
2014/12/06 Javascript
js密码强度校验
2015/11/10 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
探讨Vue.js的组件和模板
2017/10/27 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
JS实现手风琴特效
2020/11/08 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
2019年消防宣传标语集锦
2019/11/21 职场文书
浅析Django接口版本控制
2021/06/26 Python
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技