首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-04-25 09:21
  • 3189
  • 11765
blog.csdn.net
一、配置 backSCAppScheme
  • 在跳转支付宝的链接中,添加 backSCAppScheme 参数,指定回调到当前 App 的 Scheme 。例如:
alipays://platformapi/startapp?appId=XXXXXXXXXXXX&backSCAppScheme=myAppScheme
  • 1
  • 这里的 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"
              }
            ]
          }
        ]
      }
    ]
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 这样,当支付宝通过 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 URL
    const returnedUrl = want.uri;
    if (returnedUrl && returnedUrl.startsWith('myAppScheme://')) {
      
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
四、拉起支付宝功能
  • 在 HarmonyOS 中,可以通过 UIAbilityContext 模块拉起支付宝功能。例如:
import { common, Want, Permissions } from '@kit.AbilityKit'

let url = 'alipays://platformapi/startapp?appId=XXXXXXXXXXXX&backSCAppScheme=myAppScheme'
let context = getContext(this) as common.UIAbilityContext
    let 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}`);
      });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 调用 openAlipay 方法后,会跳转到支付宝的指定功能页面。
五、支付宝完成操作后回调
  • 当支付宝完成操作后,会通过 backSCAppScheme 指定的 Scheme 回调到 App。例如:
myAppScheme://?result=success
  • 1
  • 在 UIAbility 的 onNewWant 方法中,可以解析回调 URL 并跳转回 App 的指定页面。
六、注意事项
  • Scheme 唯一性:确保 backSCAppScheme 中的 Scheme 是唯一的,避免与其他应用冲突。
  • 安全性:在服务端验证回调结果时,务必使用支付宝公钥对返回数据进行验签,确保数据未被篡改。
  • 兼容性:不同版本的支付宝客户端可能对回调机制的支持有所不同,建议进行充分的测试。
七、完整流程示例
  • 在 App 中调用支付宝功能,传递 backSCAppScheme 参数;
  • 支付宝完成操作后,通过 backSCAppScheme 回调到 App;
  • 在 UIAbility 的 onNewWant 方法中解析回调 URL,并跳转回 App 的指定页面。
注:本文转载自blog.csdn.net的╰つ栺尖篴夢ゞ的文章"https://blog.csdn.net/Forever_wj/article/details/146550695"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

135
HarmonyOS
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top