更新记录
1.0.0(2026-04-11) 下载此版本
初次提交
平台兼容性
uni-app x(4.65)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 5.0 | 12 | √ | - |
laoqianjunzi-alipay
laoqianjunzi-alipay 是一个面向 uni-app x / uni-app 的支付宝授权登录插件,统一暴露授权接口,并在 app-android、app-ios、app-harmony、mp-weixin、web 五个平台目录分别提供实现或编译兜底。
这次接口已经进一步抹平到五端一致:调用侧不需要再区分平台目录,也不需要为不支持的平台单独写分支,只要统一读取能力信息并调用同一个授权函数即可。
功能概览
- App Android:支持支付宝授权、电子发票、代扣三种业务类型
- App iOS:支持支付宝授权、电子发票、代扣三种业务类型
- App Harmony:支持第三方授权,其他业务类型返回明确错误
- Web:提供占位实现,保证项目跨端编译
- 微信小程序:提供占位实现,保证项目跨端编译
安装后目录约定
插件主入口位于 uni_modules/laoqianjunzi-alipay,对外类型声明位于 uni_modules/laoqianjunzi-alipay/utssdk/interface.uts,不同平台的实现分别位于:
uni_modules/laoqianjunzi-alipay/utssdk/app-android/index.utsuni_modules/laoqianjunzi-alipay/utssdk/app-ios/index.utsuni_modules/laoqianjunzi-alipay/utssdk/app-harmony/index.utsuni_modules/laoqianjunzi-alipay/utssdk/mp-weixin/index.utsuni_modules/laoqianjunzi-alipay/utssdk/web/index.uts
接口说明
获取客户端实例
import { getLaoqianjunziAlipayClient } from '@/uni_modules/laoqianjunzi-alipay'
const alipayClient = getLaoqianjunziAlipayClient()
推荐使用的统一函数
import {
authorizeWithLaoqianjunziAlipay,
getLaoqianjunziAlipayCapability
} from '@/uni_modules/laoqianjunzi-alipay'
const capability = getLaoqianjunziAlipayCapability()
能力对象结构:
type LaoqianjunziAlipayCapability = {
platform: string
canAuthorize: boolean
supportsInvoice: boolean
supportsDeduct: boolean
note: string | null
}
推荐在调用前统一判断:
canAuthorize = true时直接发起授权canAuthorize = false时按note提示用户,或切换到服务端 / H5 授权方案
authorize(options) 参数
type LaoqianjunziAlipayAuthorizeOptions = {
scheme: string
payload: string
businessKind: 0 | 1 | 2 | null
success: ((result: { authCode: string; state: string | null }) => void) | null
fail: ((error: IUniError) => void) | null
complete: ((result: any) => void) | null
}
字段说明:
scheme:支付宝回跳到当前应用时使用的 URL Schemepayload:传给支付宝 SDK 的业务字符串,授权场景通常为publicAppAuthorize.htm链接businessKind:0电子发票、1第三方授权、2代扣;不关心时可传1或nullsuccess:获取到authCode时回调fail:授权失败回调,统一返回IUniErrorcomplete:流程结束时回调,成功与失败都会进入
返回结果
成功结果:
type LaoqianjunziAlipayAuthorizeResult = {
authCode: string
state: string | null
}
失败结果常见错误码:
| 错误码 | 含义 |
|---|---|
| 101 | 未检测到支付宝客户端 |
| 102 | 支付宝授权返回结果无效 |
| 103 | 业务类型不合法 |
| 104 | 授权地址格式不正确 |
| 105 | 授权请求触发过于频繁 |
| 106 | 无法跳转到支付宝授权页 |
| 107 | 授权参数中缺少 app_id |
| 108 | 应用回跳配置不完整 |
| 999 | 授权过程发生未知错误 |
| 1000 | 当前平台只提供占位实现或该业务未开放 |
使用示例
import {
authorizeWithLaoqianjunziAlipay,
getLaoqianjunziAlipayCapability,
type LaoqianjunziAlipayAuthorizeOptions
} from '@/uni_modules/laoqianjunzi-alipay'
const capability = getLaoqianjunziAlipayCapability()
const request: LaoqianjunziAlipayAuthorizeOptions = {
scheme: 'ali_your_app_scheme',
payload: 'https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=你的应用ID&scope=auth_user&state=order_1001',
businessKind: 1,
success: (result) => {
console.log('支付宝授权成功', result.authCode, result.state)
},
fail: (error) => {
console.error('支付宝授权失败', error.errCode, error.errMsg)
},
complete: null
}
if (capability.canAuthorize) {
authorizeWithLaoqianjunziAlipay(request)
} else {
console.warn('当前平台不支持直接授权', capability.note)
}
如果你更偏好对象风格,仍然可以继续使用 getLaoqianjunziAlipayClient().authorize(...),它与 authorizeWithLaoqianjunziAlipay(...) 的行为保持一致。
平台配置
Android
- 确认应用已集成插件并使用自定义基座或自定义云打包结果运行
- 打开
uni_modules/laoqianjunzi-alipay/utssdk/app-android/AndroidManifest.xml - 将
<data android:scheme="ali_your_app_scheme" />替换成你的实际 scheme - 在支付宝开放平台中配置同一套应用包名、签名与 scheme
iOS
- 打开
uni_modules/laoqianjunzi-alipay/utssdk/app-ios/Info.plist - 将
ali_your_app_scheme替换为你的实际回跳 scheme - 保证开放平台中的配置与 Xcode 打包配置一致
Harmony
- 打开项目的
harmony-configs/entry/src/main/module.json5 - 在
querySchemes中加入apmqpdispatch - 确认工程具备网络权限
- Harmony 目前只开放第三方授权能力,其他业务类型会直接返回错误码
1000
Web / 微信小程序
这两个平台仅提供编译占位实现,不会真正拉起支付宝客户端。调用侧无需额外做平台分支,只需要通过 getLaoqianjunziAlipayCapability() 判断能力。若业务需要在这两个端完成登录,建议改为:
- 由后端生成授权地址后跳转到中间页
- 或者直接在 H5 页面中走支付宝网页授权
推荐授权流程
- 前端调用
authorize获取authCode - 将
authCode发送到你的服务端 - 服务端调用支付宝开放平台换取令牌和用户信息
- 服务端返回你的业务登录态给前端
注意事项
- App 端建议使用唯一 scheme,通常可采用
ali_前缀加业务标识 payload需要是支付宝可识别的业务串,授权场景优先使用官方授权地址- 若出现
101,先检查设备是否安装支付宝客户端 - 若出现
108,重点核对 scheme、包名、Bundle ID、开放平台回跳配置是否一致 - Web 与微信小程序不会执行原生授权,仅用于跨端编译兜底

收藏人数:
https://gitee.com/laoqianjunzi/laoqianjunzi-alipay
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 1129
赞赏 2
下载 11556465
赞赏 1904
赞赏
京公网安备:11010802035340号