实际上,扫码之后就是通过支付宝内置浏览器打开了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跳转支付宝实现支付相关推荐

  1. android通过webview调起支付宝app支付

    android通过webview调起支付宝app支付 webview在加载网页的时候会默认调起手机自带的浏览器加载网页,用户体验不好.但当用户设置浏览器客户端(setWebViewClient)设置这 ...

  2. Android URL scheme跳转失败(源码实现排查思路知识拓展)

    目录 问题 实现 排查思路 知识拓展 包可见性 scheme targetsdkVersion 问题 App A的Activity A通过scheme跳转至App B的Activity B,跳转失败. ...

  3. android url scheme 跳转传值,如何自定义 URL Scheme 进行跳转

    一.URL Scheme 简介和作用 在 :// 之前的部分就称为 URL Scheme. 也就是说 http://www.jianshu.com/ 的 URL Scheme 就是 http . 更多 ...

  4. android 通过webview调起支付宝app支付

    网站学习:http://blog.csdn.net/zhuyu19911016520/article/details/71763900 转载于:https://www.cnblogs.com/niun ...

  5. 支付宝移动支付之IOSApp调用支付宝钱包

    最近客户提出要开发一个IOS上的app作为访问他们网站的途径之一,为什么说之一呢,因为目前PC和Mobile这两个站目前都已经上线了. 所以问题就简单了,我们只需要把mobile站UI修改一下,然后在 ...

  6. SpringBoot+Vue整合支付宝沙箱支付

    SpringBoot+Vue2整合实现支付宝沙箱支付 原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!! 在进行电脑网站开发时我们 ...

  7. Android应用识别支付宝收款二维码直接跳转支付宝转账界面

    我们知道应用可以通过scheme跳转应用,支付宝的scheme private static final String URL_FORMAT ="intent://platformapi/s ...

  8. app内嵌h5支付功能,跳转支付宝微信,vue组件

    一.功能梳理 app内前h5涉及到支付的功能,ios非实物商品实付需要使用ios原生支付方式,实物商品则可以三方支付,主要的实现思路为后端返回跳转支付宝或微信的支付scheme链接,前端进行跳转支付, ...

  9. Android Scheme 跳转

    Android Scheme跳转如下: String scheme = "alipayqr://platformapi/startapp?saId=20000056"; try { ...

最新文章

  1. android id 重名_Android App 自定义权限重名不能安装解决办法
  2. 效率提升多倍, 推荐值得收藏40 个命令总结
  3. [环境]Mac Homebrew自动安装
  4. DL之DNN:利用DNN算法对mnist手写数字图片识别数据集(sklearn自带,1797*64)训练、预测(95%)
  5. 虚拟机上安装完成redhat后无法上网和Xshell无法连接虚拟机的问题
  6. 小程序开发 js里面array操作的方法列表。
  7. linux之iptables详解及配置
  8. Python爬虫入门教程 29-100 手机APP数据抓取 pyspider
  9. js判断对象上是否含有某个属性
  10. 什么是蜂窝移动网络?
  11. validation
  12. 周爱民对提升程序员自身技术能力的建议
  13. 怎么查看服务器的详细信息,服务器查看详细信息
  14. Unity AzureKinect 初识(二) 姿势识别
  15. C51单片机实现呼吸灯
  16. Abnova 6-酮-PGF1-α ELISA 试剂盒说明书
  17. android主动获取手机电量,获取Android手机的电量信息
  18. 市值一夜间蒸发千亿,拼多多离不开黄峥?
  19. Jeremy Keith谈HTML5设计原则
  20. ui设计移动端字体适配_移动端字体ui设计 移动端界面设计规范

热门文章

  1. ArcGIS在城乡规划中的应用【2】——ArcScene三维地形展示
  2. ADB使用总结(内附ADB push apk过程)
  3. 【汇正财经】新三板是什么意思?新三板有哪些优点?
  4. 华为那款智慧屏用的鸿蒙系统,读创--华为智慧屏来了,将采用鸿蒙系统
  5. [error] [mysql]:1034 Incorrect key file for table 'table_name'; try to repair it
  6. ubuntu nginx创建多站点配制
  7. 李宏毅机器学习(一补充)
  8. Two slices reporting being the first in the same frame. 和 Could not find ref with POCXX问题
  9. PdfjsAnnotate批注集成富文本编辑器源码
  10. Memristor+Matlab 仿真(四)