code: func (ctx *Context) GetAccessToken() (accessToken string, err error) {
  	ctx.accessTokenLock.Lock()
  	defer ctx.accessTokenLock.Unlock()
  
  	accessTokenCacheKey := fmt.Sprintf("access_token_%s", ctx.AppID)
  	val := ctx.Cache.Get(accessTokenCacheKey)
  	if val != nil {
  		accessToken = val.(string)
  		return
  	}
  
  	//从微信服务器获取
  	var resAccessToken ResAccessToken
  	resAccessToken, err = ctx.GetAccessTokenFromServer()
  	if err != nil {
  		return
  	}
  
  	accessToken = resAccessToken.AccessToken
  	return
  }
docs: //GetAccessToken 获取access_token