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 相关文章推荐
Jquery操作下拉框(DropDownList)实现取值赋值
Aug 13 Javascript
详谈jQuery中的this和$(this)
Nov 13 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
Jul 09 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
Mar 20 jQuery
Vue中使用Sortable的示例代码
Apr 07 Javascript
Vue-router 中hash模式和history模式的区别
Jul 24 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
Nov 29 Javascript
微信小程序中的上拉、下拉菜单功能
Mar 13 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 Javascript
Vue实现boradcast和dispatch的示例
Nov 13 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
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
深入了解NumPy 高级索引
2020/07/24 Python
使用django自带的user做外键的方法
2020/11/30 Python
python3中for循环踩过的坑记录
2020/12/14 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
网络技术支持面试题
2013/04/22 面试题
实习生个人的自我评价
2013/12/08 职场文书
大学毕业生通用自我评价
2014/01/05 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
档案工作汇报材料
2014/08/21 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
婚礼父母答谢词
2015/01/04 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
钢琴师观后感
2015/06/12 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python