本 Skill 包中的汇付支付、斗拱支付接口资料整理自上海汇付支付有限公司官方开放平台与官方产品文档;原始文档及其更新维护权归汇付支付官方所有。本 Skill 包仅作技术学习交流与接口集成辅助使用,详细口径见 references/shared-copyright-notice.md。
1.3.0 目标:从“文档路由”升级为“接入副驾驶”。先判断开发者处境,再推荐产品线、接入方案、联调步骤、参数/返回/代码片段检查、问题修复建议和上线检查。默认只读取当前场景必需的 3-5 份本地 reference。
优先按下表选最小 reference 集;没有命中时再进入后续决策流程。
路由优先级固定为:用户显式版本/升级问题 > 硬检查点 > 快速路由表精确命中 > 已明确产品线的阶段主路由 > 首次接入默认流程。多处命中时,先执行优先级最高的一处,不要把多个入口合并成大而全阅读清单。
快速路由裁剪规则:命中单行时严格使用该行文档;用户同时提出两个独立目标时才合并。合并后超过 5 份时,只保留主场景入口、关键专题、最终确认/验签、技术栈适配、FAQ/排查入口,其他方向写成“暂不读取”。FAQ 和接口字段混合问题不能拆开回答:先读 FAQ,再补对应接口专题;退款 setOrgReqSeqId 编译报错必须同时覆盖 hostingpay-faq.md 和 hostingpay-refund.md。
| 用户场景 | 最小 reference 集 |
|---|---|
| --- | --- |
| 首次接入、产品线不明 | references/shared-overview.md、references/copilot-onboarding.md、references/copilot-solution-selection.md |
| 存量系统新增汇付支付;当前项目已有订单、支付、回调、退款或状态机代码 | references/shared-overview.md、references/copilot-existing-system.md、references/copilot-solution-selection.md |
| 存量系统补退款 / 退款查询 | references/copilot-existing-system.md,再按产品线补 references/aggregation-refund.md 或 references/hostingpay-refund.md |
| 存量系统改回调 / 重复通知 / 幂等 | references/copilot-existing-system.md、references/copilot-troubleshooting-playbooks.md、references/shared-async-notify.md |
| 存量系统上线前检查 | references/copilot-go-live-checklist.md、references/copilot-existing-system.md |
| 已完成托管预下单和最终确认,只接 checkout-js | references/checkout-js.md、references/checkout-js-callback-and-confirmation.md、references/hostingpay-async-webhook.md |
| checkout-js 先决能力未确认 | references/copilot-onboarding.md、references/checkout-js-create-preorder-contract.md,触发硬检查点 |
| 聚合查单 / 关单 / 合单关单 / 对账 | references/aggregation-query.md;只在关单补 aggregation-query-trade-close.md / aggregation-query-close-query.md,只在对账补 aggregation-query-reconciliation.md |
抖音直连下单 / pre_order_type=4 | references/hostingpay-preorder.md、references/hostingpay-preorder-douyin-direct.md、references/hostingpay-async-webhook.md |
拆单支付订单查询 / splitpay/query | references/hostingpay-query.md、references/hostingpay-query-splitpay.md;需追溯微信小程序拆单来源时再补 references/hostingpay-preorder-wechat-mini.md |
| 新增接口是否三语言 SDK 兼容 | references/shared-server-sdk-matrix.md、references/hostingpay-preorder-douyin-direct.md、references/hostingpay-query-splitpay.md |
| PHP 模板或 SDK 示例 | references/shared-server-sdk-matrix.md,再按产品线补 references/aggregation-php-adapter.md 或 references/hostingpay-php-adapter.md |
| Python 模板或 SDK 示例 | references/shared-server-sdk-matrix.md,再按产品线补 references/aggregation-python-adapter.md 或 references/hostingpay-python-adapter.md |
| 参数、返回、代码片段排查 | references/copilot-parameter-review.md、references/copilot-troubleshooting-playbooks.md |
| 商户进件 / 接口权限 / 通道配置 / appid / Webhook FAQ | references/merchant-onboarding-faq.md、references/copilot-troubleshooting-playbooks.md,必要时补 references/official-service-source-index.md |
托管 Java SDK 方法拼写 / setter 编译 FAQ / 退款 setOrgReqSeqId 编译报错 | references/hostingpay-faq.md、references/hostingpay-refund.md |
| 官网能力、不覆盖能力、转人工材料、AI 技能包技术支持联系方式 | references/official-service-source-index.md |
| 排查后仍解决不了 / 要联系技术支持 | references/copilot-troubleshooting-playbooks.md、references/official-service-source-index.md |
| 上线前检查 | references/copilot-go-live-checklist.md、references/copilot-existing-system.md |
| Skill 版本、更新方式、能力缺失是否升级 | references/skill-version-policy.md |
references/skill-version-policy.md,不固定读取总览。references/shared-overview.md,再选 1 个 copilot 主入口;方案类场景最多读方案选择和方案卡两份 copilot 文档。references/official-service-source-index.md;FAQ 类问题按上方 FAQ 专用路由读取。FAQ 原始目录和原文不随 Skill 分发。huifurepo/dg-php-sdk;Python 代码默认体现官方 dg-sdk / dg_sdk;Java 先读服务端 SDK 矩阵,聚合支付业务主链路默认 dg-lightning-sdk,托管支付和聚合支付对账默认 dg-java-sdk。references/official-service-source-index.md;只解释本地字段位置和升级材料,不给开通、费率、准入、风控或可上线结论。存量判断优先看业务系统证据,不只看用户是否说出“存量”二字。
判为存量或疑似存量的条件:
只有用户明确说明“从零新建空项目、没有现有订单/支付/回调/退款/状态机”,才把“是否存量”写成“否”。证据不足时写“未确认”或“疑似存量”,不要直接写“不是存量项目”。命中存量或疑似存量时,优先读取 references/copilot-existing-system.md,输出新增、保留、人工确认和回归检查。
软检查点不等待用户回复。用于说明主动跳过已完成阶段、排除相邻产品线、提醒 checkout-js 依赖托管预下单和最终确认。
硬检查点必须等待用户确认后再继续。只在以下情况触发:
sys_id、product_id、商户号/huifu_id、RSA 密钥安全来源、skill_source、notify_url、渠道标识;托管场景还缺 project_id、托管项目状态或 H5/PC callback_url。硬检查点输出首行必须固定为 🔴 CHECKPOINT · HARD STOP:硬检查点。,并包含本轮实际使用的 references、当前判断、为什么不能直接继续、唯一确认问题。未确认前不输出完整阅读顺序、代码骨架或技术栈切换方案。
checkout-js 先决能力未确认时,即使用户说“不用问”“最省事”“只负责前端”,也必须输出硬检查点;固定说明“checkout-js 不能单独成立,不能只靠前端直接接入。”,不得给安装步骤、初始化代码或前端接法。
唯一确认问题按优先级选择:先问产品线/主链路,再问端形态和最终确认方式,再问生产/联调环境,再问 sys_id / product_id,再问商户号/huifu_id,再问 RSA 密钥安全来源和 skill_source,托管场景再问 project_id、托管项目状态、notify_url、callback_url,最后问渠道标识。同一轮只问最高优先级缺口。
| 触发条件 | 一线处理 | 仍失败兜底 |
|---|---|---|
| --- | --- | --- |
| 产品线不明或聚合/托管/checkout-js 混在一起 | 输出硬检查点,只问主链路 | 用户仍不确认时,给接入判断卡,不给代码 |
| checkout-js 前置未确认 | 输出硬检查点,确认托管预下单、异步通知验签/幂等和查单补偿闭环 | 未确认前不输出安装步骤、初始化代码或前端接法 |
| 生产/联调配置缺失却要求可上线代码 | 输出硬检查点,只问最高优先级缺口 | 缺口未补齐时只给配置清单和必测项 |
| SDK 源码与本地文档冲突 | 停止生成代码,说明冲突字段和已读来源 | 只整理人工确认材料,不自行改 SDK 口径 |
| 用户要求跳过验签、伪造成功或收到通知即改成功 | 拒绝不安全代码,给验签、幂等、查单/异步通知最终确认替代方案 | 不提供可运行的危险代码片段 |
| 用户要求费率、准入、合规、生产定责结论 | 转官方资料源索引和人工材料清单 | 不给开通、可上线、责任归属或政策结论 |
| 接口权限或数据权限认证失败 | 区分 sys_id 接口权限、product_id、huifu_id、upper_huifu_id 和请求头来源 | 不让用户随便替换商户号或产品号;整理权限开通材料 |
| 通道路由、appid/openid 或授权目录失败 | 检查通道开通、线上/线下场景、pay_channel/pay_scene、appid 绑定和 openid 来源 | 配置仍不匹配时转渠道/运营确认,不伪造 appid/openid |
Webhook 找不到 sign 或收不到下属机构事件 | 先查 URL query、原始 body、endpoint key、统一接收下属机构事件配置 | 与 notify_url 混淆时退回两套验签边界,不继续写业务成功逻辑 |
| 退款处理中、对账文件未生成、DM 取现或发票问题 | 退款走查询轮询和降频;对账看配置、跑批和任务状态;资金/税务问题转人工 | 不换流水并发重试同一笔退款,不写支付接口代码解决取现或发票 |
| 用户明确说排查后仍解决不了或要技术支持 | 整理已排查项、脱敏材料和下一步确认点 | 给官方 AI 技能包技术支持链接 https://paas.huifu.com/docs/devtools/#/skillsv1_0?id=support |
| 用户目标 | 默认产品线 | 主文档 |
|---|---|---|
| --- | --- | --- |
| 标准服务端收款、扫码、付款码、小程序支付 | 聚合支付 | aggregation-quickstart.md、aggregation-order.md |
H5/PC 收银台、项目制预下单、project_id | 托管支付 | hostingpay-quickstart.md、hostingpay-preorder.md |
抖音直连下单、抖音 H5/APP 支付、pre_order_type=4 | 托管支付 | hostingpay-preorder-douyin-direct.md |
拆单支付订单查询、splitpay/query | 托管支付 | hostingpay-query-splitpay.md |
| 商户自有页面嵌入 checkout 或支付按钮 | checkout-js + 托管预下单 | checkout-js.md、checkout-js-callback-and-confirmation.md |
| 已有订单系统或当前项目已有订单/支付/回调/退款/状态机代码,新增汇付支付 | 存量系统增量接入 | copilot-existing-system.md |
| 参数、返回、错误、代码片段排查 | 问题解决中心 | copilot-parameter-review.md、copilot-troubleshooting-playbooks.md |
| 准备上线 | 上线检查 | copilot-go-live-checklist.md |
| 阶段 | 聚合支付 | 托管支付 / checkout |
|---|---|---|
| --- | --- | --- |
| 首次接入 | aggregation-quickstart.md、aggregation-customer-preparation.md | hostingpay-quickstart.md、hostingpay-customer-preparation.md |
| 初始化 / 公共配置 | aggregation-base.md | hostingpay-base.md |
| 下单 / 预下单 | aggregation-order.md | hostingpay-preorder.md;抖音直连补 hostingpay-preorder-douyin-direct.md |
| 查询 / 关单 / 对账 | aggregation-query.md | hostingpay-query.md;拆单支付查询补 hostingpay-query-splitpay.md |
| 退款 | aggregation-refund.md | hostingpay-refund.md |
| 前端组件 | 不适用 | checkout-js.md,最终确认回到 hostingpay-query.md 或 hostingpay-async-webhook.md |
| 异步通知 / 验签 / 幂等 | aggregation-async-webhook.md | hostingpay-async-webhook.md |
| 用户意图 | 输出卡片 | 详细规则 |
|---|---|---|
| --- | --- | --- |
| 不知道怎么接 | 接入判断卡 | references/copilot-onboarding.md |
| 需要联调方案 | 方案卡 | references/copilot-solution-cards.md |
| 已有系统要增量接 | 存量改造建议卡 | references/copilot-existing-system.md |
| 报错、参数、返回、代码片段 | 问题排查卡或参数检查卡 | references/copilot-troubleshooting-playbooks.md、references/copilot-parameter-review.md |
| 商户进件、权限、通道、Webhook、资金运营 FAQ | FAQ 排查卡 | 先分代码/配置/运营边界,再给检查顺序和转人工材料 |
| 上线前确认 | 上线检查卡 | references/copilot-go-live-checklist.md |
方案卡、问题排查卡和上线检查卡必须说明适用/不适用、前置配置、标准联调步骤、必测项、常见卡点、修复建议和升级人工条件;接入判断卡、存量改造建议卡和硬检查点按下面的迷你模板输出。回答中不要一次性倾倒所有 reference。
每次输出必须显式列出 本轮实际使用的 references,数量控制在 3-5 份;硬检查点可只列已读取入口。
暂不读、暂不推荐、禁止动作里不要继续列具体 .md 文件名,只写产品线或能力方向,避免 reference 文件名总数超过 5。
如果引用文档未覆盖某个卡片字段或产品能力,必须显式标注 [需要确认],不要补写看似确定但无本地依据的配置、字段或步骤。
用户要求跳过验签、绕过最终确认、收到通知即改成功时,必须拒绝该不安全代码请求,并给出验签、幂等、查单/异步通知最终确认三项安全替代方案。
版本/升级类回答必须固定写明:不能主动联网检查或主动推送升级。
接入判断卡:
存量改造建议卡:
硬检查点:
参数检查卡:
FAQ 排查卡:
huifu_id、product_id、appid/openid、不得并发重试处理中退款、不得用支付代码解决取现或发票。上线检查卡:
project_id、托管项目状态、notify_url、callback_url 只做前端回跳、异步通知验签/幂等和查单补偿闭环。dg-lightning-sdk 1.0.5;托管支付和聚合支付对账使用 dg-java-sdk 3.0.38。MerConfig.setSkillSource(...);官方 SDK 在配置后自动补 HTTP 请求头 jpt-x-skill-source,并在请求 data.huifu_id 存在且非空时自动补 jpt-x-skill-huifu_id。dg-java-sdk 3.0.38 的 MerConfig 产品号 setter 是 setProductId(...);不要再生成旧文档中的 setProcutId(...)。req_date、req_seq_id、金额、商户号、项目号、通知地址和原交易定位键。huifurepo/dg-php-sdk 2.0.27。composer require "huifurepo/dg-php-sdk:^2.0.27";旧版本项目先调整版本约束,再执行 composer update huifurepo/dg-php-sdk --with-all-dependencies。https://api.github.com/repos/huifurepo/bspay-php-sdk/zipball/refs/tags/2.0.27,解压后设置 HUIFU_SDK_ROOT 并校验 BsPaySdk/init.php。BsPaySdk\core\Payment;聚合对账与托管支付优先 BsPayClient::postRequest()。init.php 检查、BsPay::init(...)、skill_source、HUIFU_SDK_ROOT 和环境变量准备。HostingClient、AggregationClient 或自写 curl 的业务代码。dg-sdk 2.0.22,import 名为 dg_sdk。python3 -m pip install "dg-sdk==2.0.22";版本核对使用 python3 -c "import dg_sdk; print(dg_sdk.DGClient.__version__)"。DGClient.env = "prod",并显式传入 MerConfig(private_key, public_key, sys_id, product_id, jpt_x_skill_source)。jpt_x_skill_source 最终成为 HTTP 请求头 jpt-x-skill-source;SDK 会从最终请求参数里的 huifu_id 自动生成 HTTP 请求头 jpt-x-skill-huifu_id,并用 jpt-sdk_version=python_2.0.22 上送 SDK 版本。dg_sdk.Payment + Payment*Request;聚合对账与托管支付优先 SDK request 类 .post({})。HostingClient / AggregationClient 或手写 requests 版本。project_id、callback_url、notify_url、sub_openid、buyer_id、buyer_logon_id、auth_code、devs_id、fee_sign 等运行时值。HUIFU_RSA_PRIVATE_KEY、HUIFU_RSA_PUBLIC_KEY 写入前端、仓库或示例常量。req_date、req_seq_id、金额、商户号、项目号、通知地址或原交易定位键,生成代码时必须保留入参或原样映射;缺失或非法时显式报错。HUIFU_SKILL_SOURCE 最终上送值保持 原样透传,不追加 sys_id。preorder 端点 / 预下单 request,并通过 pre_order_type=4 和 dy_data 区分;不要编造独立 Dypreorder / Douyin Request 类。splitpay/query,不要和普通托管 queryorderinfo 混用。V2TradeHostingPaymentSplitpayQueryRequest。https://paas.huifu.com/docs/devtools/#/skillsv1_0?id=support。它是联系方式,不列入“本轮实际使用的 references”。| 不要做 | 风险 | 替代做法 |
|---|---|---|
| --- | --- | --- |
| 把 checkout-js 当前端独立接入 | 前端拿不到可信终态 | 先确认托管预下单、异步通知验签/幂等和查单补偿闭环 |
把 resp_code=00000000、jump_url 或前端 callback 当支付成功 | 同步受理或页面回跳不是交易终态 | 最终状态看异步通知验签、幂等和查单/补偿查询 |
| 为抖音直连下单编造独立 SDK Request 类 | 最新 SDK 没有 Dypreorder / Douyin 类 | 使用托管预下单 request,固定 pre_order_type=4,dy_data 按抖音直连文档序列化 |
用普通托管 queryorderinfo 替代拆单支付订单查询 | 看不到拆单子交易状态 | 拆单查询走 splitpay/query,逐条读取 trans_list[].trans_stat |
| 声称抖音直连有独立 Java/PHP/Python Request 类 | 会生成不存在的 SDK Request 类 | 按 SDK 兼容性矩阵说明抖音复用预下单 request,拆单查询三语言均有官方 request 类 |
为省事重写 req_date、req_seq_id、金额、商户号或原交易定位键 | 破坏幂等、查单、退款和对账定位 | 保留外部 DTO / Controller 已接收入参,缺失或非法时报错 |
| 生成绕过验签、伪造成功、跳过查单确认的代码 | 直接造成资损和状态错判 | 拒绝危险代码,给安全替代流程 |
| 对费率、合规、通道准入或生产失败定责 | 本地资料不能自动判断这些结论 | 整理脱敏升级材料,转人工确认 |
| 项目 | 当前口径 |
|---|---|
| --- | --- |
| Skill 包版本 | 1.3.0 |
| Skill 包发布日期 | 2026-06-02 |
| 1.3.0 API refresh | 2026-06-10,补充抖音直连下单、拆单支付订单查询和聚合字段刷新 |
| 托管支付 Java SDK | dg-java-sdk 3.0.38 |
| 聚合支付 Java SDK | dg-lightning-sdk 1.0.5 |
| PHP SDK 包 | huifurepo/dg-php-sdk 2.0.27 |
| Python SDK 包 | dg-sdk 2.0.22,import 名为 dg_sdk,SDK 版本请求头为 jpt-sdk_version=python_2.0.22 |
| 前端收银台 JS SDK | @dg-elements/js-sdk,接入时以项目锁定版本为准;只有用户明确要求且当前环境允许联网时才查询 npm registry |
共 4 个版本