//登陆,得到 WxPublicUser curPubUsr private bool TryLogin(DbWaitingTask task, Dictionary <Guid, DictPubUser> dictPubUsers, out WxPublicUser curPubUsr, out string errMsg) { var db = Database.Open(); string pubAccount = dictPubUsers[task.uidWxPubUsr].pubAccount; string pubPw = dictPubUsers[task.uidWxPubUsr].pubPw; logger.Log(string.Format("尝试登陆公众号:{0}", pubAccount)); curPubUsr = WxSimulater.ExecLogin(pubAccount, pubPw, string.Empty); if (curPubUsr.IsLogin()) { logger.Log("登陆成功"); errMsg = null; return(true); } else { errMsg = WxSimulater.ParseLoginRetInfo(curPubUsr.LoginRetInfo); logger.Log(string.Format("登陆失败,跳过该用户,错误:errCode:{0} {1}", curPubUsr.LoginRetInfo.ErrCode, errMsg)); int tmpStatCode = 0; switch (curPubUsr.LoginRetInfo.ErrCode) { case -6: case -32: tmpStatCode = 1; //验证码错误 break; case -2: case -3: case -4: tmpStatCode = 2; //密码或账号错误 break; default: tmpStatCode = 3; //其他登陆错误 break; } db.SendTask.UpdateBytaskId(taskId: task.taskId, taskStatus: tmpStatCode, taskEndTime: DateTime.Now, taskRetCode: curPubUsr.LoginRetInfo.ErrCode, taskRetMsg: errMsg); return(false); } }
//登陆,得到 WxPublicUser curPubUsr private bool TryLogin(DbWaitingTask task, Dictionary<Guid, DictPubUser> dictPubUsers, out WxPublicUser curPubUsr, out string errMsg) { var db = Database.Open(); string pubAccount = dictPubUsers[task.uidWxPubUsr].pubAccount; string pubPw = dictPubUsers[task.uidWxPubUsr].pubPw; logger.Log(string.Format("尝试登陆公众号:{0}", pubAccount)); curPubUsr = WxSimulater.ExecLogin(pubAccount, pubPw, string.Empty); if (curPubUsr.IsLogin()) { logger.Log("登陆成功"); errMsg = null; return true; } else { errMsg = WxSimulater.ParseLoginRetInfo(curPubUsr.LoginRetInfo); logger.Log(string.Format("登陆失败,跳过该用户,错误:errCode:{0} {1}", curPubUsr.LoginRetInfo.ErrCode, errMsg)); int tmpStatCode = 0; switch (curPubUsr.LoginRetInfo.ErrCode) { case -6: case -32: tmpStatCode = 1;//验证码错误 break; case -2: case -3: case -4: tmpStatCode = 2;//密码或账号错误 break; default: tmpStatCode = 3;//其他登陆错误 break; } db.SendTask.UpdateBytaskId(taskId: task.taskId, taskStatus: tmpStatCode, taskEndTime: DateTime.Now, taskRetCode: curPubUsr.LoginRetInfo.ErrCode, taskRetMsg: errMsg); return false; } }