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 相关文章推荐
Discuz! 6.1_jQuery兼容问题
Sep 23 Javascript
地址栏传递中文参数乱码在js里用escape转码
Aug 28 Javascript
利用jQuery实现可以编辑的表格
May 26 Javascript
解决checkbox的attr(checked)一直为undefined问题
Jun 16 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
Dec 16 Javascript
canvas时钟效果
Feb 16 Javascript
从零开始封装自己的自定义Vue组件
Oct 09 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
Aug 14 Javascript
React 父子组件通信的实现方法
Dec 05 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
Oct 28 Javascript
JS常用跨域方法实现原理解析
Dec 09 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基于openssl实现的非对称加密操作示例
2019/01/11 PHP
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
python学习之编写查询ip程序
2016/02/27 Python
Python 批量合并多个txt文件的实例讲解
2018/05/08 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
python3 实现口罩抽签的功能
2020/03/11 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
甲方资料员岗位职责
2013/12/13 职场文书
学前教育求职自荐信范文
2013/12/25 职场文书
员工薪酬福利制度
2014/01/17 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
房产公证书范本
2014/04/10 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
生物工程专业求职信
2014/09/03 职场文书
户籍证明模板
2014/09/28 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
房屋所有权证明
2015/06/19 职场文书
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL