public static WxUsers SetWxUserInfo(IWxUsersRepository repository, WxUserInfo userModel, PassTicketXmlInfo keys) { var result = repository.GetWxUsers(keys.wxuin) ?? new WxUsers(); result.Uin = keys.wxuin; result.UserName = userModel.UserName; result.NickName = userModel.NickName; result.HeadImgUrl = userModel.HeadImgUrl; result.PYInitial = userModel.PYInitial; result.PYQuanPin = userModel.PYQuanPin; result.StarFriend = userModel.StarFriend; result.Sex = userModel.Sex; result.UpdateTime = DateTime.Now; //设置keys result.Detail.WxKeys.Ret = keys.ret; result.Detail.WxKeys.Message = keys.message; result.Detail.WxKeys.Skey = keys.skey; result.Detail.WxKeys.WxSid = keys.wxsid; result.Detail.WxKeys.WxUin = keys.wxuin; result.Detail.WxKeys.PassTicket = keys.pass_ticket; result.Detail.WxKeys.Isgrayscale = keys.isgrayscale; result.Detail.WxKeysJson = JsonConvert.SerializeObject(result.Detail.WxKeys); if (result.Id <= 0) { repository.Add(result); } else { repository.Update(result); } return(result); }
public static int LoginSuccess(IWxUsersRepository repository, IWxFriendsRepository wxFriendsRepository, HttpResponse Response, IAuthCore authcore, string uuid, string tip, ref string url) { var status = WeiXinHelper.GetLoginStatus(uuid, tip, ref url); return(status); }
public OpenApiController(IWxUsersRepository wxUsersRepository, IWxFriendsRepository wxFriendsRepository, IRedisHelper redisHelper, IOptions <AppConfig> appconfig) { _wxUsersRepository = wxUsersRepository; _wxFriendsRepository = wxFriendsRepository; _redisHelper = redisHelper; _appconfig = appconfig; }
/// <summary> /// 登录初始化 /// </summary> /// <returns></returns> public static void LoginInitialization(IWxUsersRepository repository, IWxFriendsRepository wxFriendsRepository, HttpResponse Response, IAuthCore authcore, string url) { var wxCookie = String.Empty; var keys = WeiXinHelper.GetUserKeys(url, ref wxCookie); //计算域名 string hosts = url.IndexOf("wx.qq.com") > 0 ? "wx.qq.com" : "wx2.qq.com"; //获取用户信息 var userInfo = WeiXinHelper.GetWxUserInfo(hosts, keys); //创建用户 var userModel = WxUsers.SetWxUserInfo(repository, userInfo.User, keys); //设置基础操作域名 userModel.SetWxHosts(hosts); //同步好友 var friends = WeiXinHelper.GetWxFriends(hosts, keys.skey, wxCookie); userModel.SyncFriends(wxFriendsRepository, friends); //创建状态通知 WeiXinHelper.StartWxStatusNotify(hosts, wxCookie, keys, userModel.UserName); //心跳检测转到前端 Thread thread = new Thread(m => HeartbeatWxStatus(Response, hosts, wxCookie, keys, userInfo.SyncKey)); thread.IsBackground = true; thread.Start(); //添加缓存 AuthCore.SetUin(Response, userModel.Uin); authcore.SetUserName(userModel.Uin, userModel.UserName); authcore.SetUserHosts(userModel.Uin, hosts); authcore.SetUserKeys(userModel.Uin, keys); authcore.SetUserCookie(userModel.Uin, wxCookie); authcore.SetUserSyncKeys(userModel.Uin, userInfo.SyncKey); }
public static bool SendMsgByRemarkName(IWxFriendsRepository wxFriendsRepository, IWxUsersRepository wxUsersRepository, IRedisHelper redisHelper, IOptions <AppConfig> appConfig, WebHookParam webHook) { AuthCore authCore = new AuthCore(redisHelper); var username = authCore.GetUserName(appConfig.Value.UserUin); //当前登录用户名称 var userHosts = authCore.GetUserHosts(appConfig.Value.UserUin); //当前登录用户操作域名 var userCookies = authCore.GetUserCookie(appConfig.Value.UserUin); //当前登录用户Cookies var userKeys = authCore.GetUserKeys(appConfig.Value.UserUin); //当前登录用户秘钥 var dbWxUser = wxUsersRepository.GetWxUsers(appConfig.Value.UserUin);//当前登录用户 if (dbWxUser == null) { throw new CustomerException("未找到登录信息", -2); } var dbFriends = wxFriendsRepository.GetFriendByName(webHook.actor, dbWxUser.Uin); if (dbFriends == null) { throw new CustomerException("未找到好友信息", -1); //好友信息 } return(WeiXinHelper.SendMsg(userHosts, webHook.text, dbFriends.UserName, dbWxUser.UserName, userKeys, userCookies)); }
public LoginController(IAuthCore authcore, IWxUsersRepository repository, IWxFriendsRepository wxFriendsRepository) { _authcore = authcore; _repository = repository; _wxFriendsRepository = wxFriendsRepository; }