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 相关文章推荐
JavaScript For Beginners(转载)
Jan 05 Javascript
Javascript 构造函数 实例分析
Nov 26 Javascript
学习ExtJS accordion布局
Oct 08 Javascript
老鱼 浅谈javascript面向对象编程
Mar 04 Javascript
javascript数组去重3种方法的性能测试与比较
Mar 26 Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
Apr 01 Javascript
js canvas仿支付宝芝麻信用分仪表盘
Nov 16 Javascript
JS重载实现方法分析
Dec 16 Javascript
基于JavaScript实现屏幕滚动效果
Jan 18 Javascript
css和js实现弹出登录居中界面完整代码
Nov 26 Javascript
jQuery中的for循环var与let的区别
Apr 21 jQuery
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+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
php小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
jQuery-mobile事件监听与用法详解
2016/11/23 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
React学习笔记之事件处理(二)
2017/07/02 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
python实现发送和获取手机短信验证码
2016/01/15 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
python中count函数简单用法
2020/01/05 Python
基于Python测试程序是否有错误
2020/05/16 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
美国购车网站:TrueCar
2016/10/19 全球购物
基本款天堂:Everlane
2017/05/13 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
草船借箭教学反思
2014/02/03 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
公司活动总结怎么写
2014/06/25 职场文书
优秀教师个人总结
2015/02/11 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript