首页 / Java 平台(cloud-java) / pay 支付

职责概览

支付模块 独立端口 48093,管理支付订单、Checkout 会话、渠道/应用、退款、转账、钱包、对账与权益资格策略(PaymentEligibilityPolicy)。

核心设计原则:支付事实分层——订单、支付尝试、异步通知、对账分别落表,任何状态推断都必须回到对应事实。

支付事实分层

事实表/服务职责
支付订单pay_order业务订单状态机;唯一约束:租户订单号、app_id + merchant_order_id
支付尝试pay_payment_attempt与提供商的一次交互;唯一约束:公开 attempt ID、客户端幂等键、提供商幂等键
异步通知通知链路 + PayNotifyJob提供商回调验签后驱动状态;失败重试
对账ReconciliationCaseServicePayReconciliationCaseJob以提供商流水核对,差异生成 case
未知状态恢复PayUnknownAttemptRecoveryJob超时未回调的尝试自动查询恢复
退款/结算/转账PayRefundFactServiceSettlementServicePayTransferSyncJob各自独立事实与同步

接口清单

Controller说明
AppAppPayCheckoutControllerAppPayCheckoutSessionV1ControllerAppPayOrderControllerAppPayWalletControllerAppPayWalletRechargeControllerAppPayWalletTransactionControllerAppPayTransferControllerCheckout 会话、下单、钱包充值/流水、转账
AdminPayOrderControllerPayNotifyControllerPayAppControllerPayProviderAccountControllerPayProductMappingControllerPayTransferControllerPayOperationControllerPaymentEligibilityPolicyController订单、通知、应用、渠道账户、产品映射、运营、资格策略
WebhookPayProviderWebhookController提供商异步回调入口(验签 + 幂等)
演示PayDemoOrderControllerPayDemoWithdrawController沙箱演示下单/提现

关键实现与任务

fact 服务:PayFactAdminService(事实管理)、PayOutboxPublisher(可靠发布)、PayProviderFactProjectionService(提供商事实投影)、PayDisputeService(争议)、ReconciliationCaseService(对账 case)。

XXL-JOB 处理器:

  • 订单:PayOrderExpireJob(过期)、PayOrderSyncJob(同步)
  • 通知:PayNotifyJob
  • 尝试恢复:PayUnknownAttemptRecoveryJob
  • 退款/转账:PayRefundSyncJobPayTransferSyncJob
  • 对账:PaySettlementReconciliationJobPayReconciliationCaseJob
  • 提供商:PayProviderEventJobPayProviderResourceSyncJob
  • Outbox:PayOutboxPublishJob

数据与维护注意

核心表:pay_* 与对账/financial 表(36 张)。

  • 不能用单一 pay_order.status 推断所有提供商状态。
  • 回调处理必须验签 + 幂等;失败进重试/Outbox,不伪造业务行。
  • 支付凭据(渠道密钥等)不得写入日志或 Wiki。