From 93c9c39bb9134dee3223b1c646d2a8a7b2e36731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Fri, 12 Aug 2022 22:51:34 +0800 Subject: [PATCH] - update request --- cgi-bin.gettoken.go | 5 +++-- cgi-bin.user.getuserinfo.go | 5 +++-- connect.oauth2.authorize.go | 3 ++- const.go | 2 +- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- request.go | 9 ++++++--- webhook.send.go | 5 +++-- wwopen.sso.qrConnect.go | 3 ++- 9 files changed, 35 insertions(+), 27 deletions(-) diff --git a/cgi-bin.gettoken.go b/cgi-bin.gettoken.go index 1532fe9..4c1b198 100644 --- a/cgi-bin.gettoken.go +++ b/cgi-bin.gettoken.go @@ -1,6 +1,7 @@ package wechatqy import ( + "context" "encoding/json" "fmt" "go.dtapp.net/gorequest" @@ -27,11 +28,11 @@ func newCgiBinGetTokenResult(result CgiBinGetTokenResponse, body []byte, http go // CgiBinGetToken 获取access_token // https://open.work.weixin.qq.com/api/doc/90000/90135/91039 -func (c *Client) CgiBinGetToken(notMustParams ...gorequest.Params) *CgiBinGetTokenResult { +func (c *Client) CgiBinGetToken(ctx context.Context, notMustParams ...gorequest.Params) *CgiBinGetTokenResult { // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(apiUrl+fmt.Sprintf("/cgi-bin/gettoken?corpid=%s&corpsecret=%s", c.GetAppId(), c.GetSecret()), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+fmt.Sprintf("/cgi-bin/gettoken?corpid=%s&corpsecret=%s", c.GetAppId(), c.GetSecret()), params, http.MethodGet) // 定义 var response CgiBinGetTokenResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/cgi-bin.user.getuserinfo.go b/cgi-bin.user.getuserinfo.go index 5c61e8b..2d7b787 100644 --- a/cgi-bin.user.getuserinfo.go +++ b/cgi-bin.user.getuserinfo.go @@ -1,6 +1,7 @@ package wechatqy import ( + "context" "encoding/json" "fmt" "go.dtapp.net/gorequest" @@ -29,11 +30,11 @@ func newCgiBinUserGetUserInfoResult(result CgiBinUserGetUserInfoResponse, body [ // CgiBinUserGetUserInfo 获取访问用户身份 // https://open.work.weixin.qq.com/api/doc/90000/90135/91023 -func (c *Client) CgiBinUserGetUserInfo(code, accessToken string) *CgiBinUserGetUserInfoResult { +func (c *Client) CgiBinUserGetUserInfo(ctx context.Context, code, accessToken string) *CgiBinUserGetUserInfoResult { // 参数 params := gorequest.NewParamsWith() // 请求 - request, err := c.request(apiUrl+fmt.Sprintf("/cgi-bin/user/getuserinfo?access_token=%s&code=%s", accessToken, code), params, http.MethodGet) + request, err := c.request(ctx, apiUrl+fmt.Sprintf("/cgi-bin/user/getuserinfo?access_token=%s&code=%s", accessToken, code), params, http.MethodGet) // 定义 var response CgiBinUserGetUserInfoResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/connect.oauth2.authorize.go b/connect.oauth2.authorize.go index 29ac490..aad13a8 100644 --- a/connect.oauth2.authorize.go +++ b/connect.oauth2.authorize.go @@ -1,11 +1,12 @@ package wechatqy import ( + "context" "fmt" ) // ConnectOauth2Authorize 构造网页授权链接 // https://work.weixin.qq.com/api/doc/90000/90135/91022 -func (c *Client) ConnectOauth2Authorize() string { +func (c *Client) ConnectOauth2Authorize(ctx context.Context) string { return fmt.Sprintf("https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", c.GetAppId(), c.GetRedirectUri()) } diff --git a/const.go b/const.go index 7e367c1..03a1fb0 100644 --- a/const.go +++ b/const.go @@ -8,4 +8,4 @@ const ( logTable = "wechatqy" ) -const Version = "1.0.4" +const Version = "1.0.5" diff --git a/go.mod b/go.mod index 9691a8b..7e2dd5a 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module go.dtapp.net/wechatqy go 1.19 require ( - go.dtapp.net/dorm v1.0.14 - go.dtapp.net/golog v1.0.21 + go.dtapp.net/dorm v1.0.17 + go.dtapp.net/golog v1.0.22 go.dtapp.net/gorequest v1.0.24 gorm.io/gorm v1.23.8 ) @@ -69,14 +69,14 @@ require ( go.dtapp.net/gotime v1.0.5 // indirect go.dtapp.net/goxml v1.0.1 // indirect go.mongodb.org/mongo-driver v1.10.1 // indirect - go.uber.org/atomic v1.9.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect go.uber.org/zap v1.22.0 // indirect golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced // indirect + golang.org/x/net v0.0.0-20220811182439-13a9a731de15 // indirect golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664 // indirect + golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index d760a19..eb587cd 100644 --- a/go.sum +++ b/go.sum @@ -500,14 +500,14 @@ github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= -go.dtapp.net/dorm v1.0.14 h1:HDsaMwKGlKFKt59Y3hPI9aVnSjfXOyjoHw2uoXErKEo= -go.dtapp.net/dorm v1.0.14/go.mod h1:bHG7BmgeLaAlc56myYF63lwZAIuMeWRAqHBb/L84dLM= +go.dtapp.net/dorm v1.0.17 h1:3VQKUl05CDxFg3T1c/M8wYf2I+H+oVGBDh4NCV30nn0= +go.dtapp.net/dorm v1.0.17/go.mod h1:bHG7BmgeLaAlc56myYF63lwZAIuMeWRAqHBb/L84dLM= go.dtapp.net/goip v1.0.24 h1:62k3xt9I/YLUwA5tLp7YC8XPskkswc4RJrvxRRxjwIY= go.dtapp.net/goip v1.0.24/go.mod h1:tps0yoq5kSykLGDb01vuai47hzAQ6nYUPFWLdlQA2Oo= go.dtapp.net/gojson v1.0.1 h1:MHeSGlq1KxzL7rCkm18fhwW4GNORHohdDMmxY5PupKY= go.dtapp.net/gojson v1.0.1/go.mod h1:TkkpTNxHBKxul0e7gC5MrL1K4ICFB9mQ7wHzjBah3/k= -go.dtapp.net/golog v1.0.21 h1:pSGmDz3SJTH7M/NvVLZb+YJd8uNl5g18aORibuaY2JU= -go.dtapp.net/golog v1.0.21/go.mod h1:Wxm2Kh77JN5zFDZ72el9E9c/YkoJnOvHVusB7SqvoC8= +go.dtapp.net/golog v1.0.22 h1:sOJr5f/iLk/6irT/RuwTQSTwvL2DR8SIhzMsKdHo0Ic= +go.dtapp.net/golog v1.0.22/go.mod h1:sbn2WQXmlukcZ4T3Kz9iWOSznL8H3RCkD+1nicZHMfI= go.dtapp.net/gorandom v1.0.1 h1:IWfMClh1ECPvyUjlqD7MwLq4mZdUusD1qAwAdsvEJBs= go.dtapp.net/gorandom v1.0.1/go.mod h1:ZPdgalKpvFV/ATQqR0k4ns/F/IpITAZpx6WkWirr5Y8= go.dtapp.net/gorequest v1.0.24 h1:N2RJOpCXPWbsjfQ8iYJI1EYC2se3I4QhK1l94DSJsuE= @@ -530,8 +530,8 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= @@ -602,8 +602,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced h1:3dYNDff0VT5xj+mbj2XucFst9WKk6PdGOrb9n+SbIvw= -golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20220811182439-13a9a731de15 h1:cik0bxZUSJVDyaHf1hZPSDsU8SZHGQZQMeueXCE7yBQ= +golang.org/x/net v0.0.0-20220811182439-13a9a731de15/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -648,8 +648,8 @@ golang.org/x/sys v0.0.0-20210902050250-f475640dd07b/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664 h1:v1W7bwXHsnLLloWYTVEdvGvA7BHMeBYsPcF0GLDxIRs= -golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/request.go b/request.go index 6d20fd8..ebd1c5b 100644 --- a/request.go +++ b/request.go @@ -1,8 +1,11 @@ package wechatqy -import "go.dtapp.net/gorequest" +import ( + "context" + "go.dtapp.net/gorequest" +) -func (c *Client) request(url string, params map[string]interface{}, method string) (gorequest.Response, error) { +func (c *Client) request(ctx context.Context, url string, params map[string]interface{}, method string) (gorequest.Response, error) { // 创建请求 client := c.client @@ -26,7 +29,7 @@ func (c *Client) request(url string, params map[string]interface{}, method strin // 日志 if c.config.PgsqlDb != nil { - go c.log.GormMiddleware(request, Version) + go c.log.GormMiddleware(ctx, request, Version) } if c.config.MongoDb != nil { go c.log.MongoMiddleware(request) diff --git a/webhook.send.go b/webhook.send.go index 4ab322c..d401754 100644 --- a/webhook.send.go +++ b/webhook.send.go @@ -1,6 +1,7 @@ package wechatqy import ( + "context" "encoding/json" "fmt" "go.dtapp.net/gorequest" @@ -28,11 +29,11 @@ func newWebhookSendResult(result WebhookSendResponse, body []byte, http goreques // WebhookSend 发送应用消息 // https://developer.work.weixin.qq.com/document/path/90372 -func (c *Client) WebhookSend(notMustParams ...gorequest.Params) *WebhookSendResult { +func (c *Client) WebhookSend(ctx context.Context, notMustParams ...gorequest.Params) *WebhookSendResult { // 参数 params := gorequest.NewParamsWith(notMustParams...) // 请求 - request, err := c.request(apiUrl+fmt.Sprintf("/cgi-bin/webhook/send?key=%s&type=%s", c.GetKey(), "text"), params, http.MethodPost) + request, err := c.request(ctx, apiUrl+fmt.Sprintf("/cgi-bin/webhook/send?key=%s&type=%s", c.GetKey(), "text"), params, http.MethodPost) // 定义 var response WebhookSendResponse err = json.Unmarshal(request.ResponseBody, &response) diff --git a/wwopen.sso.qrConnect.go b/wwopen.sso.qrConnect.go index dbfd307..404729e 100644 --- a/wwopen.sso.qrConnect.go +++ b/wwopen.sso.qrConnect.go @@ -1,11 +1,12 @@ package wechatqy import ( + "context" "fmt" ) // WwOpenSsoQrConnect 构造独立窗口登录二维码 // https://open.work.weixin.qq.com/api/doc/90000/90135/91019 -func (c *Client) WwOpenSsoQrConnect() string { +func (c *Client) WwOpenSsoQrConnect(ctx context.Context) string { return fmt.Sprintf("https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=%s&agentid=%d&redirect_uri=%s&state=STATE&lang=zh", c.GetAppId(), c.GetAgentId(), c.GetRedirectUri()) }