diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 43a6653cd..f1f067126 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -10,7 +10,7 @@ jobs: golangci: strategy: matrix: - go-version: [1.15.x,1.16.x] + go-version: [1.15.x,1.16.x,1.17.x] name: golangci-lint runs-on: ubuntu-latest steps: @@ -38,7 +38,7 @@ jobs: # strategy set strategy: matrix: - go: ["1.14","1.15", "1.16", "1.17", "1.18"] + go: ["1.15", "1.16", "1.17", "1.18"] steps: - uses: actions/checkout@v2 diff --git a/.golangci.yml b/.golangci.yml index 933f6eae7..fafdac196 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -36,8 +36,13 @@ linters: - whitespace issues: - # Excluding configuration per-path, per-linter, per-text and per-source + include: + - EXC0002 # disable excluding of issues about comments from golint exclude-rules: + - linters: + - stylecheck + text: "ST1000:" + # Excluding configuration per-path, per-linter, per-text and per-source - path: _test\.go linters: - gomnd @@ -52,10 +57,10 @@ linters-settings: lines: 66 statements: 40 -issues: - include: - - EXC0002 # disable excluding of issues about comments from golint - exclude-rules: - - linters: - - stylecheck - text: "ST1000:" +#issues: +# include: +# - EXC0002 # disable excluding of issues about comments from golint +# exclude-rules: +# - linters: +# - stylecheck +# text: "ST1000:" diff --git a/README.md b/README.md index 5ddbdd379..c3b3a4cba 100644 --- a/README.md +++ b/README.md @@ -25,35 +25,35 @@ import "github.com/silenceper/wechat/v2" 以下是一个微信公众号处理消息接收以及回复的例子: ```go -//使用memcache保存access_token,也可选择redis或自定义cache +// 使用memcache保存access_token,也可选择redis或自定义cache wc := wechat.NewWechat() memory := cache.NewMemory() cfg := &offConfig.Config{ AppID: "xxx", AppSecret: "xxx", Token: "xxx", - //EncodingAESKey: "xxxx", + // EncodingAESKey: "xxxx", Cache: memory, } officialAccount := wc.GetOfficialAccount(cfg) // 传入request和responseWriter server := officialAccount.GetServer(req, rw) -//设置接收消息的处理方法 +// 设置接收消息的处理方法 server.SetMessageHandler(func(msg *message.MixMessage) *message.Reply { - //回复消息:演示回复用户发送的消息 + // 回复消息:演示回复用户发送的消息 text := message.NewText(msg.Content) return &message.Reply{MsgType: message.MsgTypeText, MsgData: text} }) -//处理消息接收以及回复 +// 处理消息接收以及回复 err := server.Serve() if err != nil { fmt.Println(err) return } -//发送回复的消息 +// 发送回复的消息 server.Send() ``` diff --git a/go.mod b/go.mod index b22b780b6..91bbdecdb 100644 --- a/go.mod +++ b/go.mod @@ -1,15 +1,15 @@ module github.com/silenceper/wechat/v2 -go 1.14 +go 1.15 require ( github.com/bradfitz/gomemcache v0.0.0-20220106215444-fb4bf637b56d github.com/fatih/structs v1.1.0 - github.com/go-redis/redis/v8 v8.11.6-0.20220405070650-99c79f7041fc - github.com/sirupsen/logrus v1.8.1 + github.com/go-redis/redis/v8 v8.11.5 + github.com/sirupsen/logrus v1.9.0 github.com/spf13/cast v1.4.1 github.com/stretchr/testify v1.7.1 github.com/tidwall/gjson v1.14.1 - golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 + golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d gopkg.in/h2non/gock.v1 v1.1.2 ) diff --git a/go.sum b/go.sum index 41e1c5463..df307bb38 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,8 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/go-redis/redis/v8 v8.11.6-0.20220405070650-99c79f7041fc h1:jZY+lpZB92nvBo2f31oPC/ivGll6NcsnEOORm8Fkr4M= -github.com/go-redis/redis/v8 v8.11.6-0.20220405070650-99c79f7041fc/go.mod h1:25mL1NKxbJhB63ihiK8MnNeTRd+xAizd6bOdydrTLUQ= +github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI= +github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= @@ -48,22 +48,23 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.1.3 h1:e/3Cwtogj0HA+25nMP1jCMDIf8RtRYbGwGGuBIFztkc= -github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/ginkgo/v2 v2.0.0 h1:CcuG/HvWNkkaqCUpJifQY8z7qEMBJya6aLPx6ftGyjQ= +github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= -github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= +github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/tidwall/gjson v1.14.1 h1:iymTbGkQBhveq21bEvAQ81I0LEBork8BFe1CUZXdyuo= @@ -76,8 +77,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -85,9 +86,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -96,7 +96,6 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -105,15 +104,14 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= diff --git a/miniprogram/config/config.go b/miniprogram/config/config.go index c2d888e0c..f371883fe 100644 --- a/miniprogram/config/config.go +++ b/miniprogram/config/config.go @@ -8,6 +8,6 @@ import ( // Config .config for 小程序 type Config struct { AppID string `json:"app_id"` // appid - AppSecret string `json:"app_secret"` // appsecret + AppSecret string `json:"app_secret"` // appSecret Cache cache.Cache } diff --git a/pay/notify/refund.go b/pay/notify/refund.go index f31d57b51..be550d531 100644 --- a/pay/notify/refund.go +++ b/pay/notify/refund.go @@ -48,7 +48,6 @@ type RefundedResp struct { // DecryptReqInfo 对退款结果进行解密 func (notify *Notify) DecryptReqInfo(result *RefundedResult) (*RefundedReqInfo, error) { - var err error if result == nil || result.ReqInfo == nil { return nil, errors.New("empty refunded_result or req_info") } diff --git a/pay/order/pay.go b/pay/order/pay.go index 1abd62876..5cf896a44 100644 --- a/pay/order/pay.go +++ b/pay/order/pay.go @@ -172,7 +172,7 @@ func (o *Order) BridgeConfig(p *Params) (cfg Config, err error) { // BridgeAppConfig get app bridge config func (o *Order) BridgeAppConfig(p *Params) (cfg ConfigForApp, err error) { var ( - timestamp = strconv.FormatInt(time.Now().Unix(), 10) + timestamp = strconv.FormatInt(util.GetCurrTS(), 10) noncestr = util.RandomStr(32) _package = "Sign=WXPay" ) @@ -273,7 +273,7 @@ func (o *Order) PrePayOrder(p *Params) (payOrder PreOrder, err error) { return } -// PrePayID will request wechat merchant api and request for a pre payment order id +// PrePayID will request wechat merchant api and request for a pre-payment order id func (o *Order) PrePayID(p *Params) (prePayID string, err error) { order, err := o.PrePayOrder(p) if err != nil { diff --git a/pay/pay.go b/pay/pay.go index 004ca5366..c1f42f6e3 100644 --- a/pay/pay.go +++ b/pay/pay.go @@ -23,12 +23,12 @@ func (pay *Pay) GetOrder() *order.Order { return order.NewOrder(pay.cfg) } -// GetNotify 通知 +// GetNotify 通知 func (pay *Pay) GetNotify() *notify.Notify { return notify.NewNotify(pay.cfg) } -// GetRefund 退款 +// GetRefund 退款 func (pay *Pay) GetRefund() *refund.Refund { return refund.NewRefund(pay.cfg) } diff --git a/pay/transfer/transfer_wallet.go b/pay/transfer/transfer_wallet.go index 53a7b097f..73fe311f3 100644 --- a/pay/transfer/transfer_wallet.go +++ b/pay/transfer/transfer_wallet.go @@ -9,7 +9,7 @@ import ( "github.com/silenceper/wechat/v2/util" ) -// 付款到零钱 +// walletTransferGateway 付款到零钱 // https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2 var walletTransferGateway = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers" @@ -20,8 +20,7 @@ type Transfer struct { // NewTransfer return an instance of Transfer package func NewTransfer(cfg *config.Config) *Transfer { - transfer := Transfer{cfg} - return &transfer + return &Transfer{cfg} } // Params 调用参数 diff --git a/util/http.go b/util/http.go index 40aefbc97..22cab34b1 100644 --- a/util/http.go +++ b/util/http.go @@ -111,11 +111,11 @@ func PostJSONWithRespContentType(uri string, obj interface{}) ([]byte, string, e } // PostFile 上传文件 -func PostFile(fieldname, filename, uri string) ([]byte, error) { +func PostFile(fieldName, filename, uri string) ([]byte, error) { fields := []MultipartFormField{ { IsFile: true, - Fieldname: fieldname, + Fieldname: fieldName, Filename: filename, }, } diff --git a/wechat.go b/wechat.go index 4d095706c..fc98400ac 100644 --- a/wechat.go +++ b/wechat.go @@ -41,8 +41,8 @@ func NewWechat() *Wechat { } // SetCache 设置cache -func (wc *Wechat) SetCache(cahce cache.Cache) { - wc.cache = cahce +func (wc *Wechat) SetCache(cache cache.Cache) { + wc.cache = cache } // GetOfficialAccount 获取微信公众号实例 diff --git a/work/externalcontact/external_user.go b/work/externalcontact/external_user.go index 80c8c8f56..dfe88df1f 100644 --- a/work/externalcontact/external_user.go +++ b/work/externalcontact/external_user.go @@ -27,7 +27,6 @@ type ExternalUserListResponse struct { // GetExternalUserList 获取客户列表 // @see https://developer.work.weixin.qq.com/document/path/92113 func (r *Client) GetExternalUserList(userID string) ([]string, error) { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return nil, err @@ -98,7 +97,6 @@ type WechatChannel struct { // GetExternalUserDetail 获取外部联系人详情 func (r *Client) GetExternalUserDetail(externalUserID string, nextCursor ...string) (*ExternalUser, error) { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return nil, err @@ -130,7 +128,6 @@ type ExternalUserDetailListResponse struct { // BatchGetExternalUserDetails 批量获取外部联系人详情 func (r *Client) BatchGetExternalUserDetails(request BatchGetExternalUserDetailsRequest) ([]ExternalUser, error) { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return nil, err @@ -157,12 +154,11 @@ type UpdateUserRemarkRequest struct { Description string `json:"description"` RemarkCompany string `json:"remark_company"` RemarkMobiles []string `json:"remark_mobiles"` - RemarkPicMediaid string `json:"remark_pic_mediaid"` + RemarkPicMediaID string `json:"remark_pic_mediaid"` } // UpdateUserRemark 修改客户备注信息 func (r *Client) UpdateUserRemark(request UpdateUserRemarkRequest) error { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return err diff --git a/work/externalcontact/follow_user.go b/work/externalcontact/follow_user.go index 64bbd2aa2..1cfc3616f 100644 --- a/work/externalcontact/follow_user.go +++ b/work/externalcontact/follow_user.go @@ -17,10 +17,9 @@ type followerUserResponse struct { FollowUser []string `json:"follow_user"` } -//GetFollowUserList 获取配置了客户联系功能的成员列表 -//@see https://developer.work.weixin.qq.com/document/path/92571 +// GetFollowUserList 获取配置了客户联系功能的成员列表 +// @see https://developer.work.weixin.qq.com/document/path/92571 func (r *Client) GetFollowUserList() ([]string, error) { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return nil, err diff --git a/work/externalcontact/tag.go b/work/externalcontact/tag.go index 0974b07ec..497340ad1 100644 --- a/work/externalcontact/tag.go +++ b/work/externalcontact/tag.go @@ -54,7 +54,6 @@ type TagGroupTagItem struct { // GetCropTagList 获取企业标签库 // @see https://developer.work.weixin.qq.com/document/path/92117 func (r *Client) GetCropTagList(req GetCropTagRequest) ([]TagGroup, error) { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return nil, err @@ -127,7 +126,6 @@ type EditCropTagRequest struct { // EditCropTag 修改企业客户标签 // @see https://developer.work.weixin.qq.com/document/path/92117 func (r *Client) EditCropTag(req EditCropTagRequest) error { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return err @@ -151,7 +149,6 @@ type DeleteCropTagRequest struct { // DeleteCropTag 删除企业客户标签 // @see https://developer.work.weixin.qq.com/document/path/92117 func (r *Client) DeleteCropTag(req DeleteCropTagRequest) error { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return err @@ -177,7 +174,6 @@ type MarkTagRequest struct { // MarkTag 为客户打上标签 // @see https://developer.work.weixin.qq.com/document/path/92118 func (r *Client) MarkTag(request MarkTagRequest) error { - var accessToken string accessToken, err := r.GetAccessToken() if err != nil { return err diff --git a/work/kf/account.go b/work/kf/account.go index 3a0e53548..6153faa2e 100644 --- a/work/kf/account.go +++ b/work/kf/account.go @@ -38,12 +38,10 @@ func (r *Client) AccountAdd(options AccountAddOptions) (info AccountAddSchema, e accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(accountAddAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(accountAddAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { @@ -66,12 +64,10 @@ func (r *Client) AccountDel(options AccountDelOptions) (info util.CommonError, e accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(accountDelAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(accountDelAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { @@ -96,12 +92,10 @@ func (r *Client) AccountUpdate(options AccountUpdateOptions) (info util.CommonEr accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(accountUpdateAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(accountUpdateAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { @@ -132,12 +126,10 @@ func (r *Client) AccountList() (info AccountListSchema, err error) { accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.HTTPGet(fmt.Sprintf(accountListAddr, accessToken)) - if err != nil { + if data, err = util.HTTPGet(fmt.Sprintf(accountListAddr, accessToken)); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { @@ -171,12 +163,10 @@ func (r *Client) AddContactWay(options AddContactWayOptions) (info AddContactWay accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(addContactWayAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(addContactWayAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { diff --git a/work/kf/customer.go b/work/kf/customer.go index 3420ee3bd..1ded143f9 100644 --- a/work/kf/customer.go +++ b/work/kf/customer.go @@ -38,12 +38,10 @@ func (r *Client) CustomerBatchGet(options CustomerBatchGetOptions) (info Custome accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(customerBatchGetAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(customerBatchGetAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { diff --git a/work/kf/other.go b/work/kf/other.go index 53cf32c3a..355f614c6 100644 --- a/work/kf/other.go +++ b/work/kf/other.go @@ -31,12 +31,10 @@ func (r *Client) GetCorpQualification() (info CorpQualificationSchema, err error accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.HTTPGet(fmt.Sprintf(corpQualification, accessToken)) - if err != nil { + if data, err = util.HTTPGet(fmt.Sprintf(corpQualification, accessToken)); err != nil { return info, err } if err = json.Unmarshal(data, &info); err != nil { diff --git a/work/kf/sendmsg.go b/work/kf/sendmsg.go index 9e8d0964e..6eda66111 100644 --- a/work/kf/sendmsg.go +++ b/work/kf/sendmsg.go @@ -31,12 +31,10 @@ func (r *Client) SendMsg(options interface{}) (info SendMsgSchema, err error) { accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(sendMsgAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(sendMsgAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { diff --git a/work/kf/sendmsgonevent.go b/work/kf/sendmsgonevent.go index 53d2e97fd..ea822936d 100644 --- a/work/kf/sendmsgonevent.go +++ b/work/kf/sendmsgonevent.go @@ -38,12 +38,10 @@ func (r *Client) SendMsgOnEvent(options interface{}) (info SendMsgOnEventSchema, accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(sendMsgOnEventAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(sendMsgOnEventAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { diff --git a/work/kf/servicer.go b/work/kf/servicer.go index 6cd4ccc71..5c34efc99 100644 --- a/work/kf/servicer.go +++ b/work/kf/servicer.go @@ -37,12 +37,10 @@ func (r *Client) ReceptionistAdd(options ReceptionistOptions) (info Receptionist accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(receptionistAddAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(receptionistAddAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { diff --git a/work/kf/servicestate.go b/work/kf/servicestate.go index d14599a96..ac20e467c 100644 --- a/work/kf/servicestate.go +++ b/work/kf/servicestate.go @@ -39,12 +39,10 @@ func (r *Client) ServiceStateGet(options ServiceStateGetOptions) (info ServiceSt accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(serviceStateGetAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(serviceStateGetAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { @@ -76,12 +74,10 @@ func (r *Client) ServiceStateTrans(options ServiceStateTransOptions) (info Servi accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(serviceStateTransAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(serviceStateTransAddr, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { diff --git a/work/kf/syncmsg.go b/work/kf/syncmsg.go index 852702ef2..20d06f5d8 100644 --- a/work/kf/syncmsg.go +++ b/work/kf/syncmsg.go @@ -45,12 +45,10 @@ func (r *Client) SyncMsg(options SyncMsgOptions) (info SyncMsgSchema, err error) accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(syncMsgAddr, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(syncMsgAddr, accessToken), options); err != nil { return } originInfo := syncMsgSchema{} diff --git a/work/kf/upgrade.go b/work/kf/upgrade.go index 6e12cdd21..73f2da603 100644 --- a/work/kf/upgrade.go +++ b/work/kf/upgrade.go @@ -34,12 +34,10 @@ func (r *Client) UpgradeServiceConfig() (info UpgradeServiceConfigSchema, err er accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.HTTPGet(fmt.Sprintf(upgradeServiceConfigAddr, accessToken)) - if err != nil { + if data, err = util.HTTPGet(fmt.Sprintf(upgradeServiceConfigAddr, accessToken)); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { @@ -72,12 +70,10 @@ func (r *Client) UpgradeService(options UpgradeServiceOptions) (info util.Common accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(upgradeService, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(upgradeService, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { @@ -106,12 +102,10 @@ func (r *Client) UpgradeMemberService(options UpgradeMemberServiceOptions) (info accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(upgradeService, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(upgradeService, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { @@ -169,12 +163,10 @@ func (r *Client) UpgradeServiceCancel(options UpgradeServiceCancelOptions) (info accessToken string data []byte ) - accessToken, err = r.ctx.GetAccessToken() - if err != nil { + if accessToken, err = r.ctx.GetAccessToken(); err != nil { return } - data, err = util.PostJSON(fmt.Sprintf(upgradeServiceCancel, accessToken), options) - if err != nil { + if data, err = util.PostJSON(fmt.Sprintf(upgradeServiceCancel, accessToken), options); err != nil { return } if err = json.Unmarshal(data, &info); err != nil { diff --git a/work/oauth/oauth.go b/work/oauth/oauth.go index 10e2bb024..06074b62e 100644 --- a/work/oauth/oauth.go +++ b/work/oauth/oauth.go @@ -33,23 +33,21 @@ func NewOauth(ctx *context.Context) *Oauth { // GetTargetURL 获取授权地址 func (ctr *Oauth) GetTargetURL(callbackURL string) string { // url encode - urlStr := url.QueryEscape(callbackURL) return fmt.Sprintf( oauthTargetURL, ctr.CorpID, - urlStr, + url.QueryEscape(callbackURL), ) } // GetQrContentTargetURL 构造独立窗口登录二维码 func (ctr *Oauth) GetQrContentTargetURL(callbackURL string) string { // url encode - urlStr := url.QueryEscape(callbackURL) return fmt.Sprintf( oauthQrContentTargetURL, ctr.CorpID, ctr.AgentID, - urlStr, + url.QueryEscape(callbackURL), util.RandomStr(16), ) } @@ -68,15 +66,11 @@ type ResUserInfo struct { // UserFromCode 根据code获取用户信息 func (ctr *Oauth) UserFromCode(code string) (result ResUserInfo, err error) { var accessToken string - accessToken, err = ctr.GetAccessToken() - if err != nil { + if accessToken, err = ctr.GetAccessToken(); err != nil { return } var response []byte - response, err = util.HTTPGet( - fmt.Sprintf(oauthUserInfoURL, accessToken, code), - ) - if err != nil { + if response, err = util.HTTPGet(fmt.Sprintf(oauthUserInfoURL, accessToken, code)); err != nil { return } err = json.Unmarshal(response, &result)