pmt(payment-middle)支付中台
职责:支付通道/放款/扣款。Eureka 名 plutus-pmt-service。全系统资金通道出口——所有支付通道的 HTTP 直连都在此。对内消费 fcs/ims 的资金事件、回流结果给 fcs。
出向依赖(我依赖谁)
仓库内服务
| 目标 | 客户端/Publisher | 接口/事件 | 边类型 | 状态 |
|---|---|---|---|---|
| ims | IImsCustClient | queryCardTokenByUserId、cardRepay | Feign | ✓ |
| fcs | DoPaySucToFundOutPublisher | 放款成功回流(source.output().send) | 事件 | ✓ |
| fcs | DoAccountRepayOutPutPublisher | 还款结果回流 | 事件 | ✓ |
| ims | DoBindCardQueryPublisher | 绑卡查询回调 | 事件 | ✓ |
| bns | DoPayToBusinessNoticeOutPublisher | 业务支付通知 | 事件 | 活跃;bns 无消费端 |
| (内部) | dopayment 包约 48 个 Publisher | 查询/代扣/支付各阶段内部状态机自消费 | 事件 | — |
pmt 出向 Feign 仅 1 个(→ims 查卡/代扣),其余下游均走事件或 HTTP。
外部三方
| 目标 | 客户端/Publisher | 接口/事件 | 边类型 | 状态 |
|---|---|---|---|---|
| 支付通道 Paystack/Monnify/Flutterwave/InterSwitch/Remita/Seerbit/Zestpay/Budpay/Aicapay/Palmpay | HttpExecutor / 各 Outing 类(OkHttp) | 放款/代扣/转账/账户校验/BVN 匹配 | HTTP | ✓ |
| NIBSS(尼日利亚银行间结算系统) | NibssOuting + CxfClient | 账户名查询/单笔贷记(放款)/单笔借记(代扣)/Mandate 授权/余额查询 | SOAP/CXF | ✓ |
| 大数据 BigData | BigDataOutgoing(OkHttp) | KYC/卡信息/用户信息查询 | HTTP | ✓ |
| 华为云 OBS | Transsnet 共享库 S3FileUtil / FileBusiness(类名/amazonaws 类型为迁移前残留) | 交易对账凭证、PDF 合同/影像上传(前缀 plutus/) | HTTP/SDK | ✓ |
| SMTP 邮件服务器 | EmailUtil(JavaMail,mail.host + SSL) | 邮件发送(对账/通知) | SMTP | ✓ |
| mdut | DoPushMdutPublisher | 推送触达 | 事件 | ✓ |
普通通道 URL 经 Apollo 动态配置(
paystack.pay.url、monnify.auth.login.url等),调用经HttpExecutorFactory分级超时 + DB 出入日志。NIBSS 独走 SOAP/CXF(CxfClient.invoke调 wsdl 端点),与 OkHttp 通道机制不同。运维告警另经飞书 webhook(见 00-总览基础设施说明)。
入向被依赖(谁依赖我)
仓库内调用方
| 调用方 | 客户端/Publisher | 接口/事件 | 边类型 | 状态 |
|---|---|---|---|---|
| bns | IPmtServiceClient | queryBvnByAccount | Feign | ✓ |
| ims | 12 个 IPmt*Client(9 通道 + IPmtBankServiceClient 账户 + IPmtOrderClient 订单 + IPmtInnerService 内部代付) | 绑卡通道分流/订单查询/内部支付 | Feign | ✓ |
| fcs | PlutusLoanApplyPublisher / BeforePaymentPlutusPublisher / RefundDataPublisher | 放款/还款/退款派发 | 事件 | ✓ |
| ims | DoBindAccountPayPublisher / DoRepaySinglePublisher | 绑卡放款/单笔还款 | 事件 | ✓ |
| middle-gateway | Eureka 路由 | 中台网关转发 | 路由 | ✓ |
外部 / 缺失方入口
| 入口 | 边类型 | 疑似调用方 | 出处 |
|---|---|---|---|
/pmt/outCallbackPayment/paystackCallBackEvents、/plutusPaystackCallbackEvents、/flutterwaveGetEnvents | HTTP 端点 | 支付通道 Paystack / Flutterwave / Plutus(通道异步回调) | IOutCallbackPaymentService |
/pmt/innerPayment/vpRepayCallBack | HTTP 端点 | 虚拟子账户/代理系统回调 | IInnerPaymentService |
/DXWS(nibssWSService.nibssTransactionCallback) | SOAP 端点 | NIBSS(代扣/转账结果回调) | WebServiceConfig / NibssWSService |
pmt 不仅是 NIBSS 的 SOAP client,还暴露 SOAP server
/DXWS供 NIBSS 异步回调——NIBSS 是双向边(出向 CxfClient 调 + 入向 /DXWS 被回调)。
通道把放款/代扣结果异步回调进 pmt,与出向 pmt→通道 HTTP 配对成「请求-回调」闭环。
边界洞察
- 资金链单点:放款、代扣、转账的实际三方调用全部经 pmt 的 HTTP 出口。pmt 不可用 = 全系统无法放/收款。容量、容灾、通道路由策略都集中在此。
- 与 fcs 的事件闭环:fcs 派发(放款/还款/退款)→ pmt 调通道 → pmt 回流(成功/结果)→ fcs 入账。这是资金主链路,只看 Feign 完全看不到。
- pmt→bns 业务通知缺消费端,是出向悬挂点。
- NIBSS 是唯一 SOAP 双向边:pmt 经 CXF 调 NIBSS(账户名查询/贷记放款/借记代扣/授权/余额),并暴露
/DXWS收 NIBSS 回调。NIBSS 是尼日利亚央行清算网络,属国家级金融基础设施,耦合方式(SOAP/加解密)与其他通道不同,改造时单独对待。