Android 通过scheme跳转支付宝实现支付

这篇具有很好参考价值的文章主要介绍了Android 通过scheme跳转支付宝实现支付。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文地址: Android 通过scheme跳转支付宝实现支付 - Stars-One的杂货小窝

需求的来源是支付功能,由于支付宝不允许个人开通具有webhook的支付服务,所以是对接了一个支付系统(应该算作四方支付)。创建订单后,系统会返回一个h5链接。
对于PC版的软件,将此链接转为二维码,然后提示用户使用支付宝扫码就能够触发付款操作;
而对于Android软件来说,这样的流程可不合适

实际上,扫码之后就是通过支付宝内置浏览器打开了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=${URLEncoder.encode(payUrl)}"
    val intent = Intent(Intent.ACTION_VIEW, Uri.parse(scheme))
    ActivityUtils.startActivity(intent)
} else {
    ToastUtils.showShort("抱歉,当前手机未安装支付宝APP...")
}

注意: 这里要使用urlencode编码一下支付地址!

【开源库推荐】#2 AndroidUtilCode Android常用工具类大全(附API使用说明) - Stars-One的杂货小窝

不过这里遇到了个问题了,由用户反馈说支付不了

排查一下,发现是我项目里的target SDK变更为了30,而API 30,无法获取包名,详情可见此文声明软件包可见性需求  |  Android 开发者  |  Android Developers

不过由于我用的是工具库,所以把AndroidUtilCode库更新到最新版本就解决了此问题

PS: 实际上实现效果与官方支付宝的APP支付有些不同,上述的实现效果就是,会先触发支付宝打开一个网页,然后再弹出一个付款的对话框;

而官方支付宝的APP支付的话,就是会直接弹出付款的对话,没有打开网页的这一步操作,不过也是还能接受

最后我碎碎念下,微信这个APP就是垃圾,限制太多了,对开发者极度不友好,不同于支付宝,它是直接限制了scheme,除非你是它白名单里,否则不允许你用它里面浏览器打开页面

Android 通过scheme跳转支付宝实现支付

所以估计我以后不会对接微信支付!!

补充 scheme收集

  • 来自 酷安'掏友'的内容
  • 酷安'掏友'分享的飞书文档

下面是我从上面文章里抽取一些可能开发会用的scheme:

应用 说明 scheme
QQ 指定QQ号聊天页跳转 mqqwpa://im/chat?chat_type=wpa&uin=qq号
QQ QQ群聊天页 mqqwpa://im/chat?chat_type=group&uin=群号
QQ 指定群资料页 mqqapi://card/show_pslcard?src_type=internal&version=1&uin=群号&card_type=group
QQ 指定QQ号资料页 mqqapi://card/show_pslcard?src_type=internal&version=1&uin=QQ号
QQ 空间跳转 mqqapi://qzone/activefeed
微信 付款 android-app://com.tencent.mm/#Intent;action=com.tencent.mm.action.BIZSHORTCUT;launchFlags=0x4000000;S.LauncherUI.Shortcut.LaunchType=launch_type_offline_wallet;end
微信 扫一扫 #Intent;action=com.tencent.mm.action.BIZSHORTCUT;launchFlags=0x4000000;B.LauncherUI.From.Scaner.Shortcut=true;end
微信 联系人/群聊/公众号跳转 android-app://com.tencent.mm/#Intent;action=com.tencent.mm.action.BIZSHORTCUT;B.LauncherUI.From.Biz.Shortcut=true;S.LauncherUI.Shortcut.Username=ID;end
微信 跳转微信收藏
微信

上面微信的联系人跳转,需要个ID,关于如何获取,可见下图
Android 通过scheme跳转支付宝实现支付文章来源地址https://www.toymoban.com/news/detail-424954.html

补充 - 跳转网易云音乐打开链接

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跳转支付宝实现支付的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 2022支付宝红包跳转页面_微信跳转支付宝红包实现

    2022支付宝红包跳转页面_微信跳转支付宝红包实现

    教你微信点击短链接直接跳转到支付宝领红包 qrcode后的值就是你所要跳转页面的链接地址 h5唤醒支付宝指定页面     方案1:跳转到支付宝并自动聚焦到搜索框 方案2:跳转到支付宝并自动领取红包 代码一键生成不懂联系wx_wzmslr 方案3:跳转到支付宝并打开扫码 完整: 微信跳

    2024年02月08日
    浏览(26)
  • vue通过router地址传参跳转同一路由页面,页面不刷新的解决办法

    vue、 vue-router@4 记录一下最近遇到的vue路由页面间的跳转的问题,其中就涉及到了不同路由的跳转(/a/b1 = /a/b2)、相同路由不同参数间的跳转(/a/b?c=1 = /a/b?c=2)、相同页面锚点跳转(/a/b#id1 =/a/b#id2) 原因:渲染的是同一组件 解决:可以在不刷新的页面通过监听route,重新加载

    2024年02月04日
    浏览(12)
  • h5页面跳转小程序-----明文URL Scheme

    h5页面跳转小程序-----明文URL Scheme

         1.1  登录微信公众平台      1.2  设置 - 基本设置 - 隐私与安全 - 明文scheme拉起此小程序 - 配置          1.3  进入配置后,在里面配置允许通过scheme URL进入的小程序路径 ps:多个路径用分号隔开,且路径必须在小程序正式版存在 否则会报: 小程序path格式不对,请填

    2024年03月26日
    浏览(8)
  • 【AI选股】如何通过python调用通达信-小达实现AI选股(量化又多了一个选股工具,原文Chrome浏览器请改为Edge浏览器)

    【AI选股】如何通过python调用通达信-小达实现AI选股(量化又多了一个选股工具,原文Chrome浏览器请改为Edge浏览器)

    ChatGPT火遍网络,那么有没有可以不用写公式就可以实现AI选股的方法?答案是有,今天我们就来试试通达信的小达,让小达按我们的要求去进行选股。 使用Chrome浏览器报错的请改为Edge浏览器,或者Firefox浏览器,参考如下文章: 【Python小技巧】browser_cookie3访问Chrome浏览器Co

    2024年02月11日
    浏览(10)
  • 实现支付宝APP扫码跳转小程序并传参

    实现支付宝APP扫码跳转小程序并传参

    目录 功能需求 实现思路 第一步,发布二维码的关联规则 发布关联规则的步骤 精确匹配和模糊匹配的区别 精确匹配 模糊匹配 添加小程序功能页 发布关联规则 第二步,读取参数 小程序应用的生命周期 获取二维码中携带的参数 我的需求实现代码片段  代码调试  在手机中打

    2024年02月05日
    浏览(172)
  • springboot 跳转微信小程序 生成URL Scheme URL Link

    springboot 跳转微信小程序 生成URL Scheme URL Link

            通过微信文档中的URL link或URL Scheme方式生成,更多事项细节见官方文档 话不多说,直接上代码

    2024年02月08日
    浏览(6)
  • android 11及以上如何通过包名跳转APP

    下面是通过包名跳转到其他APP的代码,以微信APP包名为例: 通过日志可知道,intent为null,当包名错误或者该APP未配置启动Activity时,就会为null,为啥呢? 经过一晚上的上网查询,找到答案了,如下: Android 11以下,上述代码就可以跳转,但是11及以上,查询包名相关的方法都

    2024年01月25日
    浏览(11)
  • h5页面跳转到微信小程序之利用URL Scheme接口

    h5页面跳转到微信小程序之利用URL Scheme接口

    首先想要跳转到微信小程序得先知道 AppID 和 secret 如果不知道的情况下是无法跳转的 urlscheme.generate 此时遇到一个问题是获取auth.getAccessToken appid 此值在小程序里就可以获取 到 secret 这个值只能在可在 微信公众平台 - 设置 - 开发设置 里面找到 接下来放代码 这样就可以在手机

    2024年02月15日
    浏览(40)
  • h5页面跳转微信小程序(最简单的方法|URL Scheme)

    h5页面跳转微信小程序(最简单的方法|URL Scheme)

    H5页面跳转微信小程序的需求是普遍存在的。由于微信小程序是一种只能在微信内部访问的应用程序,而H5页面可以在任何浏览器中访问,因此需要通过跳转来实现两者之间的衔接。 对于用户来说,H5页面跳转微信小程序可以提供更好的用户体验。用户可以在H5页面中浏览和选

    2024年02月02日
    浏览(9)
  • 如何通过Android手机查找IP地址

    如何通过Android手机查找IP地址

    我们要如何获取IP地址?其实有一个简单的方法,在Android手机上查找IP地址也很简单,只需要几个步骤,公网IP地址的查询过程更加简单。 1、Android手机查找私有IP地址 我们先来看看你的安卓手机的私有IP地址。通常私有IP地址对于 Android 智能手机是唯一的。 可以通过以下步骤

    2024年02月09日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包