|
1 | 1 | package miniprogram
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + originalContext "context" |
4 | 5 | "fmt"
|
5 | 6 |
|
6 | 7 | "github.com/silenceper/wechat/v2/credential"
|
@@ -37,6 +38,22 @@ func (miniProgram *MiniProgram) GetAccessToken() (string, error) {
|
37 | 38 | return akRes.AccessToken, nil
|
38 | 39 | }
|
39 | 40 |
|
| 41 | +// GetAccessTokenContext 利用ctx获取ak |
| 42 | +func (miniProgram *MiniProgram) GetAccessTokenContext(ctx originalContext.Context) (string, error) { |
| 43 | + ak, akErr := miniProgram.openContext.GetAuthrAccessTokenContext(ctx, miniProgram.AppID) |
| 44 | + if akErr == nil { |
| 45 | + return ak, nil |
| 46 | + } |
| 47 | + if miniProgram.authorizerRefreshToken == "" { |
| 48 | + return "", fmt.Errorf("please set the authorizer_refresh_token first") |
| 49 | + } |
| 50 | + akRes, akResErr := miniProgram.GetComponent().RefreshAuthrTokenContext(ctx, miniProgram.AppID, miniProgram.authorizerRefreshToken) |
| 51 | + if akResErr != nil { |
| 52 | + return "", akResErr |
| 53 | + } |
| 54 | + return akRes.AccessToken, nil |
| 55 | +} |
| 56 | + |
40 | 57 | // SetAuthorizerRefreshToken 设置代执操作业务授权账号authorizer_refresh_token
|
41 | 58 | func (miniProgram *MiniProgram) SetAuthorizerRefreshToken(authorizerRefreshToken string) *MiniProgram {
|
42 | 59 | miniProgram.authorizerRefreshToken = authorizerRefreshToken
|
@@ -68,7 +85,7 @@ func (miniProgram *MiniProgram) GetBasic() *basic.Basic {
|
68 | 85 | // GetURLLink 小程序URL Link接口 调用前需确认已调用 SetAuthorizerRefreshToken 避免由于缓存中 authorizer_access_token 过期执行中断
|
69 | 86 | func (miniProgram *MiniProgram) GetURLLink() *urllink.URLLink {
|
70 | 87 | return urllink.NewURLLink(&miniContext.Context{
|
71 |
| - AccessTokenHandle: miniProgram, |
| 88 | + AccessTokenContextHandle: miniProgram, |
72 | 89 | })
|
73 | 90 | }
|
74 | 91 |
|
|
0 commit comments