diff --git a/modules/pay/handler.go b/modules/pay/handler.go index 5e8ddb8..3526712 100644 --- a/modules/pay/handler.go +++ b/modules/pay/handler.go @@ -2,6 +2,7 @@ package pay import ( "errors" + "github.com/google/uuid" "server/call" "server/common" "server/db" @@ -21,6 +22,9 @@ func Recharge(req *pb.InnerRechargeReq) (ret []byte, err error) { // 还原amount // req.Amount /= common.DecimalDigits payWay := values.PayWay(req.Channel) + if req.DeviceID == "" { + req.DeviceID = uuid.New().String() + } log.Debug("recharge req:%+v,channel:%+v", req, payWay) // 首先判断个卡 // if req.IsPersonalCard && values.IsPayChannelValid(int(values.IGeekPay), req.Amount) { diff --git a/modules/pay/virgopay/base.go b/modules/pay/virgopay/base.go index 7bb1229..7640188 100644 --- a/modules/pay/virgopay/base.go +++ b/modules/pay/virgopay/base.go @@ -206,7 +206,7 @@ func (s *Sub) CheckSign(str string) bool { checkSign = req.Sign s.Base.CallbackResp.OrderID = req.MOrderId s.Base.CallbackResp.Success = req.Status == 3 - mySign = s.Base.SignMD5(req) + mySign = s.Base.SignMD5(req, s.Base.SignPassStr...) } else if s.Base.Opt == base.OPTWithdrawCB { req := s.Base.CallbackReq.(*WithdrawCallbackReq) log.Debug("checkSign withdraw:%+v", *req) @@ -215,7 +215,7 @@ func (s *Sub) CheckSign(str string) bool { s.Base.CallbackResp.Success = req.Status == 3 s.Base.CallbackResp.APIOrderID = req.OrderId s.Base.CallbackResp.FailMessage = req.Message - mySign = s.Base.SignMD5(req) + mySign = s.Base.SignMD5(req, s.Base.SignPassStr...) } return mySign == checkSign } diff --git a/modules/web/app/response.go b/modules/web/app/response.go index 182c93e..0f157b1 100644 --- a/modules/web/app/response.go +++ b/modules/web/app/response.go @@ -2,6 +2,7 @@ package app import ( "encoding/json" + "github.com/google/uuid" "io/ioutil" "net/http" "net/url" @@ -77,6 +78,9 @@ func NewApp(c *gin.Context) *Gin { } } g.UUID = c.GetHeader("uuid") + if g.UUID == "" { + g.UUID = uuid.New().String() + } deviceType := c.GetHeader("platform") g.DeviceType, _ = strconv.Atoi(deviceType) return g diff --git a/modules/web/handler/recharge.go b/modules/web/handler/recharge.go index 1ab6495..bc53fac 100644 --- a/modules/web/handler/recharge.go +++ b/modules/web/handler/recharge.go @@ -270,7 +270,7 @@ func PlayerRecharge(c *gin.Context) { if req.UserPhone == "" { req.UserPhone = util.CheckPhone(req.UserPhone) } - payImp := NewRechargeImp(req, a.UID, a.Channel, a.GetRemoteIP()) + payImp := NewRechargeImp(req, a.UID, a.Channel, a.GetRemoteIP(), a.UUID) if payImp == nil { a.Code = values.CodeRetry a.Msg = "channel unavailable" @@ -305,7 +305,7 @@ func PlayerRecharge(c *gin.Context) { } } -func NewRechargeImp(req *values.RechargeReq, uid, cid int, ip string) *RechargeImp { +func NewRechargeImp(req *values.RechargeReq, uid, cid int, ip, uuid string) *RechargeImp { r := new(RechargeImp) r.Channel = call.GetChannelByID(cid) if r.Channel == nil { @@ -370,6 +370,7 @@ func NewRechargeImp(req *values.RechargeReq, uid, cid int, ip string) *RechargeI p.req.Phone = req.UserPhone p.req.Amount = req.Amount p.req.PlayerChannel = uint32(cid) + p.req.DeviceID = uuid if req.CurrencyType == common.CurrencyINR { // 判断黑名单 if call.BlackListAndKick(uid, &common.BlackList{Phone: info.Mobile}) {