feat(v2): gateway.Refund 编排(部分/多次累计 + 超退守卫 + crypto 人工向闭环)+ RefundingProvider 加 refundID 幂等键

This commit is contained in:
wangjia
2026-07-10 17:23:14 +08:00
parent aa14204640
commit 2016c5d16e
10 changed files with 367 additions and 14 deletions
+2 -1
View File
@@ -40,6 +40,7 @@ func main() {
// v2 统一网关装配(P2 骨架,P3 配置驱动注册接线):provider 注册表 + gateway + webhook notifier。
orderStore := store.NewOrderStore(db)
refundStore := store.NewRefundStore(db)
webhookStore := store.NewWebhookStore(db)
notifier := webhook.NewNotifier(webhookStore, config.C.BizByName, func(no string) (bool, error) {
o, err := orderStore.GetOrder(no) // 投递门禁:订单已结算(paid 及退款态)才放行
@@ -55,7 +56,7 @@ func main() {
// P5 多账户路由:按 config.routing.<channel> 选策略(缺省 round_robin)。
// limit_aware 用量数据源 P6 对账就绪前用空源(NopUsage,退化为 round_robin)。
acctPicker := accounts.NewRouter(acctReg, config.C.Routing, accounts.NopUsage{})
gw := gateway.New(orderStore, pReg, acctPicker, productResolver, notifier, "cn")
gw := gateway.New(orderStore, refundStore, pReg, acctPicker, productResolver, notifier, "cn")
router.SetupV2(r, gw)
if config.C.QuerySync.Enabled {