当前位置: 首页 > news >正文

HarmonyOS之深入解析跳转支付宝小程序完成操作后如何自动返回App

一、配置 backSCAppScheme
  • 在跳转支付宝的链接中,添加 backSCAppScheme 参数,指定回调到当前 App 的 Scheme 。例如:
alipays://platformapi/startapp?appId=XXXXXXXXXXXX&backSCAppScheme=myAppScheme
  • 这里的 myAppScheme 是 App 自定义的 Scheme,支付宝完成操作后会通过该 Scheme 回调到当前的 App。
二、注册 Scheme
  • 为了让 App 能够接收支付宝的回调,需要在 HarmonyOS 应用的 module.json5 中注册对应的 Scheme。例如:
{"module": {"name": "entry","type": "entry","description": "$string:module_desc","mainElement": "EntryAbility","deviceTypes": ["phone"],"abilities": [{"name": "EntryAbility","srcEntry": "./ets/entryability/EntryAbility.ets","description": "$string:EntryAbility_desc","icon": "$media:logo_launcher","label": "$string:EntryAbility_label","startWindowIcon": "$media:logo_login","startWindowBackground": "$color:start_window_background","exported": true,"skills": [{"actions": ["ohos.want.action.view"],"uris": [{"scheme": "myAppScheme"}]}]}]}
}
  • 这样,当支付宝通过 myAppScheme:// 回调时,系统会将回调路由到 App。
三、处理 Scheme 回调
  • 在 HarmonyOS 中,可以通过 UIAbility 的 onCreate 方法监听 Scheme 回调,并执行跳转回 App 的逻辑。以下是一个示例代码:
import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import router from '@ohos.router';export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');}onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {// 获取支付宝返回的 Scheme URLconst returnedUrl = want.uri;if (returnedUrl && returnedUrl.startsWith('myAppScheme://')) {}}
}
四、拉起支付宝功能
  • 在 HarmonyOS 中,可以通过 UIAbilityContext 模块拉起支付宝功能。例如:
import { common, Want, Permissions } from '@kit.AbilityKit'let url = 'alipays://platformapi/startapp?appId=XXXXXXXXXXXX&backSCAppScheme=myAppScheme'
let context = getContext(this) as common.UIAbilityContextlet want: Want = {uri: url,};context.startAbility(want).then(() => {Router.back()console.info('Open link succeeded.');}).catch((err:BusinessError) => {console.error(`Open link failed, code is ${err.code}, message is ${err.message}`);});
  • 调用 openAlipay 方法后,会跳转到支付宝的指定功能页面。
五、支付宝完成操作后回调
  • 当支付宝完成操作后,会通过 backSCAppScheme 指定的 Scheme 回调到 App。例如:
myAppScheme://?result=success
  • 在 UIAbility 的 onNewWant 方法中,可以解析回调 URL 并跳转回 App 的指定页面。
六、注意事项
  • Scheme 唯一性:确保 backSCAppScheme 中的 Scheme 是唯一的,避免与其他应用冲突。
  • 安全性:在服务端验证回调结果时,务必使用支付宝公钥对返回数据进行验签,确保数据未被篡改。
  • 兼容性:不同版本的支付宝客户端可能对回调机制的支持有所不同,建议进行充分的测试。
七、完整流程示例
  • 在 App 中调用支付宝功能,传递 backSCAppScheme 参数;
  • 支付宝完成操作后,通过 backSCAppScheme 回调到 App;
  • 在 UIAbility 的 onNewWant 方法中解析回调 URL,并跳转回 App 的指定页面。

http://www.mrgr.cn/news/96150.html

相关文章:

  • 设计秒杀系统(高并发的分布式系统)
  • node-ddk,electron,主进程通讯,窗口间通讯
  • 为AI聊天工具添加一个知识系统 之152 当今AI模型和AI工具应用中的核心矛盾
  • cesium中label样式修改为圆角
  • Ubuntu24.04 离线安装 MySQL8.0.41
  • 软考《信息系统运行管理员》- 5.3 信息系统数据资源备份
  • 在Cesium中创建渐变色墙体效果
  • [二值图像处理] 骨架线提取、骨架端点、交叉点提取
  • Ollama未授权访问
  • 力扣:回溯算法
  • AS400==WINDOWS开发COBOL/安装DB2/连接DB2
  • 学有所记——初探向量数据库Weaviate
  • 深度学习入门1 基于Python的理论与实现
  • kubeadm部署k8s-1.32版本集群(1个master,1个worker)
  • 电机控制常见面试问题(二十)
  • 每日一题-力扣-2829. k-avoiding 数组的最小总和 0326
  • gz sim机器人SDF模型 [持续更新]
  • [unity 点击事件] 区域响应点击事件,排除子节点区域,Raycast Target 应用
  • Android实践开发制作小猴子摘桃小游戏
  • 系统架构设计知识体系总结