Esempio n. 1
0
        private static string AndroidPushAll(string ticker, string title, string text, Dictionary <string, string> extra)
        {
            var p       = new Payload("notification", ticker, title, text, extra);
            var type    = DeviceType.Andriod;
            var url     = "http://msg.umeng.com/api/send";
            var android = new Android()
            {
                type = "broadcast", device_tokens = "", payload = p, description = "android推送", production_mode = "true", policy = new Policy()
                {
                    expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                }
            };

            SetDataHelper <Android> .RemoveStrNull(android);

            var sign     = YouMengHelper.GetSign(type, url, android);
            var postbody = JsonHelper <IPush> .GetJson(android);

            var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
            var data    = WebHelper.DoPost(fullurl, postbody);

            return(data);
        }
Esempio n. 2
0
        /// <summary>
        /// 苹果推送
        /// </summary>
        /// <param name="title"></param>
        /// <param name="text"></param>
        /// <param name="ticker"></param>
        /// <param name="category"></param>
        /// <param name="extra"></param>
        /// <returns></returns>
        private static string ApplePushAll(string title, string text, string ticker, string category, Dictionary <string, string> extra)
        {
            var url = "http://msg.umeng.com/api/send";
            var p   = new IOSPayLoad(title, text, ticker, category, extra);

            var ios = new IOS("broadcast")
            {
                payload         = p,
                description     = "苹果推送",
                production_mode = "true",
                policy          = new Policy()
                {
                    expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                }
            };

            SetDataHelper <IOS> .RemoveStrNull(ios);

            var sign     = YouMengHelper.GetSign(DeviceType.IOS_APPStore, url, ios);
            var postbody = JsonHelper <IPush> .GetJson(ios);

            var dt = new Dictionary <string, string>();

            var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;

            dt.Add("sign", sign);
            try
            {
                var data = WebHelper.DoPost(fullurl, postbody);
                return(data);
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                return(string.Empty);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 报警方法
        /// </summary>
        /// <param name="socket"></param>
        /// <param name="info"></param>
        /// <param name="bys"></param>
        private void BaoJinMethod(Socket socket, MacIPVersionInfo info, byte[] ds)
        {
            if (ds.Length == 11)
            {
                var id     = ds.ToList().GetRange(4, 6).ToArray();
                var hexIds = StrHelper.byteToHexStr(id);
                var id10   = Convert.ToInt32(hexIds, 16);


                var sta = DALDefenseStatus.DefenseStatusGetByDeviceId(id10);
                if ((sta == null) || (sta != null && sta.status == 1))
                {
                    ///警报事件
                    if (ds[3] == 4)
                    {
                        if (id10 > 0)
                        {
                            var device = DALYZKDeviceInfo_UserInfocs.YZKDeviceInfo_UserInfo_GetDataByRecordid(id10 + "");
                            if (device != null)
                            {
                                var device_mac = device.device_mac;

                                DALNotifyException.NotifyExceptionAddX(new NotifyException()
                                {
                                    bxkLabel      = device.bxk_label,
                                    deviceId      = device.deviceinfo_userinfo_id + "",
                                    deviceSetName = device.device_setname,
                                    recordTime    = DateTime.Now,
                                    uid           = device.uid,
                                    alarm_type    = 0
                                });

                                var tokens = DALYZKPushToken.YZKPushToken_GetByUid(device.uid).FindAll(a => a.devicetype != 3);
                                foreach (var token in tokens)
                                {
                                    if (token != null)
                                    {
                                        if (token.devicetype == 0)
                                        {
                                            var devicetoken = token.devicetoken;
                                            if (!string.IsNullOrEmpty(devicetoken))
                                            {
                                                var alert    = "";
                                                var category = "";
                                                var ticker   = "";
                                                var title    = "设备报警通知";
                                                var text     = string.Format("报警通知,您房间{0}的{1}设备发生报警,请留意", device.bxk_label, device.device_setname);
                                                var dt       = new Dictionary <string, string>
                                                {
                                                    { "type", "8" },
                                                    { "uid", device.uid }
                                                };
                                                var pushData = YouMengHelper.makePush(alert, category, DeviceType.Android_Center, devicetoken, ticker, title, text, dt);
                                            }

                                            //DALNotifyException.NotifyExceptionGet(d.deviceinfo_userinfo_id + "", (int)AlarmType.DEFAULT);
                                        }
                                        else
                                        {
                                            var devicetoken = token.devicetoken;
                                            if (!string.IsNullOrEmpty(devicetoken))
                                            {
                                                var alert    = "";
                                                var category = "";
                                                var ticker   = "";
                                                var title    = "设备报警通知";
                                                var text     = string.Format("报警通知,您房间{0}的{1}设备发生报警,请留意", device.bxk_label, device.device_setname);
                                                var dt       = new Dictionary <string, string>();
                                                dt.Add("type", "8");
                                                dt.Add("uid", device.uid);
                                                var pushData = YouMengHelper.makePush(alert, category, DeviceType.YZK_IOS_APPStore, devicetoken, ticker, title, text, dt);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    ///表明是需要短信通知的报警事件
                    else if (ds[3] == 5)
                    {
                        #region 短信通知报警设置
                        ///4-9
                        ///id

                        if (id10 > 0)
                        {
                            var device = DALYZKDeviceInfo_UserInfocs.YZKDeviceInfo_UserInfo_GetDataByRecordid(id10 + "");
                            if (device != null)
                            {
                                var room     = device.room_id;
                                var home_id  = device.home_id;
                                var roomName = string.Empty;
                                var uid      = device.uid;
                                if (!string.IsNullOrEmpty(uid))
                                {
                                    var users = DALYZKUser.YZKUser_GetByuuid(uid);
                                    if (users != null)
                                    {
                                        var device_setName = device.device_setname;
                                        var bxk_label      = device.bxk_label.Replace("-", "");
                                        //bxk_label就是xxx房间, 去掉bxk_label中的“_”, xxx设备是setname字段
                                        //var msg = string.Format("报警通知,您{0}房间的{1}设备发生报警事件,请留意",bxk_label,device_setName);
                                        var mobile = users.mobile;
                                        var dfname = DALDefenseStatus.DefenseStatus_GetByHomeId(home_id);
                                        if (dfname != null && dfname.status == 1)
                                        {
                                            YZKMsgHelper.NotifyDanger(mobile, bxk_label, device_setName);
                                            ///记录异常信息
                                            DALNotifyException.NotifyExceptionAdd(new NotifyException()
                                            {
                                                bxkLabel      = bxk_label,
                                                deviceSetName = device_setName,
                                                uid           = uid,
                                                deviceId      = device.deviceinfo_userinfo_id + ""
                                            });
                                        }
                                    }
                                }
                            }
                        }

                        #endregion
                    }
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 推送
        /// </summary>
        /// <param name="alert"></param>
        /// <param name="category"></param>
        /// <param name="type"></param>
        /// <param name="device_tokens"></param>
        /// <param name="ticker"></param>
        /// <param name="title"></param>
        /// <param name="text"></param>
        /// <param name="extra"></param>
        /// <returns></returns>
        public static string makePush(string alert, string category, DeviceType type, string device_tokens, string ticker, string title, string text, Dictionary <string, string> extra)
        {
            var url = "http://msg.umeng.com/api/send";

            if (type == DeviceType.IOS)
            {
                var p = new IOSPayLoad(title, text, ticker, category);

                var ios = new IOS()
                {
                    device_tokens   = device_tokens,
                    payload         = p,
                    description     = "苹果推送",
                    production_mode = "false",
                    policy          = new Policy()
                    {
                        expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                    }
                };
                SetDataHelper <IOS> .RemoveStrNull(ios);

                var sign     = YouMengHelper.GetSign(DeviceType.IOS, url, ios);
                var postbody = JsonHelper <IPush> .GetJson(ios);

                var dt = new Dictionary <string, string>();

                var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
                dt.Add("sign", sign);
                var data = WebHelper.DoPost(fullurl, postbody);
                return(data);
            }
            else if (type == DeviceType.YZK_IOS_APPStore)
            {
                var p = new IOSPayLoad(title, text, ticker, category, extra);

                var ios = new IOS(type)
                {
                    device_tokens   = device_tokens,
                    payload         = p,
                    description     = "苹果推送",
                    production_mode = "false",
                    policy          = new Policy()
                    {
                        expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                    }
                };
                SetDataHelper <IOS> .RemoveStrNull(ios);

                var sign     = YouMengHelper.GetSign(type, url, ios);
                var postbody = JsonHelper <IPush> .GetJson(ios);

                var dt = new Dictionary <string, string>();

                var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
                dt.Add("sign", sign);
                var data = WebHelper.DoPost(fullurl, postbody);
                return(data);
            }
            else if (type == DeviceType.Andriod)
            {
                var p = new Payload("notification", ticker, title, text, extra);

                var android = new Android()
                {
                    type = "listcast", device_tokens = device_tokens, payload = p, description = "android推送", production_mode = "false", policy = new Policy()
                    {
                        expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                    }
                };
                SetDataHelper <Android> .RemoveStrNull(android);

                var sign     = YouMengHelper.GetSign(type, url, android);
                var postbody = JsonHelper <IPush> .GetJson(android);

                var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
                var data    = WebHelper.DoPost(fullurl, postbody);
                return(data);
            }
            else if (type == DeviceType.Android_Center)
            {
                var p = new Payload("notification", ticker, title, text, extra);

                var android = new Android(type)
                {
                    type = "listcast", device_tokens = device_tokens, payload = p, description = "android推送", production_mode = "false", policy = new Policy()
                    {
                        expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                    }
                };
                SetDataHelper <Android> .RemoveStrNull(android);

                var sign     = YouMengHelper.GetSign(type, url, android);
                var postbody = JsonHelper <IPush> .GetJson(android);

                var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
                var data    = WebHelper.DoPost(fullurl, postbody);
                return(data);
            }

            return(string.Empty);
        }
Esempio n. 5
0
        /// <summary>
        /// 推送
        /// </summary>
        /// <param name="alert"></param>
        /// <param name="category"></param>
        /// <param name="type"></param>
        /// <param name="device_tokens"></param>
        /// <param name="ticker"></param>
        /// <param name="title"></param>
        /// <param name="text"></param>
        /// <param name="extra"></param>
        /// <returns></returns>
        /// //                        (alert, categrory, typex, dtoken.devicetoken, ticker, title, text, extra_typex, mac, localip, action);
        public static string makePush(string alert, string category, DeviceType type, string device_tokens, string ticker, string title, string text, ExtraType extraType, params string[] extradatas)
        {
            var extra = new Dictionary <string, string>();

            if (extraType == ExtraType.CommonPush)
            {
                extra.Add("type", "0");
                extra.Add("servertime", TimeHelper.JavaTime(DateTime.Now) + "");
            }
            else if (extraType == ExtraType.ASKHelp)
            {
                if (extradatas.Length == 3)
                {
                    //增加conver_img 铭牌照片 component_img 零件照片, 点击消息可选择查看铭牌照片  零件照片
                    extra.Add("conver_img", extradatas[0]);
                    extra.Add("component_img", extradatas[1]);
                    extra.Add("skuid", extradatas[2]);
                    extra.Add("type", "3");
                    extra.Add("servertime", TimeHelper.JavaTime(DateTime.Now) + "");
                }

                else if (extradatas.Length == 7)
                {
                    //增加conver_img 铭牌照片 component_img 零件照片, 点击消息可选择查看铭牌照片  零件照片
                    extra.Add("conver_img", extradatas[0]);
                    extra.Add("component_img", extradatas[1]);
                    extra.Add("skuid", extradatas[2]);
                    extra.Add("type", "3");
                    extra.Add("price", extradatas[3]);
                    extra.Add("brand", extradatas[4]);
                    extra.Add("bigclass", extradatas[5]);
                    extra.Add("name", extradatas[6]);
                    extra.Add("servertime", TimeHelper.JavaTime(DateTime.Now) + "");
                }
            }
            else if (extraType == ExtraType.ADPush)
            {
                if (extradatas.Length == 1)
                {
                    extra.Add("url", extradatas[0]);
                    extra.Add("type", "2");
                    extra.Add("servertime", TimeHelper.JavaTime(DateTime.Now) + "");
                }
            }
            else if (extraType == ExtraType.OrderPush)
            {
                if (extradatas.Length == 1)
                {
                    extra.Add("orderno", extradatas[0]);
                    extra.Add("type", "1");
                    extra.Add("servertime", TimeHelper.JavaTime(DateTime.Now) + "");
                }
            }
            else if (extraType == ExtraType.CenterNotify_3)
            {
                ///3个参数
                if (extradatas.Length == 3)
                {
                    extra.Add("sync_notify_type", extradatas[0]);
                    extra.Add("record_id", extradatas[1]);
                    extra.Add("action", extradatas[2]);
                    extra.Add("type", "1");
                    extra.Add("servertime", TimeHelper.JavaTime(DateTime.Now) + "");
                }
            }
            else if (extraType == ExtraType.CenterNotify_online_4)
            {
                if (extradatas.Length >= 4)
                {
                    extra.Add("sync_notify_type", extradatas[0]);
                    extra.Add("mac", extradatas[1]);
                    extra.Add("localip", extradatas[2]);
                    extra.Add("action", extradatas[3]);
                    extra.Add("type", "1");
                    extra.Add("servertime", TimeHelper.JavaTime(DateTime.Now) + "");
                }
            }


            var url = "http://msg.umeng.com/api/send";

            if (type == DeviceType.IOS)
            {
                var p = new IOSPayLoad(title, text, ticker, category, extra);

                var ios = new IOS()
                {
                    device_tokens   = device_tokens,
                    payload         = p,
                    description     = "苹果推送",
                    production_mode = "true",
                    policy          = new Policy()
                    {
                        expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                    }
                };
                SetDataHelper <IOS> .RemoveStrNull(ios);

                var sign     = YouMengHelper.GetSign(DeviceType.IOS, url, ios);
                var postbody = JsonHelper <IPush> .GetJson(ios);

                var dt = new Dictionary <string, string>();

                var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
                dt.Add("sign", sign);
                try
                {
                    var data = WebHelper.DoPost(fullurl, postbody);
                    return(data);
                }
#pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
                catch (Exception ex)
#pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
                {
                    return(string.Empty);
                }
            }
            else if (type == DeviceType.Andriod)
            {
                var p       = new Payload("notification", ticker, title, text, extra);
                var android = new Android()
                {
                    type = "listcast", device_tokens = device_tokens, payload = p, description = "android推送", production_mode = "true", policy = new Policy()
                    {
                        expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                    }
                };
                SetDataHelper <Android> .RemoveStrNull(android);

                var sign     = YouMengHelper.GetSign(type, url, android);
                var postbody = JsonHelper <IPush> .GetJson(android);

                var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
                var data    = WebHelper.DoPost(fullurl, postbody);
                return(data);
            }

            ///中控设备
            else if (type == DeviceType.Android_Center)
            {
                var cust_json = JsonHelper <Dictionary <string, string> > .GetJson(extra);

                var p = new Payload("message", ticker, title, text, extra, cust_json);
                ///中控设备的推送
                var appkey  = "595312d182b63512f90019bc";
                var android = new Android(appkey)
                {
                    type            = "listcast",
                    device_tokens   = device_tokens,
                    payload         = p,
                    description     = "android推送",
                    production_mode = "true",
                    policy          = new Policy()
                    {
                        expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                    }
                };
                SetDataHelper <Android> .RemoveStrNull(android);

                var sign     = YouMengHelper.GetSign(type, url, android);
                var postbody = JsonHelper <IPush> .GetJson(android);

                var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
                var data    = WebHelper.DoPost(fullurl, postbody);
                return(data);
            }
            else if (type == DeviceType.IOS_APPStore)
            {
                var p = new IOSPayLoad(title, text, ticker, category, extra);

                var ios = new IOS_AppStore()
                {
                    device_tokens   = device_tokens,
                    payload         = p,
                    description     = "苹果推送",
                    production_mode = "true",
                    policy          = new Policy()
                    {
                        expire_time = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss")
                    }
                };
                SetDataHelper <IOS_AppStore> .RemoveStrNull(ios);

                var sign     = YouMengHelper.GetSign(DeviceType.IOS_APPStore, url, ios);
                var postbody = JsonHelper <IPush> .GetJson(ios);

                var dt = new Dictionary <string, string>();

                var fullurl = "http://msg.umeng.com/api/send?sign=" + sign;
                dt.Add("sign", sign);
                try
                {
                    var data = WebHelper.DoPost(fullurl, postbody);
                    return(data);
                }
                catch
                {
                    return(string.Empty);
                }
            }
            return(string.Empty);
        }