WebView启动支付宝客户端支付失败的问题小结

发布时间 - 2026-01-10 22:27:03    点击率:

目前在做一个用App加载H5网页,然后在网页中调起支付宝客户端支付,蚂蚁金服的开发文档上明确写有支付宝支持手机网站支付,所以那就集成呗,但是做完之后出现了一个问题,不知道是不是Android端集成出现了细节问题,然后再使用支付的时候,支付宝客户端具有一定的失败率,所以失败了只能采用收银台支付,虽然可以实现支付,但是体验方面还是达不到公司的要求。

在H5中启动支付宝我们可以看到这个界面

他说他在尝试打开,其实也就是在检测是否安装的支付宝客户端,但是不知道为什么,有时候会失败,然后就只能走收银台了,但是收银台是需要登录的,所以体验方面不是很好,但是我尝试在浏览器上访问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;
}

意图很明显,在检测是否安装支付宝的时候,借用浏览器的能力来启动支付宝,这样效果真的不错,然后你就会看见这样一个页面:

支付宝文档(官方权威解释)

用上述方式做完之后,感觉有点不安,感觉并不是使用正规的渠道来实现的,然后又看了看支付宝的APP支付文档,中间有一个功能叫做其他接入。

支付宝其实也早就准备了这个功能,但是唯一的区别就是,这个手机网站转原生的实现,我是借助了自带浏览器,而他的实现是webview和js进行交互,拦截url,然后交给支付宝的SDK去处理,原理还是离不开他的SDK,所以他的实现方式比我的这种要麻烦一点,但是绝对权威,这点毫无疑问,所以看自己怎么选择了。

以上所述是小编给大家介绍的WebView启动支付宝客户端支付失败的问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# webview  # 支付宝  # 支付宝客户端  # android中webview控件和javascript交互实例  # 解析Android中webview和js之间的交互  # Android webview与js交换JSON对象数据示例  # 基于Android中Webview使用自定义的javascript进行回调的问题详解  # 客户端  # 收银台  # 文档  # 做完  # 小编  # 的是  # 我是  # 手机网站  # 是在  # 很好  # 他说  # 那就  # 也就  # 在此  # 他在  # 是这样  # 有一定  # 看了看  # 给大家 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: jQuery中的100个技巧汇总  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  手机网站制作与建设方案,手机网站如何建设?  如何快速生成可下载的建站源码工具?  EditPlus中的正则表达式 实战(4)  韩国服务器如何优化跨境访问实现高效连接?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel怎么判断请求类型_Laravel Request isMethod用法  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel如何使用Telescope进行调试?(安装和使用教程)  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  详解MySQL数据库的安装与密码配置  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  如何基于云服务器快速搭建网站及云盘系统?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  如何在腾讯云免费申请建站?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  如何在企业微信快速生成手机电脑官网?  详解Huffman编码算法之Java实现  Laravel如何处理异常和错误?(Handler示例)  北京网站制作的公司有哪些,北京白云观官方网站?  nodejs redis 发布订阅机制封装实现方法及实例代码  深圳网站制作的公司有哪些,dido官方网站?  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  如何获取上海专业网站定制建站电话?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  iOS发送验证码倒计时应用  Python制作简易注册登录系统  如何在建站之星网店版论坛获取技术支持?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Laravel如何实现用户注册和登录?(Auth脚手架指南)