@@ -10,52 +10,52 @@ import (
10
10
11
11
// 获取小程序全局唯一后台接口调用凭据(access_token)
12
12
// 微信小程序文档:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html
13
- func (s * SDK ) getAccessToken () (err error ) {
14
- defer func () {
15
- if err != nil {
16
- // reset default refresh internal
17
- s .RefreshInternal = time .Second * 20
18
- if s .callback != nil {
19
- go s .callback ("" , "" , 0 , err )
20
- }
21
- }
22
- }()
23
-
24
- path := "/cgi-bin/token?grant_type=client_credential&appid=" + s .Appid + "&secret=" + s .Secret
25
- at := & AccessToken {}
26
- if _ , err = s .DoRequestGet (s .ctx , path , at ); err != nil {
27
- return
28
- }
29
- if at .Errcode != Success {
30
- err = fmt .Errorf ("errcode(%d), errmsg(%s)" , at .Errcode , at .Errmsg )
31
- return
32
- }
33
- s .accessToken = at .AccessToken
34
- s .RefreshInternal = time .Second * time .Duration (at .ExpiresIn )
35
- if s .callback != nil {
36
- go s .callback (s .Appid , at .AccessToken , at .ExpiresIn , nil )
37
- }
38
- return nil
39
- }
13
+ // func (s *SDK) getAccessToken() (err error) {
14
+ // defer func() {
15
+ // if err != nil {
16
+ // // reset default refresh internal
17
+ // s.RefreshInternal = time.Second * 20
18
+ // if s.callback != nil {
19
+ // go s.callback("", "", 0, err)
20
+ // }
21
+ // }
22
+ // }()
23
+ //
24
+ // path := "/cgi-bin/token?grant_type=client_credential&appid=" + s.Appid + "&secret=" + s.Secret
25
+ // at := &AccessToken{}
26
+ // if _, err = s.DoRequestGet(s.ctx, path, at); err != nil {
27
+ // return
28
+ // }
29
+ // if at.Errcode != Success {
30
+ // err = fmt.Errorf("errcode(%d), errmsg(%s)", at.Errcode, at.Errmsg)
31
+ // return
32
+ // }
33
+ // s.accessToken = at.AccessToken
34
+ // s.RefreshInternal = time.Second * time.Duration(at.ExpiresIn)
35
+ // if s.callback != nil {
36
+ // go s.callback(s.Appid, at.AccessToken, at.ExpiresIn, nil)
37
+ // }
38
+ // return nil
39
+ // }
40
40
41
- func (s * SDK ) goAutoRefreshAccessToken () {
42
- defer func () {
43
- if r := recover (); r != nil {
44
- buf := make ([]byte , 64 << 10 )
45
- buf = buf [:runtime .Stack (buf , false )]
46
- s .logger .Errorf ("mini_goAutoRefreshAccessToken: panic recovered: %s\n %s" , r , buf )
47
- }
48
- }()
49
- for {
50
- // every one hour, request new access token, default 10s
51
- time .Sleep (s .RefreshInternal / 2 )
52
- err := s .getAccessToken ()
53
- if err != nil {
54
- s .logger .Errorf ("get access token error, after 10s retry: %+v" , err )
55
- continue
56
- }
57
- }
58
- }
41
+ // func (s *SDK) goAutoRefreshAccessToken() {
42
+ // defer func() {
43
+ // if r := recover(); r != nil {
44
+ // buf := make([]byte, 64<<10)
45
+ // buf = buf[:runtime.Stack(buf, false)]
46
+ // s.logger.Errorf("mini_goAutoRefreshAccessToken: panic recovered: %s\n%s", r, buf)
47
+ // }
48
+ // }()
49
+ // for {
50
+ // // every one hour, request new access token, default 10s
51
+ // time.Sleep(s.RefreshInternal / 2)
52
+ // err := s.getAccessToken()
53
+ // if err != nil {
54
+ // s.logger.Errorf("get access token error, after 10s retry: %+v", err)
55
+ // continue
56
+ // }
57
+ // }
58
+ // }
59
59
60
60
// 获取稳定版接口调用凭据
61
61
// 微信小程序文档:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getStableAccessToken.html
@@ -93,6 +93,11 @@ func (s *SDK) goAutoRefreshStableAccessToken() {
93
93
buf := make ([]byte , 64 << 10 )
94
94
buf = buf [:runtime .Stack (buf , false )]
95
95
s .logger .Errorf ("mini_goAutoRefreshAccessToken: panic recovered: %s\n %s" , r , buf )
96
+ time .Sleep (time .Second * 3 )
97
+ if err := s .getStableAccessToken (); err != nil {
98
+ // 失败就不再自动刷新了
99
+ return
100
+ }
96
101
s .goAutoRefreshStableAccessToken ()
97
102
}
98
103
}()
0 commit comments