adjust
This commit is contained in:
parent
934c2e37e9
commit
73bd3d8f90
@ -2,5 +2,5 @@
|
|||||||
"gameapi_url": "https://game2006api-test.kingsome.cn",
|
"gameapi_url": "https://game2006api-test.kingsome.cn",
|
||||||
"wx_url": "api.weixin.qq.com|api2.weixin.qq.com|sh.api.weixin.qq.com|sz.api.weixin.qq.com|hk.api.weixin.qq.com",
|
"wx_url": "api.weixin.qq.com|api2.weixin.qq.com|sh.api.weixin.qq.com|sz.api.weixin.qq.com|hk.api.weixin.qq.com",
|
||||||
"wx_notify_token": "dV93f4FwSGMwkYcvsRHD8egdW5egPMhF",
|
"wx_notify_token": "dV93f4FwSGMwkYcvsRHD8egdW5egPMhF",
|
||||||
"wx_notify_encoding_aes_key": "H60uFIXjyd431hLVhlsKyus3U28RVIzWncey424DqpY"
|
"wx_notify_encoding_aes_key": "t7zDjlqSow7OY4s61q8wp4EabjWnUtTSi5w0KM48O1K"
|
||||||
}
|
}
|
||||||
|
@ -74,30 +74,9 @@ func (this *MainServiceApi) WxTNotify(c *gin.Context) {
|
|||||||
func (this *MainServiceApi) WxNotifyPurchase(c *gin.Context) {
|
func (this *MainServiceApi) WxNotifyPurchase(c *gin.Context) {
|
||||||
f5.GetSysLog().Debug("wx notify purchase:%s", c.Request.URL.RawQuery)
|
f5.GetSysLog().Debug("wx notify purchase:%s", c.Request.URL.RawQuery)
|
||||||
|
|
||||||
// signature := c.Query("signature")
|
|
||||||
timestamp := c.Query("timestamp")
|
timestamp := c.Query("timestamp")
|
||||||
nonce := c.Query("nonce")
|
nonce := c.Query("nonce")
|
||||||
|
|
||||||
// if len(signature) > 0 || len(timestamp) > 0 || len(nonce) > 0 {
|
|
||||||
// strs := []string{mt.Table.Config.GetWxNotifyToken(), timestamp, nonce}
|
|
||||||
// sort.Strings(strs)
|
|
||||||
// sb := strings.Builder{}
|
|
||||||
// sb.WriteString(strs[0])
|
|
||||||
// sb.WriteString(strs[1])
|
|
||||||
// sb.WriteString(strs[2])
|
|
||||||
// m := sha1.New()
|
|
||||||
// io.WriteString(m, sb.String())
|
|
||||||
// sign := string(hex.EncodeToString(m.Sum(nil)))
|
|
||||||
|
|
||||||
// f5.GetSysLog().Debug("wx sign:%s, %s", sign, signature)
|
|
||||||
// if sign != signature {
|
|
||||||
// c.String(200, "wrong")
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// c.String(200, c.Query("echostr"))
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
|
|
||||||
rspObj := struct {
|
rspObj := struct {
|
||||||
ErrorCode int32 `json:"ErrCode"`
|
ErrorCode int32 `json:"ErrCode"`
|
||||||
ErrMsg string `json:"ErrMsg"`
|
ErrMsg string `json:"ErrMsg"`
|
||||||
@ -121,7 +100,7 @@ func (this *MainServiceApi) WxNotifyPurchase(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
smsg, appid := service.Wxpay.DecryptMsg(msg_signature, timestamp, nonce, postObj.Encrypt)
|
smsg, appid := service.Wxpay.DecryptMsg(msg_signature, timestamp, nonce, postObj.Encrypt)
|
||||||
if smsg == nil || appid == nil || len(smsg) == 0 || len(appid) == 0 {
|
if len(smsg) == 0 || len(appid) == 0 {
|
||||||
rspObj.ErrorCode = 402
|
rspObj.ErrorCode = 402
|
||||||
rspObj.ErrMsg = "decrypt data error"
|
rspObj.ErrMsg = "decrypt data error"
|
||||||
c.JSON(200, rspObj)
|
c.JSON(200, rspObj)
|
||||||
|
@ -49,7 +49,7 @@ func (wp *wxpay) DecryptMsg(sMsgSignature string, sTimeStamp string, sNonce stri
|
|||||||
|
|
||||||
//4.decode aes
|
//4.decode aes
|
||||||
sAesKey := wp.GenAesKeyFromEncodingKey(mt.Table.Config.GetWxNotifyEncodingAesKey())
|
sAesKey := wp.GenAesKeyFromEncodingKey(mt.Table.Config.GetWxNotifyEncodingAesKey())
|
||||||
if sAesKey == "" {
|
if len(sAesKey) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
sNoEncryptData := wp.AES_CBCDecrypt(sAesData, sAesKey)
|
sNoEncryptData := wp.AES_CBCDecrypt(sAesData, sAesKey)
|
||||||
@ -61,7 +61,7 @@ func (wp *wxpay) DecryptMsg(sMsgSignature string, sTimeStamp string, sNonce stri
|
|||||||
netlenbyte := sNoEncryptData[constant.WX_RANDENCRYPT_STRLEN : constant.WX_RANDENCRYPT_STRLEN+constant.WX_KMSG_LEN]
|
netlenbyte := sNoEncryptData[constant.WX_RANDENCRYPT_STRLEN : constant.WX_RANDENCRYPT_STRLEN+constant.WX_KMSG_LEN]
|
||||||
buf := bytes.NewReader(netlenbyte)
|
buf := bytes.NewReader(netlenbyte)
|
||||||
iMsgLen := int(0) //ntohl(iNetLen);
|
iMsgLen := int(0) //ntohl(iNetLen);
|
||||||
binary.Read(buf, binary.BigEndian, &iMsgLen)
|
binary.Read(buf, binary.LittleEndian, &iMsgLen)
|
||||||
if len(sNoEncryptData) <= constant.WX_RANDENCRYPT_STRLEN+constant.WX_KMSG_LEN+iMsgLen {
|
if len(sNoEncryptData) <= constant.WX_RANDENCRYPT_STRLEN+constant.WX_KMSG_LEN+iMsgLen {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -105,26 +105,26 @@ func (wp *wxpay) ComputeSignature(sToken string, sTimeStamp string, sNonce strin
|
|||||||
return hex.EncodeToString(sha1crypto.Sum(nil))
|
return hex.EncodeToString(sha1crypto.Sum(nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (wp *wxpay) GenAesKeyFromEncodingKey(sEncodingKey string) string {
|
func (wp *wxpay) GenAesKeyFromEncodingKey(sEncodingKey string) (aeskey []byte) {
|
||||||
if len(sEncodingKey) != len(mt.Table.Config.GetWxNotifyEncodingAesKey()) {
|
if len(sEncodingKey) != len(mt.Table.Config.GetWxNotifyEncodingAesKey()) {
|
||||||
return ""
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
sBase64 := sEncodingKey + "="
|
sBase64 := sEncodingKey + "="
|
||||||
data, err := base64.StdEncoding.DecodeString(sBase64)
|
data, err := base64.StdEncoding.DecodeString(sBase64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ""
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
return string(data)
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
func (wp *wxpay) AES_CBCDecrypt(sSource []byte, sKey string) []byte {
|
func (wp *wxpay) AES_CBCDecrypt(sSource []byte, sKey []byte) []byte {
|
||||||
if len(sSource) < constant.WX_AESKEY_SIZE || len(sSource)%constant.WX_AESKEY_SIZE != 0 {
|
if len(sSource) < constant.WX_AESKEY_SIZE || len(sSource)%constant.WX_AESKEY_SIZE != 0 {
|
||||||
return []byte{}
|
return []byte{}
|
||||||
}
|
}
|
||||||
|
|
||||||
key := []byte(sKey)
|
key := sKey
|
||||||
if len(sKey) > constant.WX_AESKEY_SIZE {
|
if len(sKey) > constant.WX_AESKEY_SIZE {
|
||||||
key = key[0:constant.WX_AESKEY_SIZE]
|
key = key[0:constant.WX_AESKEY_SIZE]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user