瀏覽代碼

Merge branch 'master' of http://git.ycjcjy.com/default/wechat-conf

胡轶钦 6 年之前
父節點
當前提交
da57919e0b
共有 8 個文件被更改,包括 72 次插入20 次删除
  1. 1
    1
      bootstrap/bootstrap.go
  2. 0
    3
      conf/wechat.conf
  3. 14
    2
      controllers/component.go
  4. 24
    0
      models/wechat.go
  5. 15
    0
      models/wechat/wechat.go
  6. 1
    0
      routers/router.go
  7. 15
    0
      service/wechat/wechat.go
  8. 2
    14
      utils/wechat.go

+ 1
- 1
bootstrap/bootstrap.go 查看文件

@@ -15,7 +15,7 @@ func SystemInit() {
15 15
 	utils.LogInit()
16 16
 
17 17
 	// 第三方平台
18
-	utils.ComponentInit()
18
+	models.ComponentInit()
19 19
 
20 20
 	// 微信系统
21 21
 	models.InitWechat()

+ 0
- 3
conf/wechat.conf 查看文件

@@ -1,3 +0,0 @@
1
-[wechat]
2
-appid = wx9fd33312e78e8d02
3
-aeskey = 41b2994de43d4e3b9dc0f54ee8c5c1bb0050496367e

+ 14
- 2
controllers/component.go 查看文件

@@ -43,12 +43,17 @@ func (c *WechatController) ComponentPush() {
43 43
 	r := c.Ctx.Request
44 44
 	defer r.Body.Close()
45 45
 	con, _ := ioutil.ReadAll(r.Body)
46
-
47
-	EncodingAESKey := "key"
46
+	conf, err := c.wechatServ.GetComponentInfo()
47
+	if err != nil || conf == nil || conf.Appid == "" {
48
+		utils.LogError("读取微信配置文件失败")
49
+		c.ResponseRaw([]byte(""))
50
+	}
51
+	EncodingAESKey := conf.Aeskey
48 52
 
49 53
 	AESKey, err := base64.StdEncoding.DecodeString(EncodingAESKey + "=")
50 54
 	if err != nil {
51 55
 		utils.LogError("DecodeString失败:", err)
56
+		c.ResponseRaw([]byte(""))
52 57
 	}
53 58
 	xp := &core.XMLParse{}
54 59
 	// 解析xml
@@ -68,9 +73,15 @@ func (c *WechatController) ComponentPush() {
68 73
 		utils.LogError("msgxml解析失败:", err)
69 74
 		c.ResponseRaw([]byte(""))
70 75
 	}
76
+	utils.LogError("接收微信推送消息:", msg)
71 77
 	switch msg["InfoType"] {
72 78
 	case INFOTYPE_TICKET:
73 79
 		// 更新ticket
80
+		conf.Ticket = msg["ComponentVerifyTicket"]
81
+		err := c.wechatServ.UpdateComponentTicket(conf)
82
+		if err != nil {
83
+			utils.LogError("修改ticket失败:", err)
84
+		}
74 85
 		utils.RefreshComponentTicket(msg["ComponentVerifyTicket"])
75 86
 		break
76 87
 	case INFOTYPE_AUTHORIZED:
@@ -177,6 +188,7 @@ func (c *WechatController) getReplayMessage(replay *model.TaAutoReply, openid st
177 188
 
178 189
 // GetPreAuthCode 获取预授权码
179 190
 func (c *WechatController) GetPreAuthCode() {
191
+	utils.LogError(utils.Component.GetToken())
180 192
 	code, err := utils.Component.GetPreAuthCode()
181 193
 	if err != nil {
182 194
 		utils.LogError("获取预授权码错误: " + err.Error())

+ 24
- 0
models/wechat.go 查看文件

@@ -5,6 +5,30 @@ import (
5 5
 	"wechat-conf/utils"
6 6
 )
7 7
 
8
+// ComponentInit 初始化第三方
9
+func ComponentInit() {
10
+	var conf = model.SysComponentConf{}
11
+
12
+	_, err := DBEngine.Get(&conf)
13
+	if err != nil {
14
+		utils.LogError("初始化第三方失败:", err)
15
+		return
16
+	}
17
+	utils.LogError("获取第三方信息:", conf)
18
+	if conf.Appid == "" {
19
+		utils.LogError("初始化第三方数据失败,数据为空")
20
+		return
21
+	}
22
+	var cert = map[string]string{
23
+		"appid":                 conf.Appid,
24
+		"aeskey":                conf.Aeskey,
25
+		"secret":                conf.Secret,
26
+		"componentVerifyTicket": conf.Ticket,
27
+	}
28
+
29
+	utils.ComponentInit(cert)
30
+}
31
+
8 32
 // InitWechat 初始化微信
9 33
 func InitWechat() {
10 34
 	var wxconfs []model.SysWechatConf

+ 15
- 0
models/wechat/wechat.go 查看文件

@@ -75,3 +75,18 @@ func (m *WechatDAO) SaveWechatConf(conf model.SysWechatConf) error {
75 75
 	}
76 76
 	return nil
77 77
 }
78
+
79
+// GetComponentInfo 获取第三方conf
80
+func (m *WechatDAO) GetComponentInfo() (*model.SysComponentConf, error) {
81
+	var conf = model.SysComponentConf{}
82
+	_, err := m.db.Get(&conf)
83
+	return &conf, err
84
+}
85
+
86
+// UpdateComponentTicket 更新第三方ticket
87
+func (m *WechatDAO) UpdateComponentTicket(conf *model.SysComponentConf) error {
88
+	_, err := m.db.Cols([]string{
89
+		"ticket",
90
+	}...).Where("appid = ?", conf.Appid).Update(conf)
91
+	return err
92
+}

+ 1
- 0
routers/router.go 查看文件

@@ -67,6 +67,7 @@ func RouteInit() {
67 67
 		beego.NSRouter("/ticket", &controllers.WechatController{}, "get:ComponentPush"),
68 68
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "get:WxReceive"),
69 69
 		beego.NSRouter("/:appid/callback", &controllers.WechatController{}, "post:WxReceive"),
70
+		beego.NSRouter("/authcode", &controllers.WechatController{}, "get:GetPreAuthCode"),
70 71
 	)
71 72
 
72 73
 	beego.AddNamespace(ns)

+ 15
- 0
service/wechat/wechat.go 查看文件

@@ -31,3 +31,18 @@ func (s *WechatServ) SaveWechatConf(conf model.SysWechatConf) error {
31 31
 func (s *WechatServ) UpdateToken(token map[string]string) {
32 32
 	models.UpdateToken(token)
33 33
 }
34
+
35
+// GetComponentInfo 获取第三方信息
36
+func (s *WechatServ) GetComponentInfo() (*model.SysComponentConf, error) {
37
+	conf, err := s.dao.GetComponentInfo()
38
+	if err != nil {
39
+		return nil, err
40
+	}
41
+	return conf, nil
42
+}
43
+
44
+// UpdateComponentTicket 更新微信ticket
45
+func (s *WechatServ) UpdateComponentTicket(conf *model.SysComponentConf) error {
46
+	err := s.dao.UpdateComponentTicket(conf)
47
+	return err
48
+}

+ 2
- 14
utils/wechat.go 查看文件

@@ -1,8 +1,6 @@
1 1
 package utils
2 2
 
3 3
 import (
4
-	"github.com/astaxie/beego/config"
5
-	"github.com/astaxie/beego/logs"
6 4
 	"github.com/kinisky564477/wechat/component"
7 5
 )
8 6
 
@@ -10,19 +8,9 @@ import (
10 8
 var Component *component.ComponentClient
11 9
 
12 10
 // ComponentInit 第三方初始化
13
-func ComponentInit() {
14
-	// 初始化第三方
15
-
16
-	// 读取配置文件
17
-	conf, err := config.NewConfig("ini", GetAppRoot()+"/conf/wechat.conf")
18
-	if err != nil {
19
-		logs.Error("读取微信配置文件失败")
20
-	}
21
-	var cert = map[string]string{
22
-		"component_appid": conf.String("wechat::appid"),
23
-		"aeskey":          conf.String("wechat::aeskey"),
24
-	}
11
+func ComponentInit(cert map[string]string) {
25 12
 	Component = component.NewComponentClient(cert)
13
+	LogError(Component)
26 14
 }
27 15
 
28 16
 // RefreshComponentTicket ticket