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 相关文章推荐
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
May 07 Javascript
JavaScript的9个陷阱及评点分析
May 16 Javascript
禁用Tab键JS代码兼容Firefox和IE
Apr 18 Javascript
Javascript图片上传前的本地预览实例
Jun 16 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
Mar 24 Javascript
js实现分割上传大文件
Mar 09 Javascript
浅谈JavaScript的push(),pop(),concat()方法
Jun 03 Javascript
Javascript实现数组中的元素上下移动
Apr 28 Javascript
Angular.js指令学习中一些重要属性的用法教程
May 24 Javascript
JQueryDOM之样式操作
Mar 27 jQuery
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
Sep 09 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
yii中widget的用法
2014/12/03 PHP
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
大专生毕业的自我评价
2014/02/06 职场文书
火车的故事教学反思
2014/02/11 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
小学家长意见怎么写
2015/06/03 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
python lambda 表达式形式分析
2022/04/03 Python
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android