更新记录

1.0.1(2026-05-09)

明晰文档内容~

1.0.0(2026-05-09)

支付宝登录授权与支付功能更新~


平台兼容性

uni-app(5.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(5.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

z-alipay-kit 支付宝支付与授权登录 UTS 插件

1. 简介

本插件是基于 UTS (uni-app Typescript Service) 开发的支付宝原生 SDK 高级集成方案。深度封装了支付宝移动端 SDK 的核心能力,原生支持 Android、iOS 及 HarmonyOS (鸿蒙 Next)

2. 核心功能

  • 三端参数全兼容:Android、iOS、HarmonyOS 共享同一套服务端签名后的入参格式,后端无需二次开发。
  • 正规化判定:严格遵循支付宝官方校验逻辑(resultStatus: 9000 + resultCode: 200)。
  • 全自动回调:iOS 端支持 UTSiOSHookProxy 自动拦截跳转,无需修改 AppDelegate
  • 数据自动化清洗:插件内部自动解析 SDK 返回的复杂字符串,直接吐出 authCode

3. 参数构造说明 (重要)

本插件接收的 orderString (支付) 或 authInfo (授权) 必须是经过服务端签名后的格式。

3.1 支付参数 (orderString)

  • 来源:调用支付宝 alipay.trade.app.pay 接口生成。
  • 格式app_id=xxxx&method=alipay.trade.app.pay&...&sign=...
  • 参考App 支付请求参数说明

3.2 授权参数 (authInfo) - 【平台差异】

注意:授权登录参数在鸿蒙端与 Android/iOS 格式完全不同!

  • Android / iOS 平台: 采用完整版 SDK 协议串格式。

    • 格式示例apiname=com.alipay.account.auth&app_id=xxxx&app_name=mc&auth_type=AUTHACCOUNT&biz_type=openservice&method=alipay.open.auth.sdk.code.get&pid=xxxx&product_id=APP_FAST_LOGIN&scope=kuaijie&sign_type=RSA2&target_id=xxxx&sign=...
    • 官方参考App 授权请求参数
  • HarmonyOS (鸿蒙 Next) 平台: 采用极简版 OAuth 链路,必须以 https 链接开头

    • 格式示例https://authweb.alipay.com/auth?auth_type=PURE_OAUTH_SDK&app_id=xxxx&scope=kuaijie&state=xxxx
    • 官方参考鸿蒙 Next 授权参数说明

💡 平台开发提示:由于参数格式不同,建议后端根据请求头(User-Agent)或前端传参来下发不同格式的授权字符串。支付参数(orderString)则保持三端一致,无需特殊处理。

4. 使用示例

4.1 授权登录示例

import { aliLogin } from '@/uni_modules/z-alipay-kit';

function handleAlipayLogin() {
    const scheme = 'your-app-scheme'; // 对应 manifest.json 中的配置
    const authInfo = '...'; // 从后端获取的授权字符串

    aliLogin(authInfo, scheme, (res) => {
        if (res.success) {
            console.log("授权成功,AuthCode 为:", res.authCode);
            // 接下来将 res.authCode 发给后端换取用户信息
        } else {
            console.log("授权失败:", res.memo || "用户取消或系统异常");
        }
    });
}

4.2 支付示例

import { aliPay } from '@/uni_modules/z-alipay-kit';

function handleAlipayPay() {
    const scheme = 'your-app-scheme'; // 对应 manifest.json 中的配置
    const orderString = '...'; // 从后端获取的已签名订单字符串

    aliPay(orderString, scheme, (res) => {
        if (res.success) {
            console.log("支付成功!");
            // 建议此时去后端查询订单状态以确认最终结果
        } else {
            console.log("支付失败,状态码:", res.resultStatus, "提示:", res.memo);
        }
    });
}

5. 返回结果说明 (AliResult)

参数 类型 说明
success boolean 核心判断依据。仅当状态码 9000 且业务码 200 时为 true
resultStatus string SDK 状态码(9000:成功, 4000:异常, 6001:取消...)
resultCode string 业务结果码(200:业务处理成功)
authCode string 自动解析好的授权码(仅授权成功时有值)
result string 支付宝返回的原始结果数据
memo string 提示信息

6. 配置与安装

  1. URL Schemes: 在 manifest.json 中配置好各平台的跳转 Scheme。

7. 注意事项

  • 真机运行:由于涉及原生 SDK,必须使用 自定义基座 进行调试。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

访问网络

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: