merge: P8 订阅/recurring + 拒付 chargeback 并入(订阅生命周期/续费/取消/past_due/chargeback/事件集收口)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013nMthbVEmQquxBRKb9Fj8u # Conflicts: # internal/model/testdb.go # internal/provider/provider.go # internal/router/router.go # internal/store/order_query_test.go # main.go
This commit is contained in:
@@ -45,13 +45,16 @@ func SetupV2(r *gin.Engine, g *gateway.Gateway) {
|
||||
h := handler.NewGatewayHandler(g)
|
||||
v2 := r.Group("/api/v2")
|
||||
{
|
||||
// per-IP 限流(jiu 反馈波,P3 限流纵深):只挂改状态端点(下单/重试/取消)——
|
||||
// per-IP 限流(jiu 反馈波,P3 限流纵深):只挂改状态端点(下单/重试/取消/订阅创建/订阅取消)——
|
||||
// - callback 不限:来源是渠道服务器,不是终端用户,限了只会误伤渠道重投。
|
||||
// - GET 查单/查退款不限:只读、幂等,是结果页轮询的正常用法,风险远低于
|
||||
// - GET 查单/查退款/查订阅不限:只读、幂等,是结果页轮询的正常用法,风险远低于
|
||||
// 下单类写操作;真要限也该给比写操作更宽松的档,这里选择直接不限。
|
||||
// - /refunds(创建退款)/admin 组不在本次改动范围内(见 config.RateLimit 注释)。
|
||||
stateLimit := stateChangeRateLimit()
|
||||
v2.POST("/orders", stateLimit, h.CreateOrder)
|
||||
v2.POST("/subscriptions", stateLimit, h.CreateSubscription)
|
||||
v2.GET("/subscriptions/:sub_id", h.GetSubscription)
|
||||
v2.POST("/subscriptions/:sub_id/cancel", stateLimit, h.CancelSubscription)
|
||||
v2.GET("/orders/:order_no", h.GetStatus)
|
||||
v2.POST("/orders/:order_no/retry", stateLimit, h.Retry)
|
||||
v2.POST("/orders/:order_no/cancel", stateLimit, h.Cancel)
|
||||
|
||||
Reference in New Issue
Block a user