/// <summary> /// 判断预览消息发送是否成功。 /// </summary> /// <param name="sendWXPreviewMessageResponseModel"></param> /// <returns></returns> public static bool IsPreviewMessageSentSuccessfully(SendWXPreviewMessageResponseModel sendWXPreviewMessageResponseModel) { bool isSuccess = false; //判断是否成功 if (sendWXPreviewMessageResponseModel != null && sendWXPreviewMessageResponseModel.Ret == 0) //不为空,并且错误码为 0时 { isSuccess = true; } return(isSuccess); }
/// <summary> /// 判断是否为无效的推送号。 /// </summary> /// <param name="sendWXPreviewMessageResponseModel"></param> /// <returns></returns> private static bool IsInvalidPushNo(SendWXPreviewMessageResponseModel sendWXPreviewMessageResponseModel) { var isInvalidPushNo = false; if (sendWXPreviewMessageResponseModel == null || sendWXPreviewMessageResponseModel.Ret == 64501 || sendWXPreviewMessageResponseModel.Ret == 64502 || sendWXPreviewMessageResponseModel.Ret == 64503 || sendWXPreviewMessageResponseModel.Ret == 10703 || sendWXPreviewMessageResponseModel.Ret == -20000 || sendWXPreviewMessageResponseModel.Ret == -2 || sendWXPreviewMessageResponseModel.Ret == -1 ) { isInvalidPushNo = true; } return(isInvalidPushNo); }
private static IEnumerable <WXPublicAccountBlockStatusModel> SetPreviewMessageSuccess(string apiBaseUrl, int serverID, Proc_GetRobotServerMessageQueueForWXRobot_Result mq, SendWXPreviewMessageResponseModel sendWXPreviewMessageResponseModel, IEnumerable <WXPublicAccountBlockStatusModel> wxPublicAccountBlockStatuses) { #region 状态此消息队列状态为“已发送”【注:此接口,已经自动把公众账号修改为Unblocked状态,所以不用专门更新Unblock状态,以减少跟数据库的请求次数】 var dataForUpdateMessageQueueStatusToSent = string.Format("serverID={0}&messageQueueIDs={1}&AppMsgIDs={2}", serverID, mq.ID, sendWXPreviewMessageResponseModel.AppMsgID); var updateMessageQueueStatusToSentString = _httper.Post(string.Format("{0}/api/zcooApi/UpdateMessageQueueStatusToSent", apiBaseUrl), dataForUpdateMessageQueueStatusToSent); //得到返回Model var updateMessageQueueStatusToSentResponseModel = Newtonsoft.Json.JsonConvert.DeserializeObject <CommonResponseModel>(updateMessageQueueStatusToSentString); mq.ShouldDelete = true; #endregion #region 成功时,把公众账号改回Unblocked状态 if (updateMessageQueueStatusToSentResponseModel != null && string.Compare(updateMessageQueueStatusToSentResponseModel.ReturnMessage, "OK", StringComparison.InvariantCultureIgnoreCase) == 0) { wxPublicAccountBlockStatuses = UpdateWXPublicAccountBlockStatusModelToUnblockStatus(wxPublicAccountBlockStatuses, (int)mq.PublicAccountID); } #endregion return(wxPublicAccountBlockStatuses); }
private static SendWXPreviewMessageResponseModel SendPreviewMessage( string apiBaseUrl, string urlForSendPreviewMessage, string dataForSendPreviewMessage, Proc_GetMessageInfoByMessageIDs_Result message, Proc_GetRobotServerMessageQueueForWXRobot_Result mq, int showCoverInContent, int showSourceUrlInContent, int relogin) { var sendWXPreviewMessageResponseModel = new SendWXPreviewMessageResponseModel() { Ret = -1000 }; //默认让错误码为 -1000,这样当返回为0时,就是成功的 urlForSendPreviewMessage = string.Format("{0}/api/wx/SendWXPreviewMessage", apiBaseUrl); //fuxily string sourceUrl = null; if (!string.IsNullOrEmpty(mq.MoreParams) && !string.IsNullOrEmpty(message.SourceUrl)) { if (message.MessageFunctionID != 12) { string secret = WebConfigurationManager.AppSettings["AESEncryptSecret"].ToString(); string newSD = ""; try { newSD = Common.Encryptor.AESEncryptor.AESEncrypt(mq.ID.ToString(), secret); newSD = System.Web.HttpUtility.UrlEncode(newSD); } catch { } sourceUrl = message.SourceUrl + "?messageQueueID=" + newSD; } else { sourceUrl = message.SourceUrl + ",messageQueueID@" + mq.ID + ",ToUserID@" + mq.ToUserID + "," + mq.MoreParams; } } else { sourceUrl = message.SourceUrl; } dataForSendPreviewMessage = Common.HTTP.PostDataHandler.GetPostData ( new List <PostDataRequestModel>() { new PostDataRequestModel() { ParameterName = "schoolPublicAccountID", ParameterValue = message.SchoolPublicAccountID }, new PostDataRequestModel() { ParameterName = "messageFunctionID", ParameterValue = message.MessageFunctionID }, new PostDataRequestModel() { ParameterName = "toWxNo", ParameterValue = mq.PushNo }, new PostDataRequestModel() { ParameterName = "title", ParameterValue = message.Title }, new PostDataRequestModel() { ParameterName = "digest", ParameterValue = message.Digest }, new PostDataRequestModel() { ParameterName = "content", ParameterValue = message.Content, ConvertToHtml = true }, new PostDataRequestModel() { ParameterName = "sourceUrl", ParameterValue = sourceUrl }, new PostDataRequestModel() { ParameterName = "author", ParameterValue = "志酷通" }, new PostDataRequestModel() { ParameterName = "showCoverPic", ParameterValue = showCoverInContent }, new PostDataRequestModel() { ParameterName = "showSourceUrl", ParameterValue = showSourceUrlInContent }, new PostDataRequestModel() { ParameterName = "relogin", ParameterValue = relogin }, new PostDataRequestModel() { ParameterName = "greeting", ParameterValue = mq.Greeting }, new PostDataRequestModel() { ParameterName = "signature", ParameterValue = mq.NickName }, new PostDataRequestModel() { ParameterName = "toUserID", ParameterValue = mq.ToUserID }, new PostDataRequestModel() { ParameterName = "fromUserID", ParameterValue = mq.FromUserID } } ); var sendPreviewMessageResultString = _httper.Post(urlForSendPreviewMessage, dataForSendPreviewMessage); sendWXPreviewMessageResponseModel = Newtonsoft.Json.JsonConvert.DeserializeObject <SendWXPreviewMessageResponseModel>(sendPreviewMessageResultString); return(sendWXPreviewMessageResponseModel); }