Ejemplo n.º 1
0
        /// <summary>
        /// 获取手机验证码
        /// </summary>
        public void GetSMSCode()
        {
            using (ProxyBE p = new ProxyBE())
            {
                try
                {
                    string phone = Request["phone"];
                    if (string.IsNullOrEmpty(phone))
                    {
                        throw new Exception("手机号不能为空");
                    }
                    Partner partnerModel = p.Client.GetPartnerByMobile(SenderUser, phone);
                    if (partnerModel != null)
                    {
                        throw new Exception("该手机号码已经被注册");
                    }

                    string smsCode    = SMSHelper.GetRandom(6);
                    bool   isComplete = false;
                    //短信验证码限制:小于等于 1天/5次 5条/小时 累计10条/天
                    string message = SMSHelper.SendMessage(phone, smsCode, out isComplete);
                    if (isComplete)
                    {
                        // 将手机验证码存入session
                        SetCacheSMSCode(smsCode);

                        //记录手机注册短信到数据库表
                        SMSLog smsLog = new SMSLog()
                        {
                            ID      = Guid.NewGuid(),
                            Phone   = phone,
                            Message = smsCode,
                            Created = DateTime.Now,
                            Status  = true
                        };
                        SaveSMSLogArgs args = new SaveSMSLogArgs();
                        args.SMSLog = smsLog;
                        p.Client.SaveSMSLog(SenderUser, args);

                        //短信日志
                        WriteSuccess();
                    }
                    else
                    {
                        throw new Exception("发送失败," + message);
                    }
                }
                catch (Exception ex)
                {
                    WriteError(ex.Message, ex);
                }
            }
        }
Ejemplo n.º 2
0
 public void SaveSMSLog(Sender sender, SaveSMSLogArgs args)
 {
     try
     {
         using (ObjectProxy op = new ObjectProxy(true))
         {
             op.InsertSMSLog(args.SMSLog);
             op.CommitTransaction();
         }
     }
     catch (Exception ex)
     {
         PLogger.LogError(ex);
         throw ex;
     }
 }