public RESTfulModel Save(SaveAuthModel model) { // 授权信息存数据库 try { // 验证 // jsapi_ticket string url_jsapi = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + model.AuthorizerAccessToken + "&type=jsapi"; LogHelper.Info("获取(刷新)jsapi_ticket url_jsapi", url_jsapi); string responseBody_jsapi = HttpHelper.Get(url_jsapi); LogHelper.Info("获取(刷新)jsapi_ticket responseBody_jsapi", responseBody_jsapi); TicketGetResp resp_jsapi = JsonConvert.DeserializeObject <TicketGetResp>(responseBody_jsapi); // api_ticket string url_api = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + model.AuthorizerAccessToken + "&type=wx_card"; LogHelper.Info("获取(刷新)api_ticket url_api", url_api); string responseBody_api = HttpHelper.Get(url_api); LogHelper.Info("获取(刷新)api_ticket responseBody_api", responseBody_api); TicketGetResp resp_api = JsonConvert.DeserializeObject <TicketGetResp>(responseBody_api); AuthorizationInfoModel authorizationInfoModel = authorizationInfoDAL.GetModel(model.AuthorizerAppID); if (authorizationInfoModel != null) { // 更新 authorizationInfoDAL.Update( model.AuthorizerAppID, authorizationInfoModel.AuthorizerAccessToken,// 当前的置为旧的,用于消息延时 model.AuthorizerAccessToken, model.ExpiresIn, model.AuthorizerRefreshToken, resp_jsapi.Ticket, resp_api.Ticket, model.AuthTime); } else { // 插入 authorizationInfoDAL.Insert( model.AuthorizerAppID, model.AuthorizerAccessToken, model.AuthorizerAccessToken, model.ExpiresIn, model.AuthorizerRefreshToken, resp_jsapi.Ticket, resp_api.Ticket, model.AuthTime); } return(new RESTfulModel() { Code = (int)CodeEnum.成功, Msg = string.Format(codeMsgDAL.GetByCode((int)CodeEnum.成功), "成功") }); } catch (Exception ex) { LogHelper.Error(ex); return(new RESTfulModel() { Code = (int)CodeEnum.系统异常, Msg = codeMsgDAL.GetByCode((int)CodeEnum.系统异常) }); } }
public RESTfulModel Save(SaveAuthModel model) { return(authorizationInfoBLL.Save(model)); }
public RESTfulModel SaveAuth(string authCode, int expiresIn, string userID) { try { DateTime authTime = DateTime.Now; #region 4、使用授权码换取公众号的接口调用凭据和授权信息 string componentAppID = ConfigHelper.ComponentAppId; string componentAccessToken = componentAccessTokenDAL.Get(); string url_4 = "https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=" + componentAccessToken; LogHelper.Info("4、使用授权码换取公众号的接口调用凭据和授权信息 url_4", url_4); // 4、使用授权码换取公众号的接口调用凭据和授权信息 AuthorizationInfoGetReq req_4 = new AuthorizationInfoGetReq(); req_4.ComponentAppId = componentAppID; req_4.AuthorizationCode = authCode; string requestBody_4 = JsonConvert.SerializeObject(req_4); LogHelper.Info("4、使用授权码换取公众号的接口调用凭据和授权信息 requestBody_4", requestBody_4); string responseBody_4 = HttpHelper.Post(url_4, requestBody_4); LogHelper.Info("4、使用授权码换取公众号的接口调用凭据和授权信息 responseBody_4", responseBody_4); AuthorizationInfoGetResp resp_4 = JsonConvert.DeserializeObject <AuthorizationInfoGetResp>(responseBody_4); #endregion #region 调用远程接口保存AccessToken信息 string url = ConfigHelper.DomainToken + "api/accesstoken/save"; LogHelper.Info("调用远程接口保存AccessToken信息 url", url); SaveAuthModel req = new SaveAuthModel() { AuthorizerAppID = resp_4.AuthorizationInfo.AuthorizerAppID, AuthorizerAccessToken = resp_4.AuthorizationInfo.AuthorizerAccessToken, ExpiresIn = resp_4.AuthorizationInfo.ExpiresIn, AuthorizerRefreshToken = resp_4.AuthorizationInfo.AuthorizerRefreshToken, AuthTime = authTime }; string requestBody = JsonConvert.SerializeObject(req); LogHelper.Info("调用远程接口保存AccessToken信息 requestBody", requestBody); string responseBody = HttpHelper.Post(url, requestBody); LogHelper.Info("调用远程接口保存AccessToken信息 responseBody", responseBody); RESTfulModel resp = JsonConvert.DeserializeObject <RESTfulModel>(responseBody); #endregion if (resp.Code == 0) { #region 权限 // 删除权限 funcInfoDAL.Delete(resp_4.AuthorizationInfo.AuthorizerAppID); // 插入权限,不存在空集合 List <int> funcscopeCategoryIdList = resp_4.AuthorizationInfo.FuncInfo.Select(o => o.FuncscopeCategory.ID).ToList(); foreach (var funcscopeCategoryId in funcscopeCategoryIdList) { funcInfoDAL.Insert(resp_4.AuthorizationInfo.AuthorizerAppID, funcscopeCategoryId); } #endregion // 保存授权者信息 return(SaveAuthorizer(componentAppID, componentAccessToken, resp_4.AuthorizationInfo.AuthorizerAppID, userID, authTime)); } else { return(new RESTfulModel() { Code = (int)CodeEnum.保存授权信息失败, Msg = codeMsgDAL.GetByCode((int)CodeEnum.保存授权信息失败) }); } } catch (Exception ex) { LogHelper.Error(ex); return(new RESTfulModel() { Code = (int)CodeEnum.系统异常, Msg = codeMsgDAL.GetByCode((int)CodeEnum.系统异常) }); } }