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.

3.7k行业场景未扫描2026年3月23日

安装

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 依赖:

xml
<dependency>
    <groupId>com.huifu.bspay.sdk</groupId>
    <artifactId>dg-java-sdk</artifactId>
    <version>3.0.34</version>
</dependency>

步骤2:安装依赖(如未安装)

pom.xml 中添加上述依赖后执行:

bash
mvn clean install

步骤3:验证导入

确认以下核心类可正常导入:

  • com.huifu.bspay.sdk.opps.core.BasePay
  • com.huifu.bspay.sdk.opps.core.config.MerConfig
  • com.huifu.bspay.sdk.opps.client.BasePayClient
  • com.huifu.bspay.sdk.opps.core.utils.DateTools
  • com.huifu.bspay.sdk.opps.core.utils.SequenceTools

各场景所需的 Request 类:

场景Request 类
预下单V2TradeHostingPaymentPreorderH5Request
订单查询V2TradeHostingPaymentQueryorderinfoRequest
退款V2TradeHostingPaymentHtrefundRequest

只有完成以上前置检查后,才能继续按照 reference 目录中的示例代码进行开发。

javax / jakarta 命名空间说明

示例代码使用 javax.annotationjavax.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.PostConstructjakarta.annotation.PostConstruct
javax.validation.constraints.NotBlankjakarta.validation.constraints.NotBlank

场景路由

根据用户意图选择对应场景:

用户意图场景接口路径详细说明
创建支付订单预下单POST /hfpay/preOrderSCENARIOS.md #预下单
查询订单状态订单查询POST /hfpay/queryorderinfoSCENARIOS.md #订单查询
对已支付订单退款退款POST /hfpay/htRefundSCENARIOS.md #退款

根据用户描述的场景,读取 SCENARIOS.md 中对应章节获取请求参数、响应参数和实现细节。

通用架构设计

三个场景共享同一套分层架构和商户配置:

code
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.javaSDK 配置初始化类(@Configuration + @PostConstruct)
HFPayController.javaController 层(三个接口端点)
HostingPayService.javaService 层(三个场景的业务方法)
HostingPayPreOrderReq.java预下单请求 DTO
HostingPayQueryOrderReq.java订单查询请求 DTO
HostingPayHtRefundReq.java退款请求 DTO
Result.java统一响应封装

安全规则

  1. 严禁在源代码中硬编码商户密钥,必须通过 application.yml 配置并使用环境变量注入
  2. notify_url 和 callback_url 必须替换为实际业务地址,禁止使用任何测试域名
  3. 退款操作涉及资金变动,日志中应记录关键参数但避免打印完整密钥信息
  4. hosting_data 中的 project_id 需替换为实际项目 ID

环境变量配置

application.yml 配置示例:

yaml
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

Universal
热门

按岗位、级别和团队设计面试流程,生成能力矩阵、题库与评分标准,分析面试官偏差并校准招聘门槛,适合搭建或优化企业招聘体系。

团队招人没章法时,用它快速搭建岗位化面试流程、题库与评分标准,还能兼顾校准面试偏差,招聘更稳更准。

行业场景
未扫描9.0k

抽认卡

by BytesAgain

热门

Spaced repetition study tool with deck management. Use when you need flashcard.

行业场景
未扫描3.7k

教程文档

by anderskev

热门

Tutorial patterns for documentation - learning-oriented guides that teach through guided doing

行业场景
未扫描3.7k

相关 MCP 服务

by boosted-chat

热门

Flight search & booking for AI agents. 400+ airlines, $20-50 cheaper than OTAs.

行业场景
137

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.

做韩国股研时,用它能一站查公司披露、财报和历史行情,按日期精确追溯关键信息,比手动翻交易所高效太多。

行业场景
103

检索韩国市场公司的披露文件与财务报表,并获取股票概况等关键信息。

想研究韩股公司时,它能一站式拉取披露、财报和股票概况,省去跨站查资料的麻烦,对跨境投研尤其省时。

行业场景
103

评论