public async Task SaveAuthorizerInfoAsync(OpenAuthInfo info) { var entity = Context.OpenAuthInfos.FirstOrDefault(a => a.BusinessId == info.BusinessId); if (entity == null) { await Context.AddAsync(info); } else { // 修改之前的授权 entity.AppId = info.AppId; entity.RefreshToken = info.RefreshToken; entity.ModifyTime = DateTime.Now; } await Context.SaveChangesAsync(); }
/// <summary> /// 授权成功后的回调URL /// </summary> /// <param name="auth_code"></param> /// <param name="expires_in"></param> /// <returns></returns> public async Task <IActionResult> AuthSuccess([FromQuery] string auth_code, [FromQuery] int expires_in, [FromServices] AppData appData) { var token = await Service.GetOpenTokenAsync(); var result = await WxHelper.GetAuthTokenAsync(auth_code, token); var openAuth = new OpenAuthInfo { AppId = result.authorization_info.authorizer_appid, BusinessId = Business.ID, CreateTime = DateTime.Now, RefreshToken = result.authorization_info.authorizer_refresh_token }; await Service.SaveAuthorizerInfoAsync(openAuth); return(RedirectToAction("AuthInfo")); }