huifu-hosting-payment
by codecodeing
Integrates Huifu hosting payment SDK for Java backend projects, covering pre-order creation, order status query, and refund operations. Triggers on keywords: pre-order, payment, order query, refund, hosting payment, or /hfpay endpoints.
安装
claude skill add --url github.com/openclaw/skills/tree/main/skills/codecodeing/dougong必需环境变量
HUIFU_PRODUCT_IDHUIFU_SYS_IDHUIFU_RSA_PRIVATE_KEYHUIFU_RSA_PUBLIC_KEYHUIFU_NOTIFY_URLHUIFU_REFUND_NOTIFY_URLHUIFU_PROJECT_IDHUIFU_PROJECT_TITLEHUIFU_CALLBACK_URL必需命令行工具
javamvn文档
汇付托管支付接口
集成汇付 SDK 实现托管支付的完整链路:预下单 → 订单查询 → 退款。
引导词
当开发者提到以下关键词时,本技能被触发:
- 预下单、支付预下单、托管支付、创建支付订单
- 订单查询、支付查询、查询订单、支付状态
- 退款、支付退款、订单退款、refund
- /hfpay/preOrder、/hfpay/queryorderinfo、/hfpay/htRefund
前置检查
在编写代码之前,必须完成以下检查:
步骤1:检查 SDK 依赖
检查项目 pom.xml 中是否包含 dg-java-sdk 依赖:
<dependency>
<groupId>com.huifu.bspay.sdk</groupId>
<artifactId>dg-java-sdk</artifactId>
<version>3.0.34</version>
</dependency>
步骤2:安装依赖(如未安装)
在 pom.xml 中添加上述依赖后执行:
mvn clean install
步骤3:验证导入
确认以下核心类可正常导入:
com.huifu.bspay.sdk.opps.core.BasePaycom.huifu.bspay.sdk.opps.core.config.MerConfigcom.huifu.bspay.sdk.opps.client.BasePayClientcom.huifu.bspay.sdk.opps.core.utils.DateToolscom.huifu.bspay.sdk.opps.core.utils.SequenceTools
各场景所需的 Request 类:
| 场景 | Request 类 |
|---|---|
| 预下单 | V2TradeHostingPaymentPreorderH5Request |
| 订单查询 | V2TradeHostingPaymentQueryorderinfoRequest |
| 退款 | V2TradeHostingPaymentHtrefundRequest |
只有完成以上前置检查后,才能继续按照 reference 目录中的示例代码进行开发。
javax / jakarta 命名空间说明
示例代码使用 javax.annotation 和 javax.validation 命名空间(适用于 Spring Boot 2.x)。如果项目使用 Spring Boot 3.x + JDK 17/21,需将 javax 替换为 jakarta:
| Spring Boot 2.x (javax) | Spring Boot 3.x (jakarta) |
|---|---|
javax.annotation.PostConstruct | jakarta.annotation.PostConstruct |
javax.validation.constraints.NotBlank | jakarta.validation.constraints.NotBlank |
场景路由
根据用户意图选择对应场景:
| 用户意图 | 场景 | 接口路径 | 详细说明 |
|---|---|---|---|
| 创建支付订单 | 预下单 | POST /hfpay/preOrder | 见 SCENARIOS.md #预下单 |
| 查询订单状态 | 订单查询 | POST /hfpay/queryorderinfo | 见 SCENARIOS.md #订单查询 |
| 对已支付订单退款 | 退款 | POST /hfpay/htRefund | 见 SCENARIOS.md #退款 |
根据用户描述的场景,读取 SCENARIOS.md 中对应章节获取请求参数、响应参数和实现细节。
通用架构设计
三个场景共享同一套分层架构和商户配置:
HuifuConfig (@Configuration)
└── @PostConstruct initSdk() — 初始化 SDK(仅应用启动时执行一次)
HFPayController (@RestController, /hfpay)
├── POST /preOrder → hostingPayService.preOrder(req)
├── POST /queryorderinfo → hostingPayService.queryOrderInfo(req)
└── POST /htRefund → hostingPayService.htRefund(req)
HostingPayService (@Service, 构造器注入 ObjectMapper)
├── preOrder() → 组装请求 → BasePayClient.request() → 返回响应
├── queryOrderInfo() → 组装请求 → BasePayClient.request() → 返回响应
└── htRefund() → 组装请求 → BasePayClient.request() → 返回响应
DTO层(含 @NotBlank 校验)
├── HostingPayPreOrderReq
├── HostingPayQueryOrderReq
└── HostingPayHtRefundReq
交易状态枚举(通用)
| 状态码 | 含义 | 建议处理方式 |
|---|---|---|
| P | 处理中 | 等待异步通知或轮询查询 |
| S | 交易成功 | 执行业务成功逻辑 |
| F | 交易失败 | 提示用户重新发起或联系客服 |
代码示例
详见 reference 目录下的示例代码文件:
| 文件 | 说明 |
|---|---|
| HuifuConfig.java | SDK 配置初始化类(@Configuration + @PostConstruct) |
| HFPayController.java | Controller 层(三个接口端点) |
| HostingPayService.java | Service 层(三个场景的业务方法) |
| HostingPayPreOrderReq.java | 预下单请求 DTO |
| HostingPayQueryOrderReq.java | 订单查询请求 DTO |
| HostingPayHtRefundReq.java | 退款请求 DTO |
| Result.java | 统一响应封装 |
安全规则
- 严禁在源代码中硬编码商户密钥,必须通过
application.yml配置并使用环境变量注入 - notify_url 和 callback_url 必须替换为实际业务地址,禁止使用任何测试域名
- 退款操作涉及资金变动,日志中应记录关键参数但避免打印完整密钥信息
- hosting_data 中的
project_id需替换为实际项目 ID
环境变量配置
application.yml 配置示例:
huifu:
product-id: ${HUIFU_PRODUCT_ID}
sys-id: ${HUIFU_SYS_ID}
rsa-private-key: ${HUIFU_RSA_PRIVATE_KEY}
rsa-public-key: ${HUIFU_RSA_PUBLIC_KEY}
notify-url: ${HUIFU_NOTIFY_URL}
refund-notify-url: ${HUIFU_REFUND_NOTIFY_URL}
hosting:
project-id: ${HUIFU_PROJECT_ID}
project-title: ${HUIFU_PROJECT_TITLE}
callback-url: ${HUIFU_CALLBACK_URL}
相关 Skills
面试体系设计
by alirezarezvani
按岗位、级别和团队设计面试流程,生成能力矩阵、题库与评分标准,分析面试官偏差并校准招聘门槛,适合搭建或优化企业招聘体系。
✎ 团队招人没章法时,用它快速搭建岗位化面试流程、题库与评分标准,还能兼顾校准面试偏差,招聘更稳更准。
抽认卡
by BytesAgain
Spaced repetition study tool with deck management. Use when you need flashcard.
教程文档
by anderskev
Tutorial patterns for documentation - learning-oriented guides that teach through guided doing
相关 MCP 服务
by boosted-chat
Flight search & booking for AI agents. 400+ airlines, $20-50 cheaper than OTAs.
by jjlabsio
Search company disclosures and financial statements from the Korean market. Retrieve stock profiles, market classifications, and historical trading data across major exchanges. Accelerate equity research with accurate, date-specific insights for Korean securities.
✎ 做韩国股研时,用它能一站查公司披露、财报和历史行情,按日期精确追溯关键信息,比手动翻交易所高效太多。
by jjlabsio
检索韩国市场公司的披露文件与财务报表,并获取股票概况等关键信息。
✎ 想研究韩股公司时,它能一站式拉取披露、财报和股票概况,省去跨站查资料的麻烦,对跨境投研尤其省时。