更新记录
1.0.0(2026-05-14)
1.0.0
- 首次发布
hl-douyin-pay-uts - 新增 Android / iOS / HarmonyOS 三端抖音支付拉起能力
平台兼容性
uni-app(5.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | √ | 1.0.0 | √ | 1.0.0 | 5.0 | 1.0.0 | 13 | 1.0.0 | 13 | 1.0.0 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(5.0)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
hl-douyin-pay-uts
抖音支付 UTS 插件,封装 Android、iOS、HarmonyOS 三端的能力检测、SDK 初始化、支付拉起和结果回调。
简介
这个插件的设计目标很简单:
- 前端只负责把服务端返回的支付参数传给原生 SDK
- 插件负责三端原生 SDK 的桥接、能力检测和结果回调
- 客户端不参与签名计算,不在插件里写死商户参数
当前仓库内:
- Android 支付联调已完成
- HarmonyOS 支付联调已完成
- iOS 已完成 SDK 集成、回调接入和静态编译校验,宿主仍需按文档完成真机联调
功能概览
initDypay(options)初始化 / 注册抖音支付canOpenDypay()检查当前设备是否具备抖音支付唤端能力openDypay(request, callback)拉起抖音支付onLogCallback(callback)监听插件原生日志,便于联调排查
安装与引用
import * as Dypay from '@/uni_modules/hl-douyin-pay-uts'
接入前准备
在前端调用插件之前,需要先准备好以下内容:
- 抖音开放平台申请得到的
appid - 商户号
partnerid - 服务端预下单返回的
prepayid - 服务端按抖音支付签名规则生成的
sign
客户端只透传这些字段,不自行生成签名。
服务端返回结构建议
业务侧常见的服务端响应结构如下,前端最终只需要取出 data.result.jsConfig.pay_info:
{
"status": 200,
"msg": "success",
"data": {
"status": "ALLADA_PAY",
"result": {
"jsConfig": {
"pay_info": {
"package": "Sign=DYPay",
"appid": "aw3tifm8xuoci5r5",
"sign": "服务端签名",
"partnerid": "6020260318158391",
"prepayid": "dyxxxxxxxx",
"noncestr": "xxxxxxxxxxxxxxxx",
"timestamp": "1778662427"
}
}
}
}
}
HarmonyOS SDK 版本要求:
dypay_open_sdk-1.1.1.har依赖的compatibleSdkVersion不低于13- 如果项目当前还是
12,需要升级 Harmony 项目级build-profile.json5
接口定义
type DypayRegisterOptions = {
appId: string
callbackScheme?: string | null
universalLink?: string | null
}
type DypayPayInfo = {
appid: string
partnerid: string
prepayid: string
package: string
noncestr: string
timestamp: string
sign: string
preEntrustWebId?: string | null
payscoreApplyToken?: string | null
evokeUrl?: string | null
paySource?: string | null
}
type DypayPayRequest = {
payInfo: DypayPayInfo
showLoading?: boolean
}
type DypayResult = {
code: number
message: string
data?: UTSJSONObject | null
}
字段说明
DypayRegisterOptions
appId抖音开放平台申请得到的移动应用appidcallbackSchemeiOS 回调 scheme,例如dy12345678universalLinkiOS Universal Link,例如https://your.universallink.com/app/
DypayPayInfo
appid应用 IDpartnerid商户号prepayid预支付交易会话 IDpackage支付固定值一般为Sign=DYPaynoncestr随机字符串timestamp秒级时间戳sign服务端签名结果preEntrustWebId可选,先用后付等场景扩展字段payscoreApplyToken可选,签约场景扩展字段evokeUrl可选,扩展拉起字段paySource可选,扩展来源字段
标准调用流程
1. 初始化 SDK
const initResult = Dypay.initDypay({
appId: 'aw3tifm8xuoci5r5',
callbackScheme: null,
universalLink: null
})
console.log('initResult', initResult)
2. 可选:检测抖音支付能力
const canOpen = Dypay.canOpenDypay()
console.log('canOpenDypay', canOpen)
3. 发起支付
const response = await requestPayOrder()
const payInfo = response.data.result.jsConfig.pay_info
Dypay.openDypay({
payInfo: {
appid: payInfo.appid,
partnerid: payInfo.partnerid,
prepayid: payInfo.prepayid,
package: payInfo.package,
noncestr: payInfo.noncestr,
timestamp: payInfo.timestamp,
sign: payInfo.sign
},
showLoading: true
}, (result) => {
console.log('dypay result', result)
})
4. 日志监听
联调阶段建议打开日志回调:
Dypay.onLogCallback((level, tag, message) => {
console.log(`[${level}][${tag}] ${message}`)
})
返回结果说明
openDypay 的回调结构:
{
code: 0,
message: '支付成功',
data: {
resultCode: '0'
}
}
其中:
code插件层统一返回的结果码message插件层统一返回的文案data原生 SDK 的原始结果数据,便于联调排查
结果码
0支付成功1用户取消或 SDK 返回取消态文案2支付失败3支付结果处理中,建议服务端查单100未安装抖音或抖音版本过低103重复支付被拦截-1插件本地参数校验失败或初始化失败
注意:
- Android 端 SDK 有些场景会返回
code=1,但message是更具体的业务文案,例如“重复订单,取消唤起” - 这类情况插件会优先保留 SDK 原始
message
插件行为说明
initDypay
- Android
记录当前
appId,安装日志桥,不主动发起支付 - iOS
完成
appId + callbackScheme + universalLink注册 - HarmonyOS
当前主要用于统一调用入口,支付时仍以传入
payInfo为准
openDypay
插件会统一校验以下 7 个必填字段:
appidpartneridprepayidpackagenoncestrtimestampsign
缺少任意字段时会直接回调错误,不会继续调用原生 SDK。
联调建议
建议流程
- 服务端生成新订单
- 前端拿到完整支付响应
- 提取
pay_info - 调用
initDypay - 可选执行
canOpenDypay - 调用
openDypay - 以服务端查单 / 支付通知确认最终状态

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 276
赞赏 2
下载 11905187
赞赏 1914
赞赏
京公网安备:11010802035340号