From 2c0d2a4f5ed5b9511d07375e8b62fd0e9394414b Mon Sep 17 00:00:00 2001 From: mofangmin Date: Tue, 20 Aug 2024 14:18:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- call/pay.go | 6 +++--- modules/pay/gopay/base.go | 1 + modules/pay/grepay/base.go | 3 ++- modules/pay/luckyinpay/base.go | 1 + modules/pay/moonpay2/base.go | 3 ++- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/call/pay.go b/call/pay.go index ccc39c7..5327fb5 100644 --- a/call/pay.go +++ b/call/pay.go @@ -393,6 +393,7 @@ func WithdrawCallback(order *common.WithdrawOrder) error { // ReturnBackWithdraw 退出被拒绝或者失败,返还金币 func ReturnBackWithdraw(or *common.WithdrawOrder, originStatus, status uint8, payChannel ...int) error { + log.Info("ReturnBackWithdraw orderid:%v,originStatus:%v,status:%v", or.OrderID, originStatus, status) order := &common.WithdrawOrder{} order.ID = or.ID tx := db.Mysql().Begin() @@ -402,11 +403,10 @@ func ReturnBackWithdraw(or *common.WithdrawOrder, originStatus, status uint8, pa "fail_reason": or.FailReason, "callback_time": time.Now().Unix(), } - if len(or.Operator) == 0 { + if status == common.StatusROrderFail { status = common.StatusROrderCreate - delete(u, "callback_time") + u["callback_time"] = 0 } - if len(payChannel) > 0 { u["pay_channel"] = payChannel[0] } diff --git a/modules/pay/gopay/base.go b/modules/pay/gopay/base.go index 7cb48e1..3ab8159 100644 --- a/modules/pay/gopay/base.go +++ b/modules/pay/gopay/base.go @@ -122,6 +122,7 @@ func (s *Sub) CheckSign(str string) bool { checkSign = req.Data.Sign s.Base.CallbackResp.OrderID = req.Data.OrderID s.Base.CallbackResp.Success = req.Code == 200 + s.Base.CallbackResp.FailMessage = req.Message mySign = s.Base.SignMD5(req.Data) } else if s.Base.Opt == 4 { req := s.Base.CallbackReq.(*WithdrawCallbackReq) diff --git a/modules/pay/grepay/base.go b/modules/pay/grepay/base.go index 8e57719..02a79fb 100644 --- a/modules/pay/grepay/base.go +++ b/modules/pay/grepay/base.go @@ -163,7 +163,7 @@ func (s *Sub) CheckSign(str string) bool { // return false // } s.Base.CallbackResp.Success = req.OrdStatus == "01" - + s.Base.CallbackResp.FailMessage = req.OrdStatus return strings.ToUpper(util.CalculateMD5(str+"&key="+s.Base.SignKey)) == req.Sign } else if s.Base.Opt == base.OPTWithdrawCB { req := s.Base.CallbackReq.(*WithdrawCallbackReq) @@ -172,6 +172,7 @@ func (s *Sub) CheckSign(str string) bool { // return false // } s.Base.CallbackResp.Success = req.OrdStatus == "07" + s.Base.CallbackResp.FailMessage = req.OrdStatus return strings.ToUpper(util.CalculateMD5(str+"&key="+s.Base.SignKey)) == req.Sign } return false diff --git a/modules/pay/luckyinpay/base.go b/modules/pay/luckyinpay/base.go index f63127d..5a9504c 100644 --- a/modules/pay/luckyinpay/base.go +++ b/modules/pay/luckyinpay/base.go @@ -139,6 +139,7 @@ func (s *Sub) CheckSign(_ string) bool { log.Debug("checkSign pay:%+v", *req) s.Base.CallbackResp.OrderID = req.MchOrderNo s.Base.CallbackResp.Success = req.PayState == 2 + s.Base.CallbackResp.FailMessage = req.ErrMsg signStr := base.GetSignStr(req, s.Base.SignPassStr...) sign, _ := base64.StdEncoding.DecodeString(req.Sign) err := base.RsaVerify(publicKey, crypto.SHA256, []byte(signStr), sign) diff --git a/modules/pay/moonpay2/base.go b/modules/pay/moonpay2/base.go index 5a06a55..867b828 100644 --- a/modules/pay/moonpay2/base.go +++ b/modules/pay/moonpay2/base.go @@ -202,7 +202,7 @@ func (s *Sub) CheckSign(str string) bool { return false } s.Base.CallbackResp.Success = req.Status == 4 - + s.Base.CallbackResp.FailMessage = req.Message return strings.ToUpper(util.CalculateMD5(req.OrderNumber+mid+signKey)) == req.Sign } else if s.Base.Opt == base.OPTWithdrawCB { req := s.Base.CallbackReq.(*WithdrawCallbackReq) @@ -211,6 +211,7 @@ func (s *Sub) CheckSign(str string) bool { return false } s.Base.CallbackResp.Success = req.Status == 4 + s.Base.CallbackResp.FailMessage = req.Message err := base.RsaDecode(req.Sign, string(publicKey)) if err != nil { log.Error("err:%v", err)