|
|
|
|
@ -147,26 +147,31 @@ func (s *Sub) PackWithdrawReq() interface{} { |
|
|
|
|
|
|
|
|
|
func (s *Sub) CheckSign(str string) bool { |
|
|
|
|
log.Debug("callback:%v", s.Base.CallbackReq) |
|
|
|
|
checkSign := "" |
|
|
|
|
sign := str |
|
|
|
|
if s.Base.Opt == base.OPTPayCB { |
|
|
|
|
req := s.Base.CallbackReq.(*PayCallbackReq) |
|
|
|
|
s.Base.CallbackResp.OrderID = req.PartnerOrderNo |
|
|
|
|
s.Base.CallbackResp.APIOrderID = req.OrderNo |
|
|
|
|
s.Base.CallbackResp.Success = req.Status == 1 |
|
|
|
|
checkSign = req.Sign |
|
|
|
|
signStr := values.GetSignStrFormURLEncode(s.Base.C, req, "sign") |
|
|
|
|
log.Debug("req:%v,pay signStr:%v", *req, signStr) |
|
|
|
|
return checkSign(signStr, req.Sign, 0) |
|
|
|
|
} else if s.Base.Opt == base.OPTWithdrawCB { |
|
|
|
|
req := s.Base.CallbackReq.(*WithdrawCallbackReq) |
|
|
|
|
signStr := values.GetSignStrFormURLEncode(s.Base.C, req, "sign") |
|
|
|
|
log.Debug("req:%v,withdraw signStr:%v", *req, signStr) |
|
|
|
|
s.Base.CallbackResp.OrderID = req.PartnerWithdrawNo |
|
|
|
|
s.Base.CallbackResp.Success = req.Status == 1 |
|
|
|
|
return checkSign(signStr, req.Sign, 1) |
|
|
|
|
} |
|
|
|
|
if s.Base.KeyName == "" { |
|
|
|
|
sign += "&key=" + s.Base.SignKey |
|
|
|
|
return false |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func checkSign(str, sign string, t int) (pass bool) { |
|
|
|
|
str = values.GetSignStrURLEncode(str, "sign") |
|
|
|
|
if t == 0 { |
|
|
|
|
str += "&key=" + key |
|
|
|
|
} else { |
|
|
|
|
sign += "&" + s.Base.KeyName + "=" + s.Base.SignKey |
|
|
|
|
str += "&key=" + withdrawKey |
|
|
|
|
} |
|
|
|
|
ret := util.CalculateMD5(sign) |
|
|
|
|
ret = strings.ToUpper(ret) |
|
|
|
|
log.Info("SignStr:%v,SignMD5:%v", sign, ret) |
|
|
|
|
return checkSign == ret |
|
|
|
|
return strings.ToUpper(util.CalculateMD5(str)) == sign |
|
|
|
|
} |
|
|
|
|
|