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 相关文章推荐
jqeury-easyui-layout问题解决方法
Mar 24 Javascript
JavaScript中的Math 使用介绍
Apr 21 Javascript
通过url查找a元素应用案例
Apr 29 Javascript
jQuery简单图表peity.js使用示例
May 02 Javascript
javascript中String对象的slice()方法分析
Dec 20 Javascript
JavaScript动态插入CSS的方法
Dec 10 Javascript
BootStrap实现轮播图效果(收藏)
Dec 30 Javascript
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
webpack dll打包重复问题优化的解决
Oct 10 Javascript
使用angular-cli webpack创建多个包的方法
Oct 16 Javascript
基于element-ui组件手动实现单选和上传功能
Dec 06 Javascript
angular6 填坑之sdk的方法
Dec 27 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
在数据量大(超过10万)的情况下
2007/01/15 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
详解JavaScript的变量
2019/04/04 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
在Python中使用SQLite的简单教程
2015/04/29 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
windows下安装Python和pip终极图文教程
2017/03/05 Python
python构建自定义回调函数详解
2017/06/20 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
如何基于Python创建目录文件夹
2019/12/31 Python
python打包生成so文件的实现
2020/10/30 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
人力资源管理毕业生自荐信
2013/11/21 职场文书
大学生最常用的自我评价
2013/12/07 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
政协委员个人总结
2015/03/03 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
学术会议通知
2015/04/15 职场文书