public async Task <IHttpActionResult> WxVerify([FromBody] AuthorizedOrNotInputDto dto) { var ret = await _aDVerifyService.WxVerify(dto); //if (ret.Success == false && ret.Msg == "NOT_LOGIN") //{ // return Content(HttpStatusCode.Unauthorized, new // { // success = false, // errCode = "NOT_LOGIN", // message = "No login id." // }); //} return(Ok(ret)); }
/// <summary> /// 验证小程序AD是否授权过 /// </summary> /// <param name="openid"></param> /// <param name="username"></param> /// <returns></returns> public async Task <ReturnValueModel> WxVerify(AuthorizedOrNotInputDto dto) { ReturnValueModel rvm = new ReturnValueModel { Msg = "success", Success = true }; try { var configure = await _rep.FirstOrDefaultAsync <BotSaleConfigure>(o => o.IsDeleted == 0 && o.AppId == dto.appid); if (configure == null) { rvm.Msg = "fail"; rvm.Success = false; rvm.Result = "Bot配置异常,请联系管理员或在线客服。"; return(rvm); } if (string.IsNullOrEmpty(configure.AppId)) { rvm.Msg = "fail"; rvm.Success = false; rvm.Result = "Bot配置异常,请联系管理员或在线客服。"; return(rvm); } if (string.IsNullOrEmpty(configure.AppSecret)) { rvm.Msg = "fail"; rvm.Success = false; rvm.Result = "Bot配置异常,请联系管理员或在线客服。"; return(rvm); } var appId = configure.AppId; var appSecret = configure.AppSecret; var url = string.Format(WxUrls.UnionIdUrl, appId, appSecret, dto.code); var openModel = JsonConvert.DeserializeObject <OpenModel>(HttpUtils.HttpGet(url, "")); if (string.IsNullOrEmpty(openModel?.OpenId)) { rvm.Msg = "fail"; rvm.Success = false; rvm.Result = new { sysTokenUrl = "", sysToken = "", username = "", grant_type = "", verify = false, openId = "openid失败,重新授权" }; return(rvm); } var query = _rep.Where <WxSaleUserModel>(o => o != null && o.IsDeleted != 1); if (!string.IsNullOrEmpty(dto?.username)) { query = query.Where(o => o.Id == dto.username); } else { query = query.Where(o => o.OpenId == openModel.OpenId); } var saleUser = query.FirstOrDefault <WxSaleUserModel>(); if (saleUser == null) { rvm.Success = true; rvm.Msg = "success"; rvm.Result = new { sysTokenUrl = "", sysToken = "", username = "", grant_type = "", verify = false, openId = openModel.OpenId }; return(rvm); } if (string.IsNullOrEmpty(saleUser.ADAccount)) { rvm.Msg = "NOT_LOGIN"; rvm.Success = false; rvm.Result = new { sysTokenUrl = "", sysToken = "", username = "", grant_type = "", verify = false, openId = openModel.OpenId }; return(rvm); } _wxRegisterService.CacheWxSaleUser(saleUser);//必须添加到内存 string _host = ConfigurationManager.AppSettings["HostUrl"]; var authPath = $@"{_host}/api/auth/token/WxSale"; var postStr = $@"username={saleUser.Id}&grant_type=password"; SysToken sysToken = HttpUtils.PostResponse <SysToken>(authPath, postStr, "application/x-www-form-urlencoded"); rvm.Success = true; rvm.Msg = "success"; rvm.Result = new { sysTokenUrl = authPath, sysToken,//管理平台 token username = saleUser.Id, grant_type = "password", verify = true, openId = openModel.OpenId }; } catch (Exception ex) { rvm.Msg = "fail"; rvm.Success = false; rvm.Result = ex.Message; } return(rvm); }