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 相关文章推荐
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 Javascript
js 判断浏览器使用的语言示例代码
Mar 22 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
微信小程序左滑删除效果的实现代码
Feb 20 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 jQuery
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
Aug 17 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
vue+iview 兼容IE11浏览器的实现方法
Jan 07 Javascript
vue-router的钩子函数用法实例分析
Oct 26 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
Dec 17 Javascript
vue 点击其他区域关闭自定义div操作
Jul 17 Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 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 命名空间实例说明
2011/01/27 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
python模块restful使用方法实例
2013/12/10 Python
实用自动化运维Python脚本分享
2018/06/04 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
J2EE是技术还是平台还是框架
2016/08/14 面试题
卖车协议书范本4篇
2014/10/01 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
公安机关起诉意见书
2015/05/20 职场文书
地震捐款简报
2015/07/21 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python