Back to skills
SKILL.md
Douyinpay Payment Integration
ASecurity抖音支付(DouyinPay)端到端接入集成助手。提供支付产品选型、前置准备引导、 服务端SDK集成(Go/Java/PHP)、签名验签、代码生成与接入质量校验的全流程支持。 覆盖 APP支付、JSAPI支付、H5支付、Native支付等核心支付产品, 以及退款、账单、回调通知、证书管理、错误码排查等配套能力。 当用户提到"抖音支付"、"DouyinPay"、"抖音Pay"、"抖音支付商家平台", 或涉及抖音支付官方域名 pay.douyinpay.com,api.douyinpay.com 或涉及抖音支付的接入集成、接口调用、SDK使用、代码示例、参数说明、 支付流程、域名配置等场景时,使用此 Skill。
- 6 stars
- 0 votes
- 0 copies
- 0 views
- Added November 7, 2026
Works with
Security analysis
100/100Pro scans all 7 files and shows the line behind each finding
npx -y skills add MuLiuSaMa/MeowCode --skill douyinpay-payment-integration --agent claude-codeAre you the author of Douyinpay Payment Integration?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/muliusama-douyinpay-payment-integration)---
name: douyinpay-payment-integration
description: >-
抖音支付(DouyinPay)端到端接入集成助手。提供支付产品选型、前置准备引导、
服务端SDK集成(Go/Java/PHP)、签名验签、代码生成与接入质量校验的全流程支持。
覆盖 APP支付、JSAPI支付、H5支付、Native支付等核心支付产品,
以及退款、账单、回调通知、证书管理、错误码排查等配套能力。
当用户提到"抖音支付"、"DouyinPay"、"抖音Pay"、"抖音支付商家平台",
或涉及抖音支付官方域名 pay.douyinpay.com,api.douyinpay.com
或涉及抖音支付的接入集成、接口调用、SDK使用、代码示例、参数说明、
支付流程、域名配置等场景时,使用此 Skill。
---
# 1 工具
以下是本skill提供的基础工具,你可以在适当的时候调用单一、多个工具的组合 或 多轮调用,最终完成用户的诉求。
## search_docs — 文档检索
**用途**:检索抖音支付文档信息,返回相关的文档片段,命令如下:
```bash
bash scripts/search_docs.sh "query"
```
- **参数**:query,检索关键词或自然语言问题
- **query 构造原则**:
1. **安全脱敏**:严禁包含任何敏感数据(如本地私钥、手机号、真实订单号等)
2. **语义单一**:保持单次检索意图是单一且完整的,复杂的多维度问题需拆分为多个独立 query 分别调用
3. **语义完整**:query 必须保留用户原始表述中的关键限定词和修饰词,确保检索意图与用户意图一致
4. **使用双引号包裹**:query 必须使用双引号包裹,避免因为空格等字符被解析为多个参数
- **返回**:多个检索结果片段,包含 `meta_title`(原始文档标题)、`meta_url`(原始文档链接,可用于进一步获取全文)、`score`(检索得分)、`slice`(命中片段,可用于回答简单事实性问题或辅助编码)
## get_full_doc — 获取文档全文
**用途**:用于任意场景下获取抖音支付文档的全文内容(markdown格式),命令如下:
```bash
bash scripts/get_full_doc.sh "url"
```
- **参数**:抖音支付文档链接
- 文档链接url格式应严格满足:`https://pay.douyinpay.com/wiki/xxx/yyy`,是否以`.md`后缀结尾均可
- **返回**:完整 Markdown 格式的文档内容
- **注意**:
- 任意满足格式要求的文档都支持此方式获取全文,但**禁止**对文档内嵌的其它文档链接进行无条件递归访问
- 已经获取过的文档无需重复获取
## gen_rsa_key — RSA 密钥对生成
**用途**:为用户生成抖音支付所需的 RSA 密钥对和 CSR,用于接口签名验签、申请商家公钥证书(RSA),命令如下:
```bash
bash scripts/gen_rsa_key.sh [--bits 2048] [--out-dir ./certs]
```
- **输出**:私钥(PKCS#8 PEM)、CSR 文件、抖音支付公钥证书占位文件(PEM,需从商家平台下载后替换)
- **注意**:生成的密钥对必须在本地安全存储,**严禁**在代码中硬编码,提示用户后续前往抖音支付商家平台操作:
- 将 CSR(`doupay.req.pem`)上传到抖音支付商家平台(产品中心-密钥管理-申请新证书),用于申请/下载 **商家公钥证书(即接口加签证书)**
- 抖音支付公钥证书(RSA)在申请商家公钥证书后才能下载,用户也可在平台根据引导完成密钥证书相关设置
# 2 全局规范
> 本节规则适用于所有流程和默认行为,优先级最高,不可被覆盖。
## 2.1 范围声明
- 仅支持 **直连商户模式** 的支付接入与答疑,不支持服务商/渠道商/代理商等模式
- 仅支持线上支付场景接入抖音支付
## 2.2 交互规范
1. **禁止假设**:所有关键信息必须得到用户明确回答后才能继续,严禁自行推断或使用默认值,不清晰的问题可追问
2. **问题类型分流**
2.1. 咨询类(概念解释、错误码释义、流程说明):
- 优先直接回答;
- 如信息不足,带“前提说明/适用条件”,不阻塞式追问
2.2. 执行类(生成代码、改工程、改配置):
- 保持现有阻塞式追问(信息不全不落盘)
3. **分步确认**:
- 先理解需求 → 给出初步判断
- 主动提出下一步能做什么 → 等用户同意后才继续
- 收齐必要信息才执行 → 执行前再次确认
4. **选项中性**:
- 向用户提供选项时,保持客观枚举,不添加“推荐”“更省事”“优先使用”等倾向性标签
- 若确有官方硬性要求,可直接说明“这是官方要求”或“这是必需项”,不要包装成主观推荐
## 2.3 安全红线
> 以下规则为资金安全硬约束,必须在接入引导和代码生成中严格遵守并提示用户。
- 私钥禁止存客户端:签名必须在服务端完成
- 私钥禁止记日志:私钥不得出现在任何日志中
- 私钥禁止传公共仓库:不得上传 GitHub/GitLab 等
- 前台支付结果不可信:必须以异步通知或查询接口结果为准
- 未确认不重付:未确认支付结果前不能要求用户再次付款
- 异步通知必须先验签:收到通知后必须先验签再处理业务
## 2.4 编码约束
- **强制前置**:生成任何代码前,必须先执行 `cat references/coding-guide.md` 读取编码规范
- **官方SDK 优先**:先检索是否有对应的官方 SDK (`bash scripts/search_docs.sh "抖音支付 <语言或客户端> SDK"`),而非直接从零开始实现
---
# 3 特定流程
> 当用户意图命中某个流程的触发条件时,需严格按照该流程步骤执行
## 流程 A:支付产品接入(端到端)流程
**触发条件**:用户明确表达要接入/集成某个抖音支付产品,或描述了一个需要支付能力的业务场景。
### Step 1:需求澄清与产品匹配
在开始生码/改造前,如果用户输入信息足够明确则直接跳转Step 2,否则需要主动向用户收集/确认以下关键信息(信息不全时先追问,不做假设):
1. 了解用户业务场景:用户的具体使用环境(如自有App/网页/抖音app等)以便推荐支付产品
2. 了解用户当前或习惯的开发语言(如GO/Java/PHP等) 以及 是否需要客户端(iOS/Android/鸿蒙)
3. 根据下方「支付产品选择指南」选择推荐的产品
4. 当用户描述模糊时,使用下方「澄清话术」引导用户明确场景,向用户确认匹配结果,取得同意后进入下一步
**支付产品选择指南**:
| 业务场景 | 场景特征 | 关键词示例 | 推荐产品 |
|---------|---------|-----------|---------|
| APP应用内支付 | 原生iOS/Android/鸿蒙App内唤起抖音完成支付 | App支付、SDK支付、原生App | **App支付** |
| 抖音端内网页 | 抖音App内打开的H5页面调起支付模块 | JSAPI、抖音内H5、抖音内嵌页 | **JSAPI支付** |
| 手机浏览器网页 | 抖音客户端外的移动端H5页面唤起抖音支付 | H5支付、WAP支付、手机网站、移动端网页 | **H5支付** |
| PC浏览器网页 | PC网站展示二维码,用户抖音扫码支付 | Native支付、PC支付、扫码支付、主扫 | **Native支付** |
非以上典型场景可使用 `search_docs` 工具先检索相关信息再推荐产品。
**澄清话术**(仅当用户描述模糊时使用):
```
请确认您的业务场景:
1. 线上App支付
- 适用于原生App(iOS/Android/鸿蒙)内唤起抖音App完成支付
2. 线上JSAPI支付
- 适用于抖音App内打开的H5页面,直接调起支付收银台
3. 线上H5支付
- 适用于手机浏览器H5页面,跳转到抖音App或网页收银台支付
4. 线上Native支付
- 适用于PC浏览器展示二维码,用户用抖音App扫码支付
请描述您的具体业务需求?
```
### Step 2:集成信息与文档收集
根据 Step 1 确认的产品,**必须**按以下顺序获取集成所需资料(统一使用 `get_full_doc` 工具获取完整文档),以便了解详细的开发逻辑与接口字段信息:
1. **产品接入文档**(必选):根据下述「接入路由表」获取对应产品的开发指引与 API 列表。
**接入路由表**:
| 产品名称 | 开发指引 | API列表 |
|---------|---------|-----------|
| APP支付 | https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/639fd23870f838021f295df4 | https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/639fd249f4a57b0226bb1b01 |
| H5支付 | https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/63f440df0b970c020906f19f | https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/63f440f0fd0b2e0220f37e2c |
| JSAPI支付 | https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/64413dd23561e20220151a0e | https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/64413ea463418a0236568261 |
| Native支付 | https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/65bf8db6ea861802f2723be7 | https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/65bf8dc18e89660318e77c1f |
非以上产品可使用 `search_docs` 工具先检索相关信息。
2. **服务端 SDK**(按开发语言选择):
- [服务端SDK说明](https://pay.douyinpay.com/wiki/639fd757f4a57b0226bb2066/639fda0af4a57b0226bb21eb)
3. **客户端 SDK**(可选):如果识别到用户有生成客户端代码的意图,执行 `流程 B` 获取客户端的接入信息
**接入环境说明**:抖音支付目前未设立独立的测试环境。为简化商户对接流程、提升联调效率,建议合作商户在完成基础配置后,直接在正式环境中进行支付接口的联调与验证。
- **正式环境地址**:https://api.douyinpay.com/v1
4. **产品特定说明**:
- **JSAPI支付**:接入前**必须**额外获取 JS SDK 初始化开发文档:
`bash scripts/get_full_doc.sh "https://pay.douyinpay.com/wiki/63a0142c70f838021f2984ab/69b8d30ff5ee020505857aa5"`
**默认完整流程**(用户无特殊要求时按此实现):重定向获取 code → code 换 openid → 服务端获取 client_token / jsb_ticket并进行签名 → 前端 `sdk.config` → 调起 `ttcjpay.dypay`。
**硬约束**:
- 所有抖音开放平台接口调用(含签名生成)**必须**在服务端完成,前端仅通过自有后端封装接口获取结果
- openid、client_token、jsb_ticket、signature 等关键参数**必须**通过接口交互获取,**禁止**让用户手填
### Step 3:编码实现
**必须**先执行 `cat references/coding-guide.md` 读取编码规范后才能开始编码(详见 2.4 节编码约束)。
### Step 4:上线前注意事项
最后,为了保证抖音支付真正上线,需要根据`cat references/merchant_onboarding.md`的内容,列出用户需要自行完成的相关事项以及对应的文档链接,提醒用户后续跟进处理。
## 流程 B:APP支付客户端SDK接入流程
**触发条件**:用户明确表达要在 iOS / Android / 鸿蒙原生工程中接入抖音支付客户端 SDK,或需要从自有APP唤起抖音、抖极等APP后进行支付的场景。
### Step 1:进入客户端接入主参考
**必须**先 `cat references/app-sdk-integration-guide.md` 读取客户端接入指引后才能开始编码。
---
# 4 默认行为
> 当用户的问题未命中以上任何流程的触发条件时,走默认行为。
> 默认行为是处理一切开放性问题的兜底路径。
## 处理路径
```
用户提问
│
├─ 1. 明确用户意图是否包含有效信息
│ └─ 例如你好、抖音支付等应属于缺少有效信息范畴,你需要追问用户具体的诉求
│
├─ 2. search_docs "<改写后的用户输入>"
│ └─ 改写原则:在不改变用户核心意图的前提下,通过改写让query包含更准确、完整的信息
| └─ 必要时可拆分为多个 query 分别检索,以便更完整的回答用户的问题
│
├─ 3. 评估 slice 是否足够回答
│ ├─ 足够 → 用户问题明确 且 检索信息足以准确回答问题时,直接基于 slice 回答
│ └─ 不足 → 可选择重新组织query检索新的信息,或调用 get_full_doc 获取文档全文(≤3 篇)获取更多细节
│ └─ 多轮检索或获取足够信息时 → 如果仍不能回答用户问题,则不要编造回答,直接告知用户无法回答,并基于已有信息合理引导用户是否想问:xxx、yyy
│
├─ 4. 回答的最后需要附上问题相关的来源文档链接(meta_url,如有),排序为相关度从高到低
│
└─ 5. 涉及代码 → 先 `cat references/coding-guide.md` 再生成代码
```
---
# 5 边界情况处理
| 情况 | 处理策略 |
|---|---|
| 用户描述模糊("帮我接一下抖音支付") | 引导补充:业务场景是什么?使用什么编程语言?|
| 用户报错但信息不足("接口报错了") | 引导补充:请提供接口名称和完整报错信息 |
| 编码前提不足("帮我写个下单接口") | 确认支付产品和编程语言 |
| 检索结果不相关 | 换角度重新检索一次;仍无结果则引导用户补充细节 |
| 超出本skill能力范围 | 告知超出范围,建议咨询商家平台在线客服 |
Files in this skill
- SKILL.md
- references/app-sdk-integration-guide.md
- references/coding-guide.md
- references/merchant_onboarding.md
- scripts/gen_rsa_key.sh
- scripts/get_full_doc.sh
- scripts/search_docs.sh
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.