扫码登录之后获取的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
}

你好,
1:code过期
2:code重复使用
3:code错误
4:code和appid不匹配,code不是对应appid生成的
刚才已经排查出来了