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之querySelector和querySelectorAll使用介绍
Dec 20 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
Nov 12 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
May 29 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
Sep 10 Javascript
HTML5实现留言和回复页面样式
Jul 22 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
Jun 09 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
Oct 05 Javascript
jQuery图片切换动画效果
Feb 28 Javascript
vue-cli中的webpack配置详解
Sep 25 Javascript
JS实现自定义弹窗功能
Aug 08 Javascript
Vue 理解之白话 getter/setter详解
Apr 16 Javascript
javascript中导出与导入实现模块化管理教程
Dec 03 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程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
Prototype Object对象 学习
2009/07/12 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
JS中递归函数
2016/06/17 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
Python实现视频下载功能
2017/03/14 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
python实现飞机大战小游戏
2019/11/08 Python
基于python plotly交互式图表大全
2019/12/07 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
Vrbo英国:预订度假屋
2020/08/19 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
会计师职业生涯规划范文
2014/02/18 职场文书
优秀教师个人总结
2015/02/11 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
2015年小学开学寄语
2015/02/27 职场文书
婚宴新娘致辞
2015/07/28 职场文书