Kaynağa Gözat

Merge pull request #1 from silenceper/master

update master
Airy 7 yıl önce
ebeveyn
işleme
e759c49211
7 değiştirilmiş dosya ile 22 ekleme ve 15 silme
  1. 1 0
      .travis.yml
  2. 7 7
      cache/redis.go
  3. 3 0
      context/access_token.go
  4. 3 3
      js/js.go
  5. 4 0
      message/message.go
  6. 2 3
      oauth/oauth.go
  7. 2 2
      template/template.go

+ 1 - 0
.travis.yml

@@ -1,6 +1,7 @@
 language: go
 
 go:
+  - 1.9
   - 1.8
   - 1.7
   - 1.6

+ 7 - 7
cache/redis.go

@@ -14,12 +14,12 @@ type Redis struct {
 
 //RedisOpts redis 连接属性
 type RedisOpts struct {
-	Host        string
-	Password    string
-	Database    int
-	MaxIdle     int
-	MaxActive   int
-	IdleTimeout time.Duration //second
+	Host        string `yml:"host" json:"host"`
+	Password    string `yml:"password" json:"password"`
+	Database    int    `yml:"database" json:"database"`
+	MaxIdle     int    `yml:"max_idle" json:"max_idle"`
+	MaxActive   int    `yml:"max_active" json:"max_active"`
+	IdleTimeout int32  `yml:"idle_timeout" json:"idle_timeout"` //second
 }
 
 //NewRedis 实例化
@@ -27,7 +27,7 @@ func NewRedis(opts *RedisOpts) *Redis {
 	pool := &redis.Pool{
 		MaxActive:   opts.MaxActive,
 		MaxIdle:     opts.MaxIdle,
-		IdleTimeout: opts.IdleTimeout,
+		IdleTimeout: time.Second * time.Duration(opts.IdleTimeout),
 		Dial: func() (redis.Conn, error) {
 			return redis.Dial("tcp", opts.Host,
 				redis.DialDatabase(opts.Database),

+ 3 - 0
context/access_token.go

@@ -55,6 +55,9 @@ func (ctx *Context) GetAccessTokenFromServer() (resAccessToken ResAccessToken, e
 	url := fmt.Sprintf("%s?grant_type=client_credential&appid=%s&secret=%s", AccessTokenURL, ctx.AppID, ctx.AppSecret)
 	var body []byte
 	body, err = util.HTTPGet(url)
+	if err != nil {
+		return
+	}
 	err = json.Unmarshal(body, &resAccessToken)
 	if err != nil {
 		return

+ 3 - 3
js/js.go

@@ -44,7 +44,7 @@ func NewJs(context *context.Context) *Js {
 func (js *Js) GetConfig(uri string) (config *Config, err error) {
 	config = new(Config)
 	var ticketStr string
-	ticketStr, err = js.getTicket()
+	ticketStr, err = js.GetTicket()
 	if err != nil {
 		return
 	}
@@ -61,8 +61,8 @@ func (js *Js) GetConfig(uri string) (config *Config, err error) {
 	return
 }
 
-//getTicket 获取jsapi_tocket全局缓存
-func (js *Js) getTicket() (ticketStr string, err error) {
+//GetTicket 获取jsapi_ticket
+func (js *Js) GetTicket() (ticketStr string, err error) {
 	js.GetJsAPITicketLock().Lock()
 	defer js.GetJsAPITicketLock().Unlock()
 

+ 4 - 0
message/message.go

@@ -58,6 +58,8 @@ const (
 	EventPicWeixin = "pic_weixin"
 	//EventLocationSelect 弹出地理位置选择器的事件推送
 	EventLocationSelect = "location_select"
+	//EventTemplateSendJobFinish 发送模板消息推送通知
+	EventTemplateSendJobFinish = "TEMPLATESENDJOBFINISH"
 )
 
 //MixMessage 存放所有微信发送过来的消息和事件
@@ -87,6 +89,8 @@ type MixMessage struct {
 	Longitude string    `xml:"Longitude"`
 	Precision string    `xml:"Precision"`
 	MenuID    string    `xml:"MenuId"`
+	Status    string    `xml:"Status"`
+	SessionFrom string  `xml:"SessionFrom"`
 
 	ScanCodeInfo struct {
 		ScanType   string `xml:"ScanType"`

+ 2 - 3
oauth/oauth.go

@@ -38,13 +38,12 @@ func (oauth *Oauth) GetRedirectURL(redirectURI, scope, state string) (string, er
 }
 
 //Redirect 跳转到网页授权
-func (oauth *Oauth) Redirect(writer http.ResponseWriter, redirectURI, scope, state string) error {
+func (oauth *Oauth) Redirect(writer http.ResponseWriter, req *http.Request, redirectURI, scope, state string) error {
 	location, err := oauth.GetRedirectURL(redirectURI, scope, state)
 	if err != nil {
 		return err
 	}
-	//location 为完整地址,所以不需要request
-	http.Redirect(writer, nil, location, 302)
+	http.Redirect(writer, req, location, 302)
 	return nil
 }
 

+ 2 - 2
template/template.go

@@ -47,11 +47,11 @@ type DataItem struct {
 type resTemplateSend struct {
 	util.CommonError
 
-	MsgID int32 `json:"msgid"`
+	MsgID int64 `json:"msgid"`
 }
 
 //Send 发送模板消息
-func (tpl *Template) Send(msg *Message) (msgID int32, err error) {
+func (tpl *Template) Send(msg *Message) (msgID int64, err error) {
 	var accessToken string
 	accessToken, err = tpl.GetAccessToken()
 	if err != nil {