Android 通过scheme跳转支付宝实现支付
实际上,扫码之后就是通过支付宝内置浏览器打开了h5,如果我能有个方法,可以触发让支付宝去打开支付的h5链接,那么就是相当于实现了唤起APP支付的功能了
于是就轮到了今天所说的scheme实现了功能
步骤
1.知道对应的scheme
首先,我们要知道对应的scheme,这个是重点,但好在酷安人均大佬,已经有人找到了,就是下面的这个,需要在后面拼接下网址即可
alipays://platformapi/startapp?appId=20000067&url=
2.触发scheme
关于触发scheme,这里就涉及到Android里的Intent相关的知识了,这里不详细说明了,直接上代码
val payUrl =""//支付的h5地址
val scheme = "alipays://platformapi/startapp?appId=20000067&url=${payUrl}"
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(scheme))
ActivityUtils.startActivity(intent)
PS: ActivityUtils是个AndroidUtilCode库里的一个工具类,各位也可以直接用activity对象的startActivity方法
当然,这里我们还得加上个判断,来判断用户是否安装了支付宝应用
//判断是否安装支付宝
//判断是否安装支付宝
if (AppUtils.isAppInstalled("com.eg.android.AlipayGphone")) {val scheme = "alipays://platformapi/startapp?appId=20000067&url=${payUrl}"val intent = Intent(Intent.ACTION_VIEW, Uri.parse(scheme))ActivityUtils.startActivity(intent)
} else {ToastUtils.showShort("抱歉,当前手机未安装支付宝APP...")
}
【开源库推荐】#2 AndroidUtilCode Android常用工具类大全(附API使用说明) - Stars-One的杂货小窝
不过这里遇到了个问题了,由用户反馈说支付不了
排查一下,发现是我项目里的target SDK变更为了30,而API 30,无法获取包名,详情可见此文声明软件包可见性需求 | Android 开发者 | Android Developers
不过由于我用的是工具库,所以把AndroidUtilCode库更新到最新版本就解决了此问题
PS: 实际上实现效果与官方支付宝的APP支付有些不同,上述的实现效果就是,会先触发支付宝打开一个网页,然后再弹出一个付款的对话框;
而官方支付宝的APP支付的话,就是会直接弹出付款的对话,没有打开网页的这一步操作,不过也是还能接受
最后我碎碎念下,微信这个APP就是垃圾,限制太多了,对开发者极度不友好,不同于支付宝,它是直接限制了scheme,除非你是它白名单里,否则不允许你用它里面浏览器打开页面
所以估计我以后不会对接微信支付!!
补充 scheme收集
来自 酷安’掏友’的内容
酷安’掏友’分享的飞书文档
下面是我从上面文章里抽取一些可能开发会用的scheme:
上面微信的联系人跳转,需要个ID,关于如何获取,可见下图
补充 - 跳转网易云音乐打开链接
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse("https://www.cnblogs.com/stars-one")
intent.setPackage("com.netease.cloudmusic")
ActivityUtils.startActivity(intent)
Android 通过scheme跳转支付宝实现支付相关推荐
- android通过webview调起支付宝app支付
android通过webview调起支付宝app支付 webview在加载网页的时候会默认调起手机自带的浏览器加载网页,用户体验不好.但当用户设置浏览器客户端(setWebViewClient)设置这 ...
- Android URL scheme跳转失败(源码实现排查思路知识拓展)
目录 问题 实现 排查思路 知识拓展 包可见性 scheme targetsdkVersion 问题 App A的Activity A通过scheme跳转至App B的Activity B,跳转失败. ...
- android url scheme 跳转传值,如何自定义 URL Scheme 进行跳转
一.URL Scheme 简介和作用 在 :// 之前的部分就称为 URL Scheme. 也就是说 http://www.jianshu.com/ 的 URL Scheme 就是 http . 更多 ...
- android 通过webview调起支付宝app支付
网站学习:http://blog.csdn.net/zhuyu19911016520/article/details/71763900 转载于:https://www.cnblogs.com/niun ...
- 支付宝移动支付之IOSApp调用支付宝钱包
最近客户提出要开发一个IOS上的app作为访问他们网站的途径之一,为什么说之一呢,因为目前PC和Mobile这两个站目前都已经上线了. 所以问题就简单了,我们只需要把mobile站UI修改一下,然后在 ...
- SpringBoot+Vue整合支付宝沙箱支付
SpringBoot+Vue2整合实现支付宝沙箱支付 原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!! 在进行电脑网站开发时我们 ...
- Android应用识别支付宝收款二维码直接跳转支付宝转账界面
我们知道应用可以通过scheme跳转应用,支付宝的scheme private static final String URL_FORMAT ="intent://platformapi/s ...
- app内嵌h5支付功能,跳转支付宝微信,vue组件
一.功能梳理 app内前h5涉及到支付的功能,ios非实物商品实付需要使用ios原生支付方式,实物商品则可以三方支付,主要的实现思路为后端返回跳转支付宝或微信的支付scheme链接,前端进行跳转支付, ...
- Android Scheme 跳转
Android Scheme跳转如下: String scheme = "alipayqr://platformapi/startapp?saId=20000056"; try { ...
最新文章
- android id 重名_Android App 自定义权限重名不能安装解决办法
- 效率提升多倍, 推荐值得收藏40 个命令总结
- [环境]Mac Homebrew自动安装
- DL之DNN:利用DNN算法对mnist手写数字图片识别数据集(sklearn自带,1797*64)训练、预测(95%)
- 虚拟机上安装完成redhat后无法上网和Xshell无法连接虚拟机的问题
- 小程序开发 js里面array操作的方法列表。
- linux之iptables详解及配置
- Python爬虫入门教程 29-100 手机APP数据抓取 pyspider
- js判断对象上是否含有某个属性
- 什么是蜂窝移动网络?
- validation
- 周爱民对提升程序员自身技术能力的建议
- 怎么查看服务器的详细信息,服务器查看详细信息
- Unity AzureKinect 初识(二) 姿势识别
- C51单片机实现呼吸灯
- Abnova 6-酮-PGF1-α ELISA 试剂盒说明书
- android主动获取手机电量,获取Android手机的电量信息
- 市值一夜间蒸发千亿,拼多多离不开黄峥?
- Jeremy Keith谈HTML5设计原则
- ui设计移动端字体适配_移动端字体ui设计 移动端界面设计规范
热门文章
- ArcGIS在城乡规划中的应用【2】——ArcScene三维地形展示
- ADB使用总结(内附ADB push apk过程)
- 【汇正财经】新三板是什么意思?新三板有哪些优点?
- 华为那款智慧屏用的鸿蒙系统,读创--华为智慧屏来了,将采用鸿蒙系统
- [error] [mysql]:1034 Incorrect key file for table 'table_name'; try to repair it
- ubuntu nginx创建多站点配制
- 李宏毅机器学习(一补充)
- Two slices reporting being the first in the same frame. 和 Could not find ref with POCXX问题
- PdfjsAnnotate批注集成富文本编辑器源码
- Memristor+Matlab 仿真(四)