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对一个json数组深度赋值示例
Jul 27 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
Nov 02 Javascript
学习JavaScript图片预加载模块
Nov 07 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
Vue原理剖析 实现双向绑定MVVM
May 03 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
vue cli 3.0 使用全过程解析
Jun 14 Javascript
微信小程序数据分析之自定义分析的实现
Aug 17 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
Sep 26 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
Jun 06 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/08/22 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
关于Python数据结构中字典的心得
2017/12/04 Python
谈谈python中GUI的选择
2018/03/01 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
Python元组常见操作示例
2019/02/19 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
python数据预处理方式 :数据降维
2020/02/24 Python
jupyter 导入csv文件方式
2020/04/21 Python
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
大学生职业生涯设计书
2014/01/02 职场文书
教职工代表大会主持词
2014/04/01 职场文书
市场总经理岗位职责
2014/04/11 职场文书
市场营销调查计划书
2014/05/02 职场文书
银行求职信模板
2015/03/20 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
python基础之//、/与%的区别详解
2022/06/10 Python