抖音支付商家入驻 Skill
面向抖音支付商家入驻/登录、Native 支付产品签约、证书密钥配置的流程编排。
📋 使用声明
使用本 Skill 即表示同意:
- 支付入驻、签约、密钥配置和上线测试均涉及真实商家资产与生产环境,用户需自行确认资质、合规、业务真实性和测试风险;
- 抖音支付当前不支持沙箱环境,调试建议使用小金额与受控账号,禁止进行高风险或批量测试;
- 基于支付安全与风控需要,相关 CLI / 平台可能采集必要日志、设备、环境和授权状态信息;
- 禁止在对话、代码仓库、公开文档、IM、邮件等不安全渠道透露 access token、私钥、接口加密密钥等敏感信息。
⚠️ 全局规范
⛔ 用户项目文件修改铁律(最高优先级)
禁止修改用户项目代码或配置文件
❌ 禁止:修改用户项目中的任何业务代码
❌ 禁止:修改支付 SDK 配置文件、部署配置
❌ 禁止:把商户号、AppID、私钥、接口加密密钥写入源代码
✅ 正确:输出配置内容让用户自行复制
✅ 正确:告知需要修改的文件路径和具体内容
✅ 正确:提供最小化配置示例和安全提醒
核心原则:只输出配置和操作指引,不触碰用户项目代码文件。
⛔ 密钥与证书安全铁律(最高优先级)
对话中必须严格遵守:
❌ 禁止:请求、接收、复述、存储、记录或传输商家接口加签私钥
❌ 禁止:请求、接收、复述、存储、记录或传输加密密钥
❌ 禁止:在对话中展示完整证书、私钥、密钥、token
❌ 禁止:为用户生成密钥对或提供本地生成脚本
❌ 禁止:把任何密钥写入代码、README、日志或状态文件
❌ 禁止:让用户通过邮件、IM、对话框等渠道发送密钥
✅ 必须:引导用户在抖音支付商家平台【产品中心】→【开发者配置】→【密钥管理】完成证书/密钥配置
✅ 必须:优先引导用户使用商家平台「密钥证书快捷引导」
✅ 必须:提醒私钥与接口加密密钥不要发给 Agent
✅ 必须:如用户误贴敏感信息,立即提醒其视为泄露并重新生成/轮换
✅ 必须:用户未确认已在商家平台完成证书密钥配置时,阻断后续支付集成
核心原则:Skill 只做流程引导和状态判断,敏感字段不进入对话上下文。
详细规则见 references/key-configuration.md。
⛔ dypay-cli 调用铁律(最高优先级)
所有 CLI 操作必须严格按照 references/cli-commands.md 中定义的命令执行,不得自行发明命令、参数、JSON 字段或后端接口。
✅ 必须:严格按照技能文档中的调用示例和参数结构执行,一字不改
✅ 必须:命令参数、大小写、JSON 字段与文档定义完全一致
✅ 必须:CLI 返回结果无需完整呈现给用户,提取关键信息即可,但流程逻辑必须完整执行
❌ 禁止:自行推断或猜测参数名、省略文档定义的参数、添加未定义的参数
❌ 禁止:修改参数结构、缩写参数名、修改参数类型
❌ 禁止:因返回结果过长而跳过处理步骤、自行执行未定义的 CLI 命令
❌ 禁止:确认登录态时跳过 --complete 完成步骤而直接用旧 auth status 继续流程
⛔ 业务状态来源铁律
流程不得依赖本地断点状态判断业务结果。
✅ 签约状态:以 dypay-cli sign query-by-code 返回为准
✅ 登录状态:以 dypay-cli auth status 返回为准
✅ 密钥状态:只确认用户已在抖音支付商家平台完成证书密钥配置,后续校验由支付集成 Skill 处理
✅ 入口分流:以 scripts/check_credential.py --json 识别当前平台和平台侧特殊集成状态;以 dypay-cli version / auth status --json 检查 CLI 安装与商户登录态
❌ 禁止:用本地文件或对话记忆判断已入驻、已签约、已配置、已上线
❌ 禁止:把 access token、私钥、接口加密密钥、邮箱、商户简称写入本地文件
⛔ 授权完成与登录态切换铁律
✅ 必须:发起新入驻/登录前先执行 dypay-cli auth status --json,记录并告知当前登录商户号(如有)
✅ 必须:用户确认扫码完成后,必须执行 dypay-cli auth login --complete --json 换取新登录态
✅ 必须:换取成功后再次执行 dypay-cli auth status --json,并校验 merchant_id 与换取结果一致
✅ 必须:如果发起前已有旧 merchant_id,新登录态 merchant_id 必须明确展示为“已切换”或“未切换”
❌ 禁止:把 --no-wait 返回当作登录/入驻成功
❌ 禁止:用户扫码后直接用 auth status 判断新入驻结果而跳过 --complete 换取 token
❌ 禁止:在 merchant_id 仍为旧值时继续签约、密钥配置或支付集成交接
详细规则见 references/authorization.md。
🧭 执行前必须读取的文档
当本 Skill 被触发时,按需读取以下参考文档:
| 场景 | 必读文档 |
|---|---|
| 完整入驻执行流程 | references/flow.md |
| CLI 命令与禁止清单 | references/cli-commands.md |
| 授权登录 / 授权二维码流程 | references/authorization.md |
| 产品、类目、截图材料规则 | references/products.md |
| 证书密钥配置 | references/key-configuration.md |
| 支付集成接管 | references/integration-handoff.md |
| 失败恢复 | references/error-handling.md |
| 用户问答 | references/faq.md |
🧩 主流程概览
入口分流
- 执行
scripts/check_credential.py --json识别当前平台和平台侧特殊集成状态;该脚本不检查 dypay-cli 安装或商户登录态; - 若 Coze 环境已检测到抖音支付平台集成凭证:说明不会读取或展示凭证内容,询问是否直接进入支付集成,或继续商户入驻 / 签约流程;
- 若未检测到平台已集成状态:执行
dypay-cli version检查 CLI 安装状态;已安装后执行dypay-cli auth status --json检查商户登录态; - 若已安装 dypay-cli 且存在可用商户登录态:说明当前已有可用商户身份,询问是否继续查询签约状态与密钥配置,或重新发起入驻 / 登录;
- 若未安装 dypay-cli、未登录或无法检测:不得假定用户已入驻或已完成支付集成,询问用户选择:
我要入驻:开始商家入驻;我已经是商家:安装/检查 CLI 后扫码登录、签约与密钥配置;退出:结束流程。
默认入驻路径
- 默认按个人主体入驻,不询问用户主体类型;
- 个人主体:收集商户简称和联系邮箱,商户简称须先通过本地规则和
checkshortName接口校验后,再执行入驻授权发起抖音扫码入驻; - 只有当用户主动询问或明确表示要以个体工商户 / 企业 / 事业单位 / 政府机关 / 社会组织主体入驻时,才提供商家平台入口、材料清单和审核时效,禁止在对话内收集营业执照、法人证件或对公账户材料。
产品与材料
- 当前产品签约只支持 Native 支付;
- 商业产品码:
CO_PAY_NATIVE; - 经营类目:个人入驻默认「其他互联网服务」;
- 签约上传材料:网站首页截图、销售/服务页截图;
- 如果用户要求签约 H5 / APP / JSAPI / 小程序等其他支付产品,必须引导用户前往 抖音支付商家平台 使用非个人主体入驻并在【产品中心】自行开通/签约对应产品,不得在 Skill 内编造产品码或签约命令;
签约与密钥配置
- 先查询产品签约状态;
- 已签约或审核中时不重复提交;
- 未签约时引导用户上传两张截图,并组装签约参数后发起签约申请;签约提交成功后,必须告知用户本次签约结果将通过入驻时填写的联系邮箱发送,请关注邮件通知;
- 签约申请提交成功后,即引导用户完成证书密钥配置;
- 禁止在对话中收集密钥,生成密钥。
跳转支付集成
- 当 Native 产品签约申请已提交成功,并且用户确认已在抖音支付商家平台完成证书密钥配置后,调用支付集成 Skill 进行上线集成配置;
- 支付集成技能名:
douyinpay-payment-integration; - 若当前环境无法调用该 Skill,停止自动推进,提示用户启用或安装后继续。
✅ 执行时任务管理要求
开始实际入驻流程时,必须创建并维护任务列表,至少包含:
- 查询平台集成状态;
- CLI安装,确认用户入口;
- 校验商户简称与邮箱;
- 执行入驻/登录授权;
- 查询 Native 产品签约状态;
- 上传截图材料;
- 发起产品签约;
- 引导证书密钥配置;
- 跳转支付集成技能。
每个阶段完成后更新任务状态;遇到阻塞时保留任务为进行中并明确阻塞原因。
🚦 终止与暂停规则
遇到以下情况必须暂停,不得继续自动推进:
- 用户选择退出;
- 用户主动要求个体工商户/企业/事业单位/政府机关/社会组织主体入驻且尚未在商家平台完成入驻;
- 用户未完成授权扫码;
- 商户简称校验不通过且用户未提供新简称;
- 签约状态为已驳回、签约失败、未签约且未确认重试或处理方案;
- 发起签约前缺少必要截图信息;
- 用户在对话中粘贴私钥或接口加密密钥;
douyinpay-payment-integration不可用;
📤 最终输出格式
流程结束时输出结构化摘要:
{
"stage": "key_configured | signing | blocked | integration_ready",
"target_platform": "coze | generic | unknown",
"has_platform_integration": false,
"has_merchant_login": true,
"merchant_id": "<from auth status, if available>",
"onboarding_type": "personal | existing_merchant | individual_business_explicit | enterprise_explicit | public_institution_explicit | government_agency_explicit | social_organization_explicit",
"product_code": "CO_PAY_NATIVE",
"sign_status": "签约申请已提交 | 已签约 | 签约处理中 | 审核中 | 已驳回 | 签约失败 | 未知",
"app_id": "awt8ebrmwk7b3ebi",
"key_status": "merchant_platform_confirmed | not_started | unknown",
"blocker": null,
"next_action": "调用 douyinpay-payment-integration / 输出通用支付集成摘要 / 需要先提交签约申请 / 需要先完成商家平台证书密钥配置",
"user_confirmation_required": false
}
不要在最终输出中包含 access token、私钥、接口加密密钥、证书明文或完整敏感材料。
Scan to join WeChat group