|
@@ -1,6 +1,7 @@
|
|
|
package miniprogram
|
|
package miniprogram
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
|
+ originalContext "context"
|
|
|
"fmt"
|
|
"fmt"
|
|
|
|
|
|
|
|
"github.com/silenceper/wechat/v2/credential"
|
|
"github.com/silenceper/wechat/v2/credential"
|
|
@@ -37,6 +38,22 @@ func (miniProgram *MiniProgram) GetAccessToken() (string, error) {
|
|
|
return akRes.AccessToken, nil
|
|
return akRes.AccessToken, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// GetAccessTokenContext 利用ctx获取ak
|
|
|
|
|
+func (miniProgram *MiniProgram) GetAccessTokenContext(ctx originalContext.Context) (string, error) {
|
|
|
|
|
+ ak, akErr := miniProgram.openContext.GetAuthrAccessTokenContext(ctx, miniProgram.AppID)
|
|
|
|
|
+ if akErr == nil {
|
|
|
|
|
+ return ak, nil
|
|
|
|
|
+ }
|
|
|
|
|
+ if miniProgram.authorizerRefreshToken == "" {
|
|
|
|
|
+ return "", fmt.Errorf("please set the authorizer_refresh_token first")
|
|
|
|
|
+ }
|
|
|
|
|
+ akRes, akResErr := miniProgram.GetComponent().RefreshAuthrTokenContext(ctx, miniProgram.AppID, miniProgram.authorizerRefreshToken)
|
|
|
|
|
+ if akResErr != nil {
|
|
|
|
|
+ return "", akResErr
|
|
|
|
|
+ }
|
|
|
|
|
+ return akRes.AccessToken, nil
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// SetAuthorizerRefreshToken 设置代执操作业务授权账号authorizer_refresh_token
|
|
// SetAuthorizerRefreshToken 设置代执操作业务授权账号authorizer_refresh_token
|
|
|
func (miniProgram *MiniProgram) SetAuthorizerRefreshToken(authorizerRefreshToken string) *MiniProgram {
|
|
func (miniProgram *MiniProgram) SetAuthorizerRefreshToken(authorizerRefreshToken string) *MiniProgram {
|
|
|
miniProgram.authorizerRefreshToken = authorizerRefreshToken
|
|
miniProgram.authorizerRefreshToken = authorizerRefreshToken
|
|
@@ -68,7 +85,7 @@ func (miniProgram *MiniProgram) GetBasic() *basic.Basic {
|
|
|
// GetURLLink 小程序URL Link接口 调用前需确认已调用 SetAuthorizerRefreshToken 避免由于缓存中 authorizer_access_token 过期执行中断
|
|
// GetURLLink 小程序URL Link接口 调用前需确认已调用 SetAuthorizerRefreshToken 避免由于缓存中 authorizer_access_token 过期执行中断
|
|
|
func (miniProgram *MiniProgram) GetURLLink() *urllink.URLLink {
|
|
func (miniProgram *MiniProgram) GetURLLink() *urllink.URLLink {
|
|
|
return urllink.NewURLLink(&miniContext.Context{
|
|
return urllink.NewURLLink(&miniContext.Context{
|
|
|
- AccessTokenHandle: miniProgram,
|
|
|
|
|
|
|
+ AccessTokenContextHandle: miniProgram,
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|