收藏
回答

invalid code, rid: 6847c9ee-08a82280-254d9273?

扫码登录之后获取的code代入代码调试一直出现这个错误

func GetOfficialAccountUserFromCode(code string) (*providers.User, error) {
    return _wxOfficialAccount.OAuth.UserFromCode(code)
}

func (provider *WeChat) UserFromCode(code string) (*User, error) {
    if object.InArray("snsapi_base", provider.scopes) {
       tokenResponse, err := provider.GetTokenFromCode(code)
       if err != nil {
          return nil, err
       }
       bodyBuffer, err := ioutil.ReadAll(tokenResponse.Body)
       if err != nil {
          return nil, err
       }
       mapToken := &object.HashMap{}
       err = object.JsonDecode(bodyBuffer, mapToken)

       user := provider.MapUserToObject(mapToken)
       if user.GetString("id", "") == "" {
          return nil, errors.New((*mapToken)["errmsg"].(string))
       }

       return user, nil
    }

    tokenResponse, err := provider.TokenFromCode(code)
    if err != nil {
       return nil, err
    }

    // 检查is_snapshotuser是否返回
    isSnapShotUser := 0.0
    if (*tokenResponse)["is_snapshotuser"] != nil {
       isSnapShotUser = (*tokenResponse)["is_snapshotuser"].(float64)
    }

    token := (*tokenResponse)[provider.accessTokenKey].(string)
    openID := (*tokenResponse)["openid"].(string)
    user, err := provider.UserFromToken(token, openID)
    if err != nil {
       return nil, err
    }

    refreshToken := ""
    if (*tokenResponse)[provider.refreshTokenKey] != nil {
       refreshToken = (*tokenResponse)[provider.refreshTokenKey].(string)
    }

    expiresIn := 0.0
    if (*tokenResponse)[provider.expiresInKey] != nil {
       expiresIn = (*tokenResponse)[provider.expiresInKey].(float64)
    }

    return user.SetSnapShotUser(isSnapShotUser == 1).
       SetRefreshToken(refreshToken).
       SetExpiresIn(expiresIn).
       SetTokenResponse(tokenResponse), nil
}


回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2025-06-10

    你好,

    1:code过期


    2:code重复使用


    3:code错误


    4:code和appid不匹配,code不是对应appid生成的

    2025-06-10
    有用
    回复
  • 赵其辉
    赵其辉
    2025-06-10

    刚才已经排查出来了

    2025-06-10
    有用
    回复
登录 后发表内容