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 相关文章推荐
用ADODB.Stream转换
Jan 22 Javascript
js onpropertychange输入框 事件获取属性
Mar 26 Javascript
javascript学习笔记(五)正则表达式
Apr 08 Javascript
jQuery 快速结束当前正在执行的动画
Nov 20 Javascript
浅谈js 闭包引起的内存泄露问题
Jun 22 Javascript
jquery的幻灯片图片切换效果代码分享
Sep 07 Javascript
Javascript实现的SHA-256加密算法完整实例
Feb 02 Javascript
浅谈JavaScript中数组的增删改查
Jun 20 Javascript
Vue.js每天必学之计算属性computed与$watch
Sep 05 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
Jun 28 Javascript
shiro授权的实现原理
Sep 21 Javascript
JavaScript封装单向链表的示例代码
Sep 17 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反向代理类代码
2014/08/15 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
python基础教程之缩进介绍
2014/08/29 Python
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
实习评语大全
2014/04/26 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
小学母亲节活动总结
2015/02/10 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
以下牛机,你有几个
2022/04/05 无线电