yeg
2026-09-15 c3922ab8f016b3664738c908a34eb049bcdfd080
refs
用户 yeg <1347747024@qq.com>
星期二, 九月 15, 2026 10:38 +0800
提交者 yeg <1347747024@qq.com>
星期二, 九月 15, 2026 10:38 +0800
提交c3922ab8f016b3664738c908a34eb049bcdfd080
目录 9331a4c2dba426cf28c5d2eabcab9c7eb788bf95 目录 | zip | gz
parent 3430766339078f9e8f58d281dbdf10c9b033f64c 查看 | 对比
feat(huifu): 按汇付规则补齐商户业务开通的两个必填字段

以最新线上文档(https://paas.huifu.com/partners/api/doc/ 的《商户业务开通》)为准逐项对账,
发现两处该发而未发的字段:

1. media_mer_common_flag(顶层):运营媒介主体与商户主体是否一致。平台用一个运营媒介为众多
子商户开通业务,主体天然不一致,取 N。这是顶层必填——不传会被通道拒,实测报
「【media_merCommon_flag-媒介主体与商户主体是否一致】不能为空,或格式非法」。
2. micro_biz_type(wx_conf_list 元素内的 wx_real_name_info):文档写明「个人商户需要填写」,
且三种取值(门店场所/流动经营/线上商品服务交易)都要求 F22 店铺门头照 + F24 店铺内景照。

层级依据:文档里 wx_real_name_info 既是父字段列、又有同名子表;按本接口的写法约定
(与 online_media_info_list 相同的写法)它是嵌套 jsonObject,因此 micro_biz_type 放进
wx_conf_list 元素里,不平铺到顶层。企业主体不塞这个字段。

顺带把请求组装从 open() 里拆成 buildRequest(),与发送解耦,便于直接断言字段与层级。

照片(F22/F24)尚未准备,本次只补字段取值;缺什么材料由通道在参数校验阶段点名,
避免现在拿不到权限时靠猜。配置项:
app.payment.huifu.merchant-media-subject-same(默认 N)
app.payment.huifu.merchant-micro-business-type(默认 MICRO_TYPE_ONLINE)

新增 HuifuBusinessOpenRequiredFieldsTests 3 项,连同相关测试共 64 项通过。
1个文件已添加
4个文件已修改
177 ■■■■■ 已修改文件
talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantSettlementService.java 2 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuMerchantBusinessOpenGateway.java 59 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuPaymentProperties.java 20 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/resources/application.yml 5 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/test/java/com/talentcard/server/business/payment/huifu/HuifuBusinessOpenRequiredFieldsTests.java 91 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史