支付集成skill

👤 QI.🎰 📦 v1.0.0 ⭐ 4.5 ⬇️ 156 下载
💻 开发编程 免费

📖 技能介绍


name: douyinpay-payment-integration description: >- 抖音支付(DouyinPay)端到端接入集成助手。提供支付产品选型、前置准备引导、 服务端SDK集成(Go/Java/PHP/Node.js)、签名验签、代码生成与接入质量校验的全流程支持。 覆盖 APP支付、JSAPI支付、H5支付、Native支付、分账等核心产品, 以及退款、账单、回调通知、证书管理、错误码排查等配套能力。 当用户提到"抖音支付"、"DouyinPay"、"抖音Pay"、"抖音支付商家平台", 或涉及抖音支付官方域名 pay.douyinpay.com,api.douyinpay.com 或涉及抖音支付的接入集成、接口调用、SDK使用、代码示例、参数说明、 支付流程、域名配置等场景时,使用此 Skill。


1 工具

以下是本skill提供的基础工具,你可以在适当的时候调用单一、多个工具的组合 或 多轮调用,最终完成用户的诉求。

search_docs — 文档检索

用途:检索抖音支付文档信息,返回相关的文档片段,命令如下:

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 scripts/get_full_doc.sh "url"
  • 参数:抖音支付文档链接
  • 文档链接url格式应严格满足:https://pay.douyinpay.com/wiki/xxx/yyy,是否以.md后缀结尾均可
  • 返回:完整 Markdown 格式的文档内容
  • 注意
  • 任意满足格式要求的文档都支持此方式获取全文,但禁止对文档内嵌的其它文档链接进行无条件递归访问
  • 已经获取过的文档无需重复获取

gen_rsa_key — RSA 密钥对生成

用途:为用户生成抖音支付所需的 RSA 密钥对和 CSR,用于接口签名验签、申请商家公钥证书(RSA),命令如下:

bash scripts/gen_rsa_key.sh [--bits 2048] [--out-dir ./certs]
  • 输出:私钥(PKCS#8 PEM)、CSR 文件、抖音支付公钥证书占位文件(PEM,需从商家平台下载后替换)
  • 注意:生成的密钥对必须在本地安全存储,严禁在代码中硬编码,提示用户后续前往抖音支付商家平台操作:
  • 将 CSR(doupay.req.pem)上传到抖音支付商家平台(产品中心-密钥管理-申请新证书),用于申请/下载 商家公钥证书(即接口加签证书)
  • 抖音支付公钥证书(RSA)在申请商家公钥证书后才能下载,用户也可在平台根据引导完成密钥证书相关设置

2 全局规范

本节规则适用于所有流程和默认行为,优先级最高,不可被覆盖。

2.1 范围声明

访问小葱技能站7w4.net,解锁更多实用的AI技能插件。

  • 仅支持 直连商户模式 的支付接入与答疑,不支持服务商/渠道商/代理商等模式
  • 仅支持线上支付场景接入抖音支付

2.2 交互规范

  1. 禁止假设:所有关键信息必须得到用户明确回答后才能继续,严禁自行推断或使用默认值,不清晰的问题可追问
  2. 问题类型分流 2.1. 咨询类(概念解释、错误码释义、流程说明):
    • 优先直接回答;
    • 如信息不足,带“前提说明/适用条件”,不阻塞式追问 2.2. 执行类(生成代码、改工程、改配置):
    • 保持现有阻塞式追问(信息不全不落盘)
  3. 分步确认
  4. 先理解需求 → 给出初步判断
  5. 主动提出下一步能做什么 → 等用户同意后才继续
  6. 收齐必要信息才执行 → 执行前再次确认
  7. 选项中性
  8. 向用户提供选项时,保持客观枚举,不添加“推荐”“更省事”“优先使用”等倾向性标签
  9. 若确有官方硬性要求,可直接说明“这是官方要求”或“这是必需项”,不要包装成主观推荐

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/Node.js 等)以及是否需要客户端(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扫码支付

5. 商家分账
    - 适用于需要进行资金分账以及账期管理的场景,订单支付成功后,资金被冻结,后续进行资金分账

请描述您的具体业务需求?

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
商家分账 https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/69492c421fb1180636728e5b https://pay.douyinpay.com/wiki/63984677e9a722021c2c882e/694931331fb118063672b6d0

非以上产品可使用 search_docs 工具先检索相关信息。

  1. 服务端 SDK(按开发语言选择):
  2. 服务端SDK说明

  3. 客户端 SDK(可选):如果识别到用户有生成客户端代码的意图,执行 流程 B 获取客户端的接入信息

接入环境说明:抖音支付目前未设立独立的测试环境。为简化商户对接流程、提升联调效率,建议合作商户在完成基础配置后,直接在正式环境中进行支付接口的联调与验证。 - 正式环境地址:https://api.douyinpay.com/v1

  1. 产品特定说明

  2. 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能力范围 告知超出范围,建议咨询商家平台在线客服

🤖 AI 评测

这个Skill功能覆盖面广,包含支付产品选型、文档查询、代码生成等能力,流程设计和安全提示都比较完善。但实际使用时需要频繁查询外部文档,响应速度可能受影响;客户端接入流程需要确认较多信息,略显繁琐;缺少可直接运行的代码示例。总体质量中等偏上,适合有耐心、愿意配合确认信息的用户使用。

📊 多维度评分

适应性4.6
规范性4.4
有效性4.5
可靠性4.3
可信度5

📁 包含文件 (7 个)

📄 SKILL.md 13.9 KB
📄 references/app-sdk-integration-guide.md 22.4 KB
📄 references/coding-guide.md 12 KB
📄 references/merchant_onboarding.md 1.4 KB
📄 scripts/gen_rsa_key.sh 1.8 KB
📄 scripts/get_full_doc.sh 866 B
📄 scripts/search_docs.sh 688 B