Esempio n. 1
0
        //登陆,得到 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;
            }
        }