Browse Source

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

胡轶钦 6 years ago
parent
commit
e94f3719ee
3 changed files with 29 additions and 5 deletions
  1. 23
    5
      controllers/component.go
  2. 2
    0
      controllers/wechatimg/wechatimt.go
  3. 4
    0
      service/wechat/wechat.go

+ 23
- 5
controllers/component.go View File

1
+// 微信全网接入测试
2
+// https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318611&token=&lang=zh_CN
3
+
1
 package controllers
4
 package controllers
2
 
5
 
3
 import (
6
 import (
4
 	"bytes"
7
 	"bytes"
5
 	"encoding/base64"
8
 	"encoding/base64"
6
 	"encoding/json"
9
 	"encoding/json"
10
+	"errors"
7
 	"net/http"
11
 	"net/http"
8
 	"strings"
12
 	"strings"
9
 	"wechat-conf/models"
13
 	"wechat-conf/models"
40
 	WX_OFFICE_TEST_USERNAME = "gh_3c884a361561"
44
 	WX_OFFICE_TEST_USERNAME = "gh_3c884a361561"
41
 )
45
 )
42
 
46
 
47
+const (
48
+	RESPONSE_CUSTOM_MESSAGE = "response-custom-message"
49
+)
50
+
43
 var nilData = []byte("success")
51
 var nilData = []byte("success")
44
 
52
 
45
 // Constructor 初始化 Controller
53
 // Constructor 初始化 Controller
220
 
228
 
221
 	// 获取返回内容
229
 	// 获取返回内容
222
 	replyMessage, err := c.getReplayMessage(receiveData, wechat)
230
 	replyMessage, err := c.getReplayMessage(receiveData, wechat)
231
+	if err != nil && err.Error() == RESPONSE_CUSTOM_MESSAGE {
232
+		// 微信测试用例会跑到这边
233
+		// 模拟粉丝发送消息, 并立即调用客户接口, 反馈固定的字串
234
+		go wechat.SendCustomText(receiveData["FromUserName"], wechat.GetAuthCode()+"_from_api")
235
+
236
+		c.ResponseRaw(nil)
237
+	}
238
+
223
 	if err != nil || replyMessage == nil || len(replyMessage) == 0 {
239
 	if err != nil || replyMessage == nil || len(replyMessage) == 0 {
224
 		c.ResponseRaw(nilData)
240
 		c.ResponseRaw(nilData)
225
 	}
241
 	}
294
 // encryptReceiveMessage 加密需要发送的信息
310
 // encryptReceiveMessage 加密需要发送的信息
295
 func (c *WechatController) encryptMessage(message []byte, aesKey, token, appID string, wechat *component.WxClient) ([]byte, error) {
311
 func (c *WechatController) encryptMessage(message []byte, aesKey, token, appID string, wechat *component.WxClient) ([]byte, error) {
296
 	cipher, err := core.NewCipher(token, aesKey, appID)
312
 	cipher, err := core.NewCipher(token, aesKey, appID)
297
-	// cipher, err := core.NewCipher("pamtest", "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG", "wxb11529c136998cb6")
298
 	if err != nil {
313
 	if err != nil {
299
 		utils.LogError("NewCipher 失败: " + err.Error())
314
 		utils.LogError("NewCipher 失败: " + err.Error())
300
 		return nil, err
315
 		return nil, err
337
 				// 发送 query_auth_code , 返回空, 并立即调用客服接口
352
 				// 发送 query_auth_code , 返回空, 并立即调用客服接口
338
 			} else if strings.Index(content, "QUERY_AUTH_CODE") > -1 {
353
 			} else if strings.Index(content, "QUERY_AUTH_CODE") > -1 {
339
 				replay = nil
354
 				replay = nil
355
+				return nil, errors.New(RESPONSE_CUSTOM_MESSAGE)
340
 			}
356
 			}
341
 			break
357
 			break
342
 		}
358
 		}
369
 					return
385
 					return
370
 				}
386
 				}
371
 
387
 
372
-				replay = &model.TaAutoReply{
373
-					MessageType:      models.MESSAGE_TYPE_PARAGRAPH,
374
-					MessageParagraph: replyText,
375
-					IsUse:            models.AUTOREPLY_IS_USE_ON,
388
+				if replyText != "" {
389
+					replay = &model.TaAutoReply{
390
+						MessageType:      models.MESSAGE_TYPE_PARAGRAPH,
391
+						MessageParagraph: replyText,
392
+						IsUse:            models.AUTOREPLY_IS_USE_ON,
393
+					}
376
 				}
394
 				}
377
 			}
395
 			}
378
 			break
396
 			break

+ 2
- 0
controllers/wechatimg/wechatimt.go View File

143
 	defer file.Close()
143
 	defer file.Close()
144
 
144
 
145
 	imgurl := "./upload/" + head.Filename
145
 	imgurl := "./upload/" + head.Filename
146
+	defer os.Remove(imgurl)
147
+
146
 	//创建文件
148
 	//创建文件
147
 	fW, err := os.Create(imgurl)
149
 	fW, err := os.Create(imgurl)
148
 	if err != nil {
150
 	if err != nil {

+ 4
- 0
service/wechat/wechat.go View File

104
 		return "", err
104
 		return "", err
105
 	}
105
 	}
106
 
106
 
107
+	if res == nil {
108
+		return "", nil
109
+	}
110
+
107
 	return res.Value, nil
111
 	return res.Value, nil
108
 }
112
 }