JLChen
2020-11-13 017af840d60fd6a56da9711308bf8239cb7fc1e6
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -91,97 +91,164 @@
            return result;
        }
        #region ■ 通用请求接口_______________________
        /// <summary>
        /// 根椐用户账号获取注册区域 免登录 // 检测账号是否注册也用这个接口
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        public ResponsePackNew GetRegionByAccount(string account)
        {
            var requestJson = HttpUtil.GetSignRequestJson(new RegionByAccountObj() { account = account });
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_GetRegionByAccount, requestJson);
        }
        /// <summary>
        /// 刷新Token
        /// </summary>
        /// <returns></returns>
        public bool RefreshToken()
        {
            var requestJson = HttpUtil.GetSignRequestJson(new RefreshTokenObj()
            {
                refreshToken = MainPage.LoginUser.refreshToken,
            });
            var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Login, requestJson);
            if (revertObj.Code.ToUpper() == HttpUtil.SUCCESS_CODE)
            {
                var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(revertObj.Data.ToString());
                MainPage.LoginUser.loginTokenString = revertData.headerPrefix + revertData.accessToken;
                MainPage.LoginUser.lastTime = DateTime.Now;
                MainPage.LoginUser.SaveUserInfo();
                return true;
            }
            return false;
        }
        #endregion
        #region 注册、登录部分
        /// <summary>
        /// 获取请求提交的语言参数
        /// </summary>
        public string GetPostLanguageType()
        {
            return Language.CurrentLanguage == "Chinese" ? LanguageTypeEnum.CHINESE.ToString() : LanguageTypeEnum.ENGLISH.ToString();
        }
        /// <summary>
        /// 通用 发送验证码方法
        /// </summary>
        /// <param name="verifyType">1:注册 2:找回密码 3:登陆 4:绑定</param>
        /// <param name="account">邮箱或者手机号</param>
        /// <param name="isPhone">是否手机</param>
        /// <param name="phoneZoneCode">手机国家区号</param>
        /// <returns></returns>
        public ResponsePackNew VerificationCodeSend(VerifyType verifyType, string account, bool isPhone = false, string phoneZoneCode = "86")
        {
            var requestObj = new VerifyCodeSendObj()
            {
                verifyType = (int)verifyType,
                languageType = GetPostLanguageType()
            };
            // 是否是手机
            if (isPhone)
            {
                requestObj.phone = account;
                requestObj.phonePrefix = phoneZoneCode;
            }
            else
            {
                requestObj.mail = account;
            }
            // 超时时间设置为20秒,应该测试海外服务器发送验证码响应时间很久
            var requestJson = HttpUtil.GetSignRequestJson(requestObj);
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Verification_Send, requestJson, "", "", HttpUtil.TIME_OUT_LONG);
        }
        /// <summary>
        /// 账号登录-使用密码
        /// </summary>
        public ResponsePack LoginByPassword(string account, string password)
        /// <param name="account">账号</param>
        /// <param name="password">密码</param>
        /// <returns></returns>
        public ResponsePackNew LoginByPassword(string account, string password)
        {
            string jsonString = "{" +
                                "\"Account\":" + "\"" + account + "\"" + "," +
                                "\"Password\":" + "\"" + password + "\"" +
                                "}";
            return RequestHttps($"{severAddress}/ZigbeeUsers/Login", jsonString, false);
            var requestJson = HttpUtil.GetSignRequestJson(new LoginObj()
            {
                account = account,
                loginPwd = password
            });
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Login, requestJson);
        }
        /// <summary>
        /// 验证码登录
        /// </summary>
        public ResponsePack LoginValidCode(string account,string vCode)
        /// <param name="account">账号</param>
        /// <param name="vCode">验证码</param>
        /// <returns></returns>
        public ResponsePackNew LoginValidCode(string account, string vCode)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("Account", account);
            d.Add("Code", vCode);
            d.Add("Language", Language.CurrentLanguage);
            d.Add("AreaCode", "86");
            var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
            return RequestHttps($"{severAddress}/ZigbeeUsers/LoginValidCode", jsonString, false);
        }
        /// <summary>
        /// 手机号码注册
        /// </summary>
        /// <param name="mobileNumber"></param>
        /// <param name="password"></param>
        /// <param name="language"></param>
        public ResponsePack RegisterPhone(string mobileNumber, string password, string language)
            var requestJson = HttpUtil.GetSignRequestJson(new LoginObj()
        {
            string jsonString = "{" +
                                "\"Account\":" + "\"" + mobileNumber + "\"" + "," +
                                "\"Password\":" + "\"" + password + "\"" + "," +
                                "\"Language\":" + "\"" + language + "\"" +
                                "\"AreaCode\":" + "\"" + "86" + "\"" +
                                "}";
            return RequestHttps($"{severAddress}/SignIn", jsonString, false);
        }
        public ResponsePack GetAreaCode()
        {
            string requestJson = "{}";
            return RequestHttps($"{severAddress}/ZigbeeUsers/GetAreaCode", requestJson, false);
                account = account,
                verifyCode = vCode,
                grantType = "verify"
            });
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Login, requestJson);
        }
        /// <summary>
        /// 验证短信或者邮箱验证码,之后注册
        /// </summary>
        /// <param name="account">账号</param>
        /// <param name="account">邮箱或者手机号</param>
        /// <param name="password">密码</param>
        /// <param name="entryPassword">确认密码</param>
        /// <param name="code">验证码</param>
        /// <param name="areaCode"></param>
        /// <param name="isPhone">是否手机</param>
        /// <returns></returns>
        public ResponsePack ValidataCodeAndRegister(string account, string password, string entryPassword, string code, int areaCode)
        public ResponsePackNew ValidataCodeAndRegister(string account, string password, string code, bool isPhone = false)
        {
            //var requestObj = new ValidateSmsCodeObj() { Phone = accout, Code = code };
            //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
            string requestJson = "{" +
                                "\"Account\":" + "\"" + account + "\"" + "," +
                                "\"Password\":" + "\"" + password + "\"" + "," +
                                "\"EnterPassword\":" + "\"" + entryPassword + "\"" + "," +
                                "\"Language\":" + "\"" + Language.CurrentLanguage.ToLower() + "\"" + "," +
                                "\"Code\":" + "\"" + code + "\"" + "," +
                                "\"RegisterSoruce\":" + 0 + "," +
                                "\"AreaCode\":" + 86 +
                                "}";
            return RequestHttps($"{severAddress}/ZigbeeUsers/ValidataCodeAndRegisterAccount", requestJson, false);
            var requestObj = new RegisterObj() { loginPwd = password, verifyCode = code, memberName = account };
            if (isPhone)
            {
                requestObj.memberPhone = account;
        }
            else
            {
                requestObj.memberEmail = account;
            }
            var requestJson = HttpUtil.GetSignRequestJson(requestObj);
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_Register, requestJson);
        }
        /// <summary>
        /// 获取注册验证码
        /// 忘记密码,重置密码
        /// </summary>
        public ResponsePack GetRegisterVerCode(string account)
        /// <param name="account">邮箱或者手机号</param>
        /// <param name="password">新密码</param>
        /// <param name="vCode">验证码</param>
        /// <param name="isPhone">是否手机账号</param>
        /// <returns></returns>
        public ResponsePackNew ForgetPassword(string account, string password, string vCode, bool isPhone)
        {
            string jsonString = "{" +
                                "\"Account\":" + "\"" + account + "\"" + "," +
                                "\"Company\":" + MainPage.Company + "," +
                                "\"Language\":" + "\"" + Language.CurrentLanguage.ToLower() + "\"" + "," +
                                "\"AreaCode\":" + 86 +
                                "}";
            return RequestHttps($"{severAddress}/ZigbeeUsers/RegisterSendVerCode", jsonString, false);
            var requestObj = new ForgetPwdObj() { verifyCode = vCode, loginPwd = password };
            if (isPhone)
            {
                //手机忘记密码
                requestObj.memberPhone = account;
        }
            else
            {
                //邮箱忘记密码
                requestObj.memberEmail = account;
            }
            var requestJson = HttpUtil.GetSignRequestJson(requestObj);
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_ForgetPwd, requestJson);
        }
        
@@ -230,6 +297,8 @@
            return RequestHttps($"{severAddress}/ZigbeeUsers/ValidatorCode", jsonString, false);
        }
        /// <summary>
        /// 重设密码
        /// </summary>
@@ -257,7 +326,7 @@
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d);
            var revertObj = RequestHttps($"{severAddress}/ZigbeeUsers/GetAccountInfo", requestJson, true);
            if (revertObj.StateCode.ToUpper() == "SUCCESS")
            if (revertObj.StateCode.ToUpper() == HttpUtil.SUCCESS_CODE)
            {
                var dataStr = JObject.FromObject(revertObj.ResponseData);
                //"DistributedMark": "96439601-fd26-4768-8440-1d9dfa32c109",  < !--帐号Id-- >
@@ -278,7 +347,8 @@
                        fs.Flush();
                        MainPage.LoginUser.headImagePagePath = filePath;
                    }
                } catch (Exception ex)
                }
                catch (Exception ex)
                {
                    MainPage.Log($"download headImage error : {ex.Message}");
                }
@@ -364,7 +434,7 @@
                                "}";
            var responsePack = RequestHttps($"{severAddress}/App/GetHomePager", jsonString,false);
            if (responsePack.StateCode.ToUpper() == "SUCCESS")
            if (responsePack.StateCode.ToUpper() == HttpUtil.SUCCESS_CODE)
            {
                var dataStr = JObject.FromObject(responsePack.ResponseData);
                //没有住宅
@@ -674,7 +744,8 @@
                    }
                    System.Threading.Thread.Sleep(1000);
                }
                Shared.Application.RunOnMainThread(() => {
                Shared.Application.RunOnMainThread(() =>
                {
                    try
                    {
                        HDL_ON.UI.HomePage.LoadEvent_RefreshAir();