mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-12 00:32:26 +08:00
18
credential/default_access_token_test.go
Normal file
18
credential/default_access_token_test.go
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
package credential
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"gopkg.in/h2non/gock.v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestGetTicketFromServer(t *testing.T) {
|
||||||
|
defer gock.Off()
|
||||||
|
gock.New(getTicketURL).Reply(200).JSON(&ResTicket{Ticket: "mock-ticket", ExpiresIn: 10})
|
||||||
|
ticket, err := GetTicketFromServer("arg-ak")
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Equal(t, int64(0), ticket.ErrCode)
|
||||||
|
assert.Equal(t, "mock-ticket", ticket.Ticket, "they should be equal")
|
||||||
|
assert.Equal(t, int64(10), ticket.ExpiresIn, "they should be equal")
|
||||||
|
}
|
||||||
2
go.mod
2
go.mod
@@ -8,5 +8,7 @@ require (
|
|||||||
github.com/gomodule/redigo v1.8.1
|
github.com/gomodule/redigo v1.8.1
|
||||||
github.com/sirupsen/logrus v1.6.0
|
github.com/sirupsen/logrus v1.6.0
|
||||||
github.com/spf13/cast v1.3.1
|
github.com/spf13/cast v1.3.1
|
||||||
|
github.com/stretchr/testify v1.5.1
|
||||||
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37
|
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37
|
||||||
|
gopkg.in/h2non/gock.v1 v1.0.15
|
||||||
)
|
)
|
||||||
|
|||||||
5
go.sum
5
go.sum
@@ -7,8 +7,11 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
|
|||||||
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
|
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
|
||||||
github.com/gomodule/redigo v1.8.1 h1:Abmo0bI7Xf0IhdIPc7HZQzZcShdnmxeoVuDDtIQp8N8=
|
github.com/gomodule/redigo v1.8.1 h1:Abmo0bI7Xf0IhdIPc7HZQzZcShdnmxeoVuDDtIQp8N8=
|
||||||
github.com/gomodule/redigo v1.8.1/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
|
github.com/gomodule/redigo v1.8.1/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
|
||||||
|
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
|
||||||
|
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
|
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
|
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
@@ -29,5 +32,7 @@ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
|||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/h2non/gock.v1 v1.0.15 h1:SzLqcIlb/fDfg7UvukMpNcWsu7sI5tWwL+KCATZqks0=
|
||||||
|
gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE=
|
||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ type Server struct {
|
|||||||
|
|
||||||
messageHandler func(message.MixMessage) *message.Reply
|
messageHandler func(message.MixMessage) *message.Reply
|
||||||
|
|
||||||
requestRawXMLMsg []byte
|
RequestRawXMLMsg []byte
|
||||||
requestMsg message.MixMessage
|
RequestMsg message.MixMessage
|
||||||
responseRawXMLMsg []byte
|
ResponseRawXMLMsg []byte
|
||||||
responseMsg interface{}
|
ResponseMsg interface{}
|
||||||
|
|
||||||
isSafeMode bool
|
isSafeMode bool
|
||||||
random []byte
|
random []byte
|
||||||
@@ -71,7 +71,7 @@ func (srv *Server) Serve() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//debug print request msg
|
//debug print request msg
|
||||||
log.Debugf("request msg =%s", string(srv.requestRawXMLMsg))
|
log.Debugf("request msg =%s", string(srv.RequestRawXMLMsg))
|
||||||
|
|
||||||
return srv.buildResponse(response)
|
return srv.buildResponse(response)
|
||||||
}
|
}
|
||||||
@@ -109,7 +109,7 @@ func (srv *Server) handleRequest() (reply *message.Reply, err error) {
|
|||||||
if !success {
|
if !success {
|
||||||
err = errors.New("消息类型转换失败")
|
err = errors.New("消息类型转换失败")
|
||||||
}
|
}
|
||||||
srv.requestMsg = mixMessage
|
srv.RequestMsg = mixMessage
|
||||||
reply = srv.messageHandler(mixMessage)
|
reply = srv.messageHandler(mixMessage)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -155,7 +155,7 @@ func (srv *Server) getMessage() (interface{}, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
srv.requestRawXMLMsg = rawXMLMsgBytes
|
srv.RequestRawXMLMsg = rawXMLMsgBytes
|
||||||
|
|
||||||
return srv.parseRequestMessage(rawXMLMsgBytes)
|
return srv.parseRequestMessage(rawXMLMsgBytes)
|
||||||
}
|
}
|
||||||
@@ -204,10 +204,10 @@ func (srv *Server) buildResponse(reply *message.Reply) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
params := make([]reflect.Value, 1)
|
params := make([]reflect.Value, 1)
|
||||||
params[0] = reflect.ValueOf(srv.requestMsg.FromUserName)
|
params[0] = reflect.ValueOf(srv.RequestMsg.FromUserName)
|
||||||
value.MethodByName("SetToUserName").Call(params)
|
value.MethodByName("SetToUserName").Call(params)
|
||||||
|
|
||||||
params[0] = reflect.ValueOf(srv.requestMsg.ToUserName)
|
params[0] = reflect.ValueOf(srv.RequestMsg.ToUserName)
|
||||||
value.MethodByName("SetFromUserName").Call(params)
|
value.MethodByName("SetFromUserName").Call(params)
|
||||||
|
|
||||||
params[0] = reflect.ValueOf(msgType)
|
params[0] = reflect.ValueOf(msgType)
|
||||||
@@ -216,19 +216,19 @@ func (srv *Server) buildResponse(reply *message.Reply) (err error) {
|
|||||||
params[0] = reflect.ValueOf(util.GetCurrTs())
|
params[0] = reflect.ValueOf(util.GetCurrTs())
|
||||||
value.MethodByName("SetCreateTime").Call(params)
|
value.MethodByName("SetCreateTime").Call(params)
|
||||||
|
|
||||||
srv.responseMsg = msgData
|
srv.ResponseMsg = msgData
|
||||||
srv.responseRawXMLMsg, err = xml.Marshal(msgData)
|
srv.ResponseRawXMLMsg, err = xml.Marshal(msgData)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//Send 将自定义的消息发送
|
//Send 将自定义的消息发送
|
||||||
func (srv *Server) Send() (err error) {
|
func (srv *Server) Send() (err error) {
|
||||||
replyMsg := srv.responseMsg
|
replyMsg := srv.ResponseMsg
|
||||||
log.Debugf("response msg =%+v", replyMsg)
|
log.Debugf("response msg =%+v", replyMsg)
|
||||||
if srv.isSafeMode {
|
if srv.isSafeMode {
|
||||||
//安全模式下对消息进行加密
|
//安全模式下对消息进行加密
|
||||||
var encryptedMsg []byte
|
var encryptedMsg []byte
|
||||||
encryptedMsg, err = util.EncryptMsg(srv.random, srv.responseRawXMLMsg, srv.AppID, srv.EncodingAESKey)
|
encryptedMsg, err = util.EncryptMsg(srv.random, srv.ResponseRawXMLMsg, srv.AppID, srv.EncodingAESKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user