yeg
2026-09-15 04cb85a10482d455f5449b8897a6932be561a3b2
商户进件第一轮grill决策
2个文件已添加
1个文件已修改
90 ■■■■■ 已修改文件
.scratch/merchant-wechat-onboarding/spec.md 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CONTEXT.md 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/adr/0001-merchant-onboarding-and-wechat-provisioning.md 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.scratch/merchant-wechat-onboarding/spec.md
New file
@@ -0,0 +1,77 @@
# 企业商户进件与微信支付开通
状态:设计质询中,尚未确认完整实施范围。2026-09-15。
## 已确认的需求
- 第一阶段支持企业商户。
- 商户在商户端一次提交资料与微信开通意图;基本进件通过后平台继续开通微信。
- 支付发生在平台小程序中;用户提到人才端和用户端,仓库实际存在人才端和商户端两个小程序,两者业务称呼及支付职责待核对。
- 微信配置以汇付商户 `6666000226048687` 为参考,由平台配置,不要求商户手填渠道技术参数。
- 基本进件通过、微信开通失败时分别展示结果,允许仅重试失败步骤。
- 商户端展示处理中、审核中、待实名、已开通及失败等细分进度;最终状态来源仍需根据汇付查询与回调文档核实。
- 本地开发无法接收汇付回调,必须可通过平台主动查询推进;查询频率、入口及上线策略待定。
## 控台只读核查:参考商户
核查日期:2026-09-15。来源:合作伙伴平台 → 商户信息 → 指定商户 → 一体化收款产品 → 基础支付 → 微信支付详情。
| 项目 | 当前参考值 |
| --- | --- |
| 商户类型 | 企业商户 |
| 微信渠道号 | 00016904 |
| 微信行业类目 | 线上-企业-756-提供网上交易场所或信息服务的业务、通讯业务、财经类业务及其他平台服务 |
| 业务开通类型 | 标准费率线上 |
| 默认通道 | 是 |
| 开通场景 | 微信线上公众号支付、微信线上小程序支付、微信线上反扫支付 |
| 各场景费率 | 0.70%,最低收取 0.00 元 |
| 仅借记卡 | 否 |
| 手续费 | 内扣、实收 |
| 微信预授权 | 未开通 |
| 实名授权 | 审核通过、已授权 |
| 使用上级商户号发起 AT 交易 | 否 |
| 绑定小程序 | wxcfee477acb54d179;wx550e520ad19458ea |
控台微信配置提示:公众号、小程序、反扫 AppID 累计最多配置 5 个。界面可同时填入多个小程序 AppID,但 API 的格式与绑定结果查询方式仍需查证。未修改控台任何配置。
参考商户的子商户号、实名结果、企业证照和银行卡属于该商户,不能作为新商户的共享配置。行业类目适用性、附带公众号/反扫能力是否保留,待用户决策;控台渠道号与 API pay_channel_id 的映射也需核实。
## 文档事实
来源:[汇付商户业务开通](https://paas.huifu.com/docs/api/doc/#/shgl/shywkt/api_shjj_shywkt_kyc),页面更新日期 2026-09-10。
- `/v2/merchant/busi/open` 面向已完成进件的商户,支持多项业务开通及补开;渠道自身需具有相应权限。
- `wx_conf_list` 配置微信业务;审核结果与业务开通结果分别通过 `async_return_url` 和 `busi_async_return_url` 通知。
- 申请审核通过和微信业务开通是不同结果,不能仅凭提交成功或汇付商户号判定可收款。
- 申请单查询、业务开通结果查询、微信实名查询及多 AppID 配置的准确字段与结果语义,列入后续核查。
## 现有实现与需求缺口
- `MerchantSettlementService.onboardingStatus` 只查询本地最新记录;商户状态页不向汇付同步结果。
- 微信配置和业务开通已有步骤状态,但完整推进主要依赖同步结果与回调,未发现待审核/开通中申请的主动查询补偿。
- 后台 payment-capability refresh 仅允许已通过申请,查询商户、结算等能力;不能恢复卡在待审核或微信业务开通中的申请。
- 现有 retryable 后重提会关闭旧申请并发起全套进件,与单步重试要求不符。
- 商户端类型未暴露微信配置、业务开通的步骤状态,无法显示已确认的细分进度。
- 微信绑定与支付下单使用单个全局 AppID。参考商户绑定的第一个 AppID 对应 `rencaika/manifest.json` 的 mp-weixin 配置,第二个对应 `rencaika_merchant/manifest.json`。
相关源码:
- `talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantSettlementService.java`
- `talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuMerchantBusinessOpenGateway.java`
- `talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuMerchantWechatConfigGateway.java`
- `talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuMerchantCapabilityGateway.java`
- `talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuMiniProgramPaymentGateway.java`
- `rencaika_merchant/services/settlement.uts`
- `rencaika_merchant/pages/merchant-onboarding-pending/merchant-onboarding-pending.uvue`
## 当前决策树前沿
- 小程序职责:实际付款是否仅发生于人才端;若两个端都付款,需进一步决定多 AppID 登录/下单的业务范围。
- 模板边界:平台服务行业类目与各实际入驻商户行业的映射;是否严格保留参考商户附带的公众号/反扫开通项。
- 状态同步:商户刷新触发查询、后台手动查询、定时查询分别如何参与推进。
- 存量处理:是否补齐已经进件或处于处理中商户的微信能力。
- 实施边界:商户端、进件后端、汇付支付适配及管理后台的范围;交易下单、退款、核销若发现问题应只读记录并交接,除非用户另行指定。
## 关联决定
[商户进件与微信支付开通分别判定](../../docs/adr/0001-merchant-onboarding-and-wechat-provisioning.md)
CONTEXT.md
@@ -27,3 +27,11 @@
## 结算银行卡
商户绑定的银行卡是自动结算的到账目标。商户可以查看和更换结算银行卡,但不能发起提现或选择金额。
## 进件与微信支付
**商户进件**:企业商户提交主体、经营和结算资料,申请成为汇付商户的过程。基本资料审核通过后,微信支付仍可能处于开通中或开通失败。
**微信支付开通**:商户取得在平台小程序内接受微信付款所需业务能力的过程。开通失败可以单独重试,不否定已经通过的基本资料审核。
**微信待实名**:微信支付开通过程中,仍需商户完成实名或授权的阶段,不属于开通失败。
docs/adr/0001-merchant-onboarding-and-wechat-provisioning.md
New file
@@ -0,0 +1,5 @@
# 商户进件与微信支付开通分别判定
商户端一次提交进件资料与微信支付开通意图,平台在基本进件审核通过后继续开通微信支付。两阶段分别记录结果;基本进件成功而微信开通失败时,保留已通过的商户身份,仅重试失败的开通步骤,避免因支付配置失败重复进件。商户端展示审核、待实名、开通中及失败等阶段,不能用一个整体失败状态抹掉已完成的进件结果。
本地开发环境无法接收汇付回调,流程需要通过主动查询取得审核及业务结果后继续推进;查询触发方式和上线后的调度策略仍待确认。