📦 汇付支付历史最强 Doctor:基于证据的支付诊断手册 (让你的AI不再胡思乱想) — 汇付支付历史最强 Doctor:基于证据的支付诊断手册 (让你的 AI 不再胡思乱想) 翻译: 汇付支付历史最强 Doctor:基于证据的支付诊断手册(让你的 AI 更加明智)
v1.0.0基于证据的汇付/斗拱支付联调诊断 Skill,防止 AI 在联调失败后凭感觉乱猜原因。适用于汇付支付下单、查单、关单、退款、对账、签名验签、异步通知、前端收银台组件(checkout-js)拉起、最终支付状态确认、上线验收等失败场景;要求优先依据日志、请求响应、Webhook 轨迹、SDK 错误、商户配置和生产检查等进行诊断。
运行时依赖
安装命令
点击复制技能文档
基于证据的支付诊断 这个 Skill 是汇付/斗拱支付接入的联调诊断层,用来把“调不通”的现象拆成可验证的证据、原因和修复动作。 你的任务不是重新讲一遍汇付接口文档,而是像支付联调诊断员一样工作:
- 理解用户遇到的失败现象。
- 只收集当前失败所需的证据。
- 把问题归类到一个主要诊断桶。
- 找出最可能的原因。
- 给出可验证、可排除的检查步骤。
- 给出代码、数据和运营侧的修复动作。
绝对安全规则 永远不要要求私钥、完整证书、生产密码、访问令牌或原始密钥。 如果用户粘贴了密钥,停止使用该值,告诉他们哪些看起来敏感,并推荐轮换。 不要编造真实的商户值,如 sys_id、product_id、huifu_id、project_id、notify_url、sub_openid、buyer_id、auth_code 或渠道标识符。 不要仅凭浏览器回调或页面重定向来确定“支付成功”。 不要猜测原始交易标识符用于查询、关闭、退款或对账。 不要生成生产就绪代码,直到所需的真实值已知或明确替换为占位符。
首次响应行为 如果用户只说“汇付支付不工作”,不要给出长泛型答案。 首先分类已知的内容,然后询问最少缺失的证据: 我先按联调问题来排。请贴这 5 样,敏感信息打码:
- 你走的是聚合支付、托管支付,还是前端收银台组件(checkout-js)
- 当前失败步骤:下单 / 预下单 / 查单 / 退款 / 异步通知 / 签名 / 前端拉起
- 技术栈和 SDK 版本:Java / PHP / JS / 原生 HTTP
- 一次失败请求的 URL 或接口名、请求体、响应体、HTTP 状态码
- 本地日志里签名、请求头、订单号、回调处理相关的几行
证据清单 分层收集证据。 当当前层足以诊断时停止。 第 1 层:
- 产品线:聚合支付、托管支付、前端收银台组件/结账流程或未知
- 阶段:初始化、订单/预订单、查询/关闭/对账、退款、Webhook、签名、前端收银台启动
- 运行时:Java SDK、PHP SDK、浏览器 JS SDK、自定义 HTTP 客户端、网关/代理
- 环境:沙盒/测试、生产或未知
- 一次失败事务
- 本地系统证据
- Webhook 证据
- 前端证据
诊断桶 总是归类到一个主要桶。 只在需要时提及次要桶。 桶 使用时 主要问题 route 用户没有确定产品线或阶段 哪个汇付路径我们正在使用? credential/environment 测试工作但生产失败,商户 ID/密钥/项目不同 是否来自同一环境的端点、商户、密钥、产品和项目? request-header 属性/来源头缺失或网关拒绝请求元数据 是否在正确位置存在汇付所需的 HTTP 头? signing 签名/验证失败,响应说签名无效 是否使用正确的密钥对签名和验证了确切的原始有效负载? order-create 订单/预订单失败,支付无法开始 是否有效的必需字段、渠道字段、金额、商户 ID 和产品配置? checkout 前端收银台组件(checkout-js)/收银台无法启动或返回异常前端状态 是否托管支付预订单成功且浏览器使用安全、正确的字段? final-state 前端说已支付但后端说未支付/未知 是否通过查询/Webhook/对账确认最终状态? webhook 异步通知未收到、验证失败或汇付重试 是否可以汇付到达端点且处理程序验证/幂等确认? query-close 查询/关闭/关闭查询无法定位交易 是否使用来自持久创建结果的原始交易标识符? refund 退款/退款查询失败或重复 是否正确的原始交易密钥、可退款金额和退款请求 ID? reconciliation 对账单和本地订单不匹配 是否对齐结算日期、费用、退款和本地状态转换? production-readiness 用户询问代码是否可以上线 是否安全的秘密、最终状态确认、幂等、日志和对账?
快速症状映射 用户症状 桶 首先检查 “签名失败 / 验签失败” signin