|
@@ -46,7 +46,7 @@ func (c *WechatController) ComponentPush() {
|
46
|
46
|
r := c.Ctx.Request
|
47
|
47
|
defer r.Body.Close()
|
48
|
48
|
con, _ := ioutil.ReadAll(r.Body)
|
49
|
|
- beego.Error(string(con))
|
|
49
|
+ utils.LogError("推送消息:", string(con))
|
50
|
50
|
// 解析xml
|
51
|
51
|
xp := &core.XMLParse{}
|
52
|
52
|
resMsg, err := xp.Parse(string(con))
|
|
@@ -54,15 +54,12 @@ func (c *WechatController) ComponentPush() {
|
54
|
54
|
utils.LogError("xml解析失败:", err)
|
55
|
55
|
c.ResponseRaw([]byte("success"))
|
56
|
56
|
}
|
57
|
|
- utils.LogError("解析xml成功:", resMsg)
|
58
|
57
|
encrypt := resMsg["Encrypt"]
|
59
|
|
- beego.Error(encrypt)
|
60
|
58
|
conf, err := c.wechatServ.GetComponentInfo()
|
61
|
59
|
if err != nil || conf == nil || conf.Appid == "" {
|
62
|
60
|
utils.LogError("读取微信配置文件失败")
|
63
|
61
|
c.ResponseRaw([]byte("success"))
|
64
|
62
|
}
|
65
|
|
- beego.Error(conf.Aeskey)
|
66
|
63
|
EncodingAESKey := conf.Aeskey
|
67
|
64
|
|
68
|
65
|
AESKey, err := base64.StdEncoding.DecodeString(EncodingAESKey + "=")
|
|
@@ -70,10 +67,9 @@ func (c *WechatController) ComponentPush() {
|
70
|
67
|
utils.LogError("DecodeString失败:", err)
|
71
|
68
|
c.ResponseRaw([]byte("success"))
|
72
|
69
|
}
|
73
|
|
- beego.Error(AESKey)
|
74
|
70
|
EncryptVal, err := base64.StdEncoding.DecodeString(encrypt)
|
75
|
71
|
if err != nil {
|
76
|
|
- utils.LogError("密文解析失败:", err)
|
|
72
|
+ utils.LogError("密文base64解析", err)
|
77
|
73
|
c.ResponseRaw([]byte("success"))
|
78
|
74
|
}
|
79
|
75
|
msgbyte, err := utils.AesDecrypt(EncryptVal, AESKey)
|
|
@@ -81,15 +77,14 @@ func (c *WechatController) ComponentPush() {
|
81
|
77
|
utils.LogError("解密失败:", err)
|
82
|
78
|
c.ResponseRaw([]byte("success"))
|
83
|
79
|
}
|
84
|
|
- beego.Error("解密数据:", string(msgbyte))
|
85
|
|
- beego.Error("解密成功")
|
|
80
|
+ utils.LogError("解密成功")
|
86
|
81
|
// 解析xml
|
87
|
82
|
msg, err := xp.Parse(string(msgbyte))
|
88
|
83
|
if err != nil {
|
89
|
84
|
utils.LogError("xml解析失败:", err)
|
90
|
85
|
c.ResponseRaw([]byte("success"))
|
91
|
86
|
}
|
92
|
|
- beego.Error("解析xml成功:", msg)
|
|
87
|
+ utils.LogError("xml解析成功:", msg)
|
93
|
88
|
switch msg["InfoType"] {
|
94
|
89
|
case INFOTYPE_TICKET:
|
95
|
90
|
// 更新ticket
|
|
@@ -106,7 +101,13 @@ func (c *WechatController) ComponentPush() {
|
106
|
101
|
"appid": msg["AuthorizerAppid"],
|
107
|
102
|
"authorization_code": msg["AuthorizationCode"],
|
108
|
103
|
}
|
|
104
|
+ beego.Error("授权成功参数:", cert)
|
109
|
105
|
wxclient := utils.WechatInit(cert, c.wechatServ.UpdateToken)
|
|
106
|
+ if wxclient == nil {
|
|
107
|
+ utils.LogError("获取wxclient失败")
|
|
108
|
+ c.ResponseRaw([]byte("success"))
|
|
109
|
+ }
|
|
110
|
+ beego.Error(wxclient)
|
110
|
111
|
utils.AppendWxClient(wxclient)
|
111
|
112
|
// 插入数据库
|
112
|
113
|
mjson, _ := json.Marshal(msg)
|
|
@@ -115,6 +116,7 @@ func (c *WechatController) ComponentPush() {
|
115
|
116
|
AuthorizationCode: msg["AuthorizationCode"],
|
116
|
117
|
AuthorizationInfo: string(mjson),
|
117
|
118
|
}
|
|
119
|
+
|
118
|
120
|
err := c.wechatServ.SaveWechatConf(conf)
|
119
|
121
|
if err != nil {
|
120
|
122
|
utils.LogError("保存微信授权信息失败:", err)
|