code: func (ctx *Context) QueryAuthCode(authCode string) (*AuthBaseInfo, error) {
  	cat, err := ctx.GetComponentAccessToken()
  	if err != nil {
  		return nil, err
  	}
  
  	req := map[string]string{
  		"component_appid":    ctx.AppID,
  		"authorization_code": authCode,
  	}
  	uri := fmt.Sprintf(queryAuthURL, cat)
  	body, err := util.PostJSON(uri, req)
  	if err != nil {
  		return nil, err
  	}
  
  	var ret struct {
  		Info *AuthBaseInfo `json:"authorization_info"`
  	}
  
  	if err := json.Unmarshal(body, &ret); err != nil {
  		return nil, err
  	}
  
  	return ret.Info, nil
  }
docs: // QueryAuthCode 使用授权码换取公众号或小程序的接口调用凭据和授权信息