更新记录
1.0.0(2026-09-07)
支持最新版抖音支付插件:安卓dy-pay-sdk-tob-1.1.0.9 鸿蒙dypay_open_sdk-1.1.3 IOS:DypaySDK_1.1.0.4
平台兼容性
uni-app(5.21)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | - | - | √ | 1.0.0 | √ | 1.0.0 | 5.0 | 1.0.0 | 13 | 1.0.0 | 5.0.0 | 1.0.0 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(5.21)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
抖音支付 OpenSDK(UTS)
面向 uni-app 的抖音 App 支付 UTS 插件,封装 Android、iOS、HarmonyOS 的能力检测、支付唤起和结果回调。
特性
- Android、iOS、HarmonyOS 三端统一调用入口
- 客户端仅透传服务端支付参数,不参与签名
- iOS 使用
appid://dypay作为支付回跳 Scheme - 支持支付成功、取消、失败、处理中等 SDK 原始结果
- iOS 调试时在 HBuilderX 控制台输出
[douyin-pay]阶段日志
使用前提
- 在抖音开放平台创建移动应用并开通抖音支付。
- 服务端完成预下单和签名,客户端不能生成
sign。 - App 必须安装抖音且版本满足 DypaySDK 要求。
- iOS 需要配置 URL Type 和
DouyinAppID,详见下文。
安装与引用
将插件导入项目的 uni_modules 后:
import {
openDypay,
isDouyinPayAvailable
} from '@/uni_modules/douyin-pay'
uni-app x 可在 .uvue 页面中使用相同的导入和调用方式,支付参数仍需全部使用 string 类型。
发布到插件市场前,请将插件 ID 改为符合 作者ID-插件英文名称 规范的唯一名称,并同步调整导入路径。
iOS 配置
在项目 manifest.json 的 app-plus.distribute.ios 中配置抖音开放平台 APPID:
{
"infoPlist": {
"DouyinAppID": "你的抖音开放平台APPID"
},
"urltypes": "你的抖音开放平台APPID"
}
插件已内置 dypay1128、dypay2329、dypay8663 到 LSApplicationQueriesSchemes,用于检测和唤起抖音、抖音极速版与抖音火山版。
iOS 在启动后注册 APPID;支付前还会做一次幂等注册兜底。回跳 Scheme 固定为:
你的抖音开放平台APPID://dypay
当前版本使用 URL Scheme 回跳。若业务需要 Universal Link,需先在域名部署有效的 apple-app-site-association 文件,再启用 SDK 的 Universal Link 注册与 NSUserActivity 回调处理。
HarmonyOS 配置
插件内置 HarmonyOS DypaySDK。使用 HarmonyOS NEXT 时,请确认项目 compatibleSdkVersion 不低于 SDK 要求的版本。
服务端返回参数
服务端需向客户端提供以下 7 个字符串字段:
{
"appid": "抖音开放平台APPID",
"partnerid": "抖音支付商户号",
"prepayid": "服务端预下单返回的交易会话ID",
"package": "Sign=DYPay",
"noncestr": "随机字符串",
"timestamp": "秒级时间戳",
"sign": "服务端签名"
}
sign、prepayid 和订单信息不得写入客户端配置、日志或插件源码。
调用示例
const payInfo = await requestPayOrder()
if (!isDouyinPayAvailable()) {
uni.showToast({ title: '抖音未安装或版本过低', icon: 'none' })
return
}
openDypay(
payInfo.appid,
payInfo.partnerid,
payInfo.prepayid,
payInfo.package,
payInfo.noncestr,
payInfo.timestamp,
payInfo.sign
).then((result) => {
switch (String(result.resultCode)) {
case '0':
// 支付成功后以服务端查单或异步通知为准
break
case '1':
// 用户取消
break
case '3':
// 支付处理中,建议服务端查单
break
default:
// 失败:result.errorMsg 为 SDK 原始提示
break
}
}).catch((error) => {
// 本地参数、UTS 调用或系统能力错误
console.error(error)
})
返回结果
type DouyinPayResult = {
resultCode: string
errorMsg: string
extraParams: string
}
| resultCode | 含义 | 建议处理 |
|---|---|---|
0 |
支付成功 | 服务端查单或等待支付通知确认订单 |
1 |
用户取消 | 保持未支付订单状态 |
2 |
支付失败 | 展示 errorMsg,保留订单供重试 |
3 |
支付处理中 | 轮询或调用服务端查单 |
100 |
抖音版本过低 | 提示升级抖音 |
联调排查
- 确认服务端返回全部 7 个字段,且为字符串。
- 确认 Android、iOS、HarmonyOS 的应用包名、签名和 APPID 已在抖音开放平台登记。
- iOS 确认 URL Type 包含 APPID,且
LSApplicationQueriesSchemes未超过系统生效上限。 - iOS 控制台中的
[douyin-pay]日志可区分 UTS 入口、注册、主线程唤端和 SDK 回调阶段。 - 支付最终状态始终以服务端查单或支付异步通知为准。
隐私与安全
- 插件不生成、不保存支付签名或订单。
- 插件不请求相机、定位、通讯录等系统权限。
- DypaySDK 可能按抖音官方规则处理设备与支付相关数据,使用前请阅读抖音开放平台及 DypaySDK 的隐私说明。
- 发布前请确认 DypaySDK 的 AAR、XCFramework、HAR 文件允许随插件二次分发。
兼容性
| 平台 | 状态 |
|---|---|
| Android | 支持 |
| iOS | 支持,需自定义基座或云打包 |
| HarmonyOS NEXT | 支持 |
许可证
本插件的开源许可证、收费策略和 DypaySDK 二次分发授权由发布者确定。

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