Exemplo n.º 1
0
        private PushResultModel Send(PushSendRegidModel messages)
        {
            var ret = new PushResultModel();

            if (messages == null || string.IsNullOrEmpty(_appSecret))
            {
                return(ret);
            }
            var contentType = "application/x-www-form-urlencoded;";

            var miPushUrlType = (MiPushUrlEnum)1;
            var urlChile      = miPushUrlType.GetPushUrl();
            var url           = Path.Combine(MiPushBaseUrl, urlChile);

            if (messages != null)
            {
                if (!string.IsNullOrEmpty(messages.payload))
                {
                    messages.payload = System.Web.HttpUtility.UrlEncode(messages.payload);
                }
                var postParams = GetProperties <PushSendRegidModel>(messages);
                var retString  = HttpUtil.HttpPost(url, postParams, _appSecret);
                if (!string.IsNullOrEmpty(retString))
                {
                    ret = JsonConvert.DeserializeObject <PushResultModel>(retString);
                }
            }

            return(ret);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 给不同的用户推送同一条消息
        /// </summary>
        /// <param name="message"></param>
        /// <param name="tokens"></param>
        private void SendUniformMessage(PushPluginMessage message, IEnumerable <TokenModel> tokens)
        {
            try
            {
                _log.Info($"MiPush插件开始执行一对多推送,数量: {tokens.Count()}");

                var pushMessage = new PushMessageModel()
                {
                    title   = message.Title,
                    content = message.Message,
                    url     = message.ClientActionUrl,
                    action  = message.ClientAction
                };
                var sendData = new PushSendRegidModel()
                {
                    registration_id         = string.Join(",", tokens.Select(p => p.Token)),
                    payload                 = JsonConvert.SerializeObject(pushMessage),
                    restricted_package_name = RestrictedPackageName,
                    pass_through            = message.PassThrough,
                    title       = message.Title,
                    description = message.Message,
                    notify_type = -1
                };
                var sentResult = Send(sendData);

                if (sentResult.result.Equals("ok"))
                {
                    foreach (var tokenModel in tokens)
                    {
                        PushSucess(tokenModel.BatchNo);
                    }
                }
                else
                {
                    foreach (var tokenModel in tokens)
                    {
                        PushFail(tokenModel.BatchNo);
                    }
                }

                _log.Info($"MiPush插件一对多推送发送完毕,数量: {tokens.Count()}");
            }
            catch (Exception ex)
            {
                _log.Error($"Android插件消息推送异常{ex},数量:{tokens.Count()}");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 给不同的用户推送不同的消息
        /// </summary>
        /// <param name="messages"></param>
        /// <returns></returns>
        private void SendDiffMessage(IEnumerable <PushPluginMessage> messages)
        {
            try
            {
                _log.Info($"MiPush插件开始执行多对多推送,数量: {messages.Count()}");

                foreach (var pushPluginMessage in messages)
                {
                    var pushMessage = new PushMessageModel()
                    {
                        title   = pushPluginMessage.Title,
                        content = pushPluginMessage.Message,
                        url     = pushPluginMessage.ClientActionUrl,
                        action  = pushPluginMessage.ClientAction
                    };
                    var sendData = new PushSendRegidModel()
                    {
                        registration_id         = string.Join(",", pushPluginMessage.Token),
                        payload                 = JsonConvert.SerializeObject(pushMessage),
                        restricted_package_name = RestrictedPackageName,
                        pass_through            = pushPluginMessage.PassThrough,
                        title       = pushPluginMessage.Title,
                        description = pushPluginMessage.Message,
                        notify_type = -1
                    };
                    var sentResult = Send(sendData);

                    if (sentResult.result.Equals("ok"))
                    {
                        PushSucess(pushPluginMessage.BatchNo);
                    }
                    else
                    {
                        PushFail(pushPluginMessage.BatchNo);
                    }
                }

                _log.Info($"MiPush插件多对多推送发送完毕,数量: {messages.Count()}");
            }
            catch (Exception ex)
            {
                _log.Error($"Android插件消息推送异常{ex},数量:{messages.Count()}");
            }
        }