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); }
/// <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()}"); } }
/// <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()}"); } }