Files
jx-print/controllers/app/tonglian_pay.go
邹宗楠 66db5867a4 1
2022-08-25 16:10:01 +08:00

72 lines
2.0 KiB
Go

package app
import (
"git.rosy.net.cn/jx-print/controllers"
"git.rosy.net.cn/jx-print/globals"
"git.rosy.net.cn/jx-print/model"
"git.rosy.net.cn/jx-print/model/app_model"
"git.rosy.net.cn/jx-print/services/api"
"git.rosy.net.cn/jx-print/services/print_server/app_server"
"github.com/gin-gonic/gin"
"net/http"
)
// Pay4Order 充值打印机
// @Title 充值打印机
// @Description 充值打印机
// @Param token header string true "认证token"
// @Param data body app_model.PayOrder true "请求参数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /pay4Order [post]
func (a *Auth2Controller) Pay4Order(c *gin.Context) {
// 参数绑定
var (
err error
params *app_model.PayOrder
service = app_server.PrintPayServer
tokenInfo *model.TokenInfo
)
if err = c.ShouldBind(&params); err != nil {
c.JSON(http.StatusOK, &model.CallBack{
Code: model.ErrCodeNormal,
Desc: err.Error(),
})
return
}
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
return
}
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
pay, err := service.Pay4Order(tokenInfo.User, service.GetRealRemoteIP(c), params.TotalFee, params.PayType, params.VendorPayType, params.PrintNo)
if err != nil {
return nil, "", err
}
return map[string]interface{}{"pay": pay}, "", nil
})
}
func (a *Auth2Controller) PayCallBack(c *gin.Context) {
if c.Request.Method == http.MethodPost {
call, err := api.TLpayAPI.GetCallbackMsg(c.Request)
if err != nil {
globals.SugarLogger.Errorf("通联支付,结构体转换错误:%v", err)
c.JSON(http.StatusNotFound, "")
}
var service = app_server.PrintPayServer
if err := service.OnTLPayCallback(call); err != nil {
globals.SugarLogger.Errorf("通联支付,回调函数错误处理异常:%v", err)
c.JSON(http.StatusNotFound, "")
}
c.JSON(http.StatusOK, call)
} else {
c.JSON(http.StatusNotFound, "")
}
}