Exemple #1
0
        private void save(string sender, string text, string date)
        {
            DateTime dt = DateTime.Parse(date);//DateTime.ParseExact(date, "yyyyMMddHHmmss", null, System.Globalization.DateTimeStyles.None);

            byte[] b       = Convert.FromBase64String(text);
            string content = Utility.GetHex(b);
            //try
            {
                TX300 x300 = new TX300(content);
                x300.package_to_msg();
                x300.TerminalID = sender + "000";
                //save(x300);
                if (x300.CommandID == 0xBB0F)
                {
                    handleBB0F(sender, x300.TerminalType);
                }

                var SMSInstance = new SmsBLL();
                var sms         = SMSInstance.GetObject();
                sms.SendTime = dt;
                sms.Sender   = sender;
                sms.Data     = text;
                // 这里接收到的都是终端汇报回来的信息
                sms.Type = Common.SMSUtility.SMS_TERMINAL;
                SMSInstance.Add(sms);
            }
        }
Exemple #2
0
        /// <summary>
        /// 处理tracker汇报的数据
        /// </summary>
        /// <param name="obj"></param>
        private void HandleReportData(Api obj)
        {
            var tmp = ParseJson <Account>(obj.content);

            if (null != tmp && !string.IsNullOrEmpty(tmp.data))
            {
                string base64 = HttpUtility.UrlDecode(tmp.data);
                try
                {
                    using (var bll = new SmsBLL())
                    {
                        TB_SMS sms = bll.GetObject();
                        sms.Data   = base64;
                        sms.Sender = tmp.name;
                        sms.Type   = SMSUtility.SMS_TRACKER;
                        bll.Add(sms);
                        ResponseData(0, "Data saved");
                    }
                }
                catch (Exception e)
                {
                    ResponseData(-1, string.Format("Can not handle your [report] request: {0}", e.Message));
                }
            }
            else
            {
                ResponseData(-1, "Cannot handler data report request with error content.");
            }
        }
Exemple #3
0
        public ActionResult SendSms(string telphone)
        {
            // 短信应用SDK AppID
            int appid = 1400247845;

            // 短信应用SDK AppKey
            string appkey = "e4f356f4cf5927e06994b73df3fa86c5";

            // 需要发送短信的手机号码
            //  string[] phoneNumbers = { "139094236879", "18193169220" };
            // string smsPhone = "13909426879";
            // 短信模板ID,需要在短信应用中申请
            int templateId = 444799; //

            // 签名
            string smsSign = "五点科技"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名, 签名参数使用的是`签名内容`,而不是`签名ID`
            //验证码
            Random r1      = new Random();
            int    smsCode = r1.Next(100000, 999999);
            //消息
            string smsMeg = "甘肃土木建筑学年会登录";


            //单发短信
            try
            {
                SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
                var             result  = ssender.send(0, "86", "" + telphone + "",
                                                       "【" + smsSign + "】验证码" + smsCode + ",用于" + smsMeg + ",5分钟内有效。验证码提供给他人可能导致帐号被盗,请勿泄露,谨防被骗。", "", "");
                Console.WriteLine(result);
                ViewBag.code = smsCode;
                ViewBag.msg  = "消息已发送!";
                Sms obj = new Sms()
                {
                    Code     = smsCode,
                    TelPhone = telphone
                };
                var result2 = new SmsBLL().AddCoreInfo(obj);
            }

            catch (JSONException e)
            {
                Console.WriteLine(e);
                ViewBag.msg = e;
            }
            catch (HTTPException e)
            {
                Console.WriteLine(e);
                ViewBag.msg = e;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                ViewBag.msg = e;
            }

            return(View("Reg"));
        }
Exemple #4
0
 public async Task <IActionResult> SendSmsCode([FromServices] SmsBLL service, string mobile = "", string sendFor = "")
 {
     try {
         return(Json(await service.SendVerifyCode(mobile, sendFor)));
     }
     catch (Exception exp) {
         return(MyJsonResultError(exp));
     }
 }
        /// <summary>
        /// 每5秒获取一次未处理的SMS数据
        /// </summary>
        public void CheckSMSData()
        {
            if (_lastCheckSMSData.Subtract(DateTime.Now).Duration().TotalSeconds < 5)
            {
                return;
            }
            _lastCheckSMSData = DateTime.Now;

            using (var bll = new SmsBLL())
            {
                var sms = bll.Find(f => f.Handled == false);
                if (null != sms)
                {
                    using (var data = new AsyncUserDataBuffer())
                    {
                        data.Buffer       = Convert.FromBase64String(sms.Data);
                        data.DataType     = AsyncUserDataType.ReceivedData;
                        data.IP           = "";
                        data.PackageType  = AsyncDataPackageType.SMS;
                        data.Port         = 0;
                        data.ReceiveTime  = sms.SendTime.Value;
                        data.SocketHandle = 0;
                        ShowUnhandledMessage(format("{0}SMS data from {1}: {2}", Now, sms.Sender, CustomConvert.GetHex(data.Buffer)));
                        // 如果数据中的sim号码是000000000000则将sender直接放入其中   2015/09/02 15:18
                        if (data.Buffer[9] == 0 && data.Buffer[10] == 0)
                        {
                            byte[] t = SimToByte(sms.Sender);
                            Buffer.BlockCopy(t, 0, data.Buffer, 9, 6);
                            t = null;
                        }
                        HandleData(data);
                    }
                    bll.Update(f => f.id == sms.id, act => { act.Handled = true; });
                }
            }
        }