PaymentCenter/app/http/routes/route.go

115 lines
3.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package routes
/**
* 配置路由
*/
import (
"PaymentCenter/app/constants/common"
"PaymentCenter/app/http/controllers"
"PaymentCenter/app/http/controllers/front"
"PaymentCenter/app/http/middlewares"
"PaymentCenter/app/http/trace"
"PaymentCenter/app/utils/metric"
"PaymentCenter/config"
"github.com/gin-gonic/gin"
"github.com/qit-team/snow-core/http/middleware"
"github.com/qit-team/snow-core/log/logger"
ginSwagger "github.com/swaggo/gin-swagger"
"github.com/swaggo/gin-swagger/swaggerFiles"
)
// api路由配置
func RegisterRoute(router *gin.Engine) {
//middleware: 服务错误处理 => 生成请求id => access log
router.Use(middlewares.ServerRecovery(), middleware.GenRequestId, middleware.GenContextKit, middleware.AccessLog())
if config.GetConf().PrometheusCollectEnable && config.IsEnvEqual(config.ProdEnv) {
router.Use(middlewares.CollectMetric())
metric.Init(metric.EnableRuntime(), metric.EnableProcess())
metricHandler := metric.Handler()
router.GET("/metrics", func(ctx *gin.Context) {
metricHandler.ServeHTTP(ctx.Writer, ctx.Request)
})
}
if len(config.GetConf().SkyWalkingOapServer) > 0 && config.IsEnvEqual(config.ProdEnv) {
err := trace.InitTracer(config.GetConf().ServiceName, config.GetConf().SkyWalkingOapServer)
if err != nil {
logger.Error(nil, "InitTracer", err.Error())
} else {
router.Use(middlewares.Trace())
}
}
router.Use(middlewares.Cors())
router.NoRoute(controllers.Error404)
//router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
v1 := router.Group(common.FRONT_V1)
{
//回调处理
notify := v1.Group("/notify")
{
notify.POST("/wx/:payChannelId", front.WxCallback)
notify.POST("/ali/:payChannelId", front.AliCallback)
}
pay := v1.Group("/pay", middlewares.ValidatePayRequest())
{
pay.POST("/url", front.PayUrl)
pay.POST("/query", front.QueryOrder) //查询订单
pay.POST("/refund", front.Refund)
pay.POST("/close", front.CloseOrder)
}
// 测试微信支付唤起
v1.GET("/brokerWechatUrl", front.BrokerWechatUrl)
}
// 支付宝小程序获取授权获取openId
v1.POST("/ali/getOauth", middlewares.ValidateRequest(), front.GetAliOauth)
// 微信获取授权相关
router.LoadHTMLGlob("./front/templates/*")
wx := v1.Group("/wx", middlewares.ValidateRequest())
{
wx.POST("/getWxAuthUrl", front.GetWxAuthUrl) // 获取授权codeUrl
wx.GET("/getWxAuth", front.GetWxAuth) // 获取openId, 公众号授权
wx.GET("/getCode", front.GetWxCode) // 接收微信code
wx.POST("/getScheme", front.GetWxMiniScheme) // 小程序 获取加密scheme码
wx.GET("/getWxAuthMini", front.GetWxAuthMini) // 小程序 获取openId, 授权
wx.GET("/wxMini", front.WxMiniPay) // 小程序 获取支付参数
}
// 微信jsapi支付链接
router.GET(common.WXCodeRedirectAddress, middlewares.ValidateRequest(), front.WxJsApiPay)
v2 := router.Group(common.FRONT_V2)
{
pay := v2.Group("/pay", middlewares.ValidatePayRequest())
// V2下单,存订单信息,返回收银台地址
pay.POST("/url", front.PayUrlV2)
}
//收银台
{
// 收银台地址
router.GET(common.PayPageAddress, front.PayPage)
payPage := router.Group(common.PayPageAddress, middlewares.ValidateRequest())
// 收银台 支付渠道列表
payPage.POST("/list", front.PayChannelList)
// 付款
payPage.GET("/submit", front.GetPayLink)
//router.GET(common.PayPageAddress, middlewares.ValidateRequest(), front.PayPage)
//// 收银台 支付渠道列表
//router.POST(common.FRONT_V1+"/payPage/list", middlewares.ValidateRequest(), front.PayChannelList)
//// 获取付款链接
//v1.POST("/payPage/link", middlewares.ValidateRequest(), front.GetPayLink)
}
router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
}