protected override GetAuthCodeRD ProcessRequest(DTO.Base.APIRequest <GetAuthCodeRP> pRequest) { //参数验证 if (string.IsNullOrEmpty(pRequest.Parameters.Mobile)) { throw new APIException("请求参数中缺少Mobile或值为空.") { ErrorCode = ERROR_LACK_MOBILE }; } // GetAuthCodeRD rd = new GetAuthCodeRD(); #region 发送短信 string msg; var code = CharsFactory.Create6Char(); var sign = string.Empty; #region 根据客户名称创建签名 //暂时先用阿拉丁,后须改为客户名称 //sign = "阿拉丁"; //sign = CurrentUserInfo.ClientName; if (string.IsNullOrEmpty(pRequest.CustomerID)) { throw new APIException("请求参数中缺少CustomerId或值为空.") { ErrorCode = 121 }; } var bll = new VipBLL(CurrentUserInfo); sign = !string.IsNullOrEmpty(bll.GetSettingValue(CurrentUserInfo.ClientID)) ? bll.GetSettingValue(CurrentUserInfo.ClientID) : "阿拉丁"; #endregion if (!SMSHelper.Send(pRequest.CustomerID, pRequest.Parameters.Mobile, code, sign, out msg)) { //throw new APIException("短信发送失败:" + msg) { ErrorCode = ERROR_SMS_FAILD }; throw new APIException(msg) { ErrorCode = ERROR_SMS_FAILD }; } #endregion #region 保存验证码 int ValidPeriod; var tempstr = System.Configuration.ConfigurationManager.AppSettings["AuthCodeValidPeriod"]; if (string.IsNullOrEmpty(tempstr)) { ValidPeriod = 30; } else { if (!int.TryParse(tempstr, out ValidPeriod)) { ValidPeriod = 30; } } var codebll = new RegisterValidationCodeBLL(base.CurrentUserInfo); codebll.DeleteByMobile(pRequest.Parameters.Mobile); //删除该手机号已有的验证码 var codeEntity = new RegisterValidationCodeEntity() { Code = code, CodeID = Guid.NewGuid().ToString("N"), Mobile = pRequest.Parameters.Mobile, IsValidated = 0, Expires = DateTime.Now.AddMinutes(ValidPeriod) }; codebll.Create(codeEntity); //以新的验证码为准 #endregion return(rd); #region 被替换 //GetAuthCodeRD rd = new GetAuthCodeRD(); //VipEntity entity = null; //#region 验证手机号,如果不存在此手机号的用户则新增会员 //var bll = new VipBLL(base.CurrentUserInfo); //var vip = bll.GetByID(pRequest.UserID); //entity = bll.GetByMobile(pRequest.Parameters.Mobile, pRequest.CustomerID); //if (vip != null) //{ // if (vip.Phone != pRequest.Parameters.Mobile) // { // if (entity != null) // { // if (vip.VIPID != entity.VIPID) // throw new APIException("此手机号已注册") { ErrorCode = ERROR_MOBILE_REGISTERED }; // else // { // entity = vip; // } // } // else // { // entity = vip; // vip.Phone = pRequest.Parameters.Mobile; // bll.Update(entity); // } // } // else // entity = vip; //} //else //{ // entity = bll.GetByMobile(pRequest.Parameters.Mobile, pRequest.CustomerID); // if (entity == null) // { // entity = new VipEntity() // { // Phone = pRequest.Parameters.Mobile, // VipName = pRequest.Parameters.Mobile, // VIPID = Guid.NewGuid().ToString("N"), // Status = 1, // ClientID = pRequest.CustomerID, // VipSourceId = pRequest.Parameters.VipSource.ToString() // }; // bll.Create(entity); // } // else // { // if (string.IsNullOrEmpty(entity.VipName)) // { // entity.VipName = pRequest.Parameters.Mobile; // bll.Update(entity); // } // } //} //#endregion //#region 发送短信 //string msg; //var code = CharsFactory.Create6Char(); //var sign = string.Empty; //#region 根据客户名称创建签名 ////暂时先用阿拉丁,后须改为客户名称 //sign = "阿拉丁"; ////sign = CurrentUserInfo.ClientName; //#endregion //if (!SMSHelper.Send(pRequest.Parameters.Mobile, code, sign, out msg)) //{ // throw new APIException("短信发送失败:" + msg) { ErrorCode = ERROR_SMS_FAILD }; //} //#endregion //#region 保存验证码 //int ValidPeriod; //var tempstr = System.Configuration.ConfigurationManager.AppSettings["AuthCodeValidPeriod"]; //if (string.IsNullOrEmpty(tempstr)) //{ // ValidPeriod = 30; //} //else //{ // if (!int.TryParse(tempstr, out ValidPeriod)) // { // ValidPeriod = 30; // } //} //var codebll = new RegisterValidationCodeBLL(base.CurrentUserInfo); //codebll.DeleteByMobile(entity.Phone); //var codeEntity = new RegisterValidationCodeEntity() //{ // Code = code, // CodeID = Guid.NewGuid().ToString("N"), // Mobile = entity.Phone, // IsValidated = 0, // Expires = DateTime.Now.AddMinutes(ValidPeriod) //}; //codebll.Create(codeEntity); //#endregion //return rd; #endregion }