public int SingleSend(SendMsgStruct msg) { int result = -1; try { object[] objArray = new object[10]; objArray[0] = msg.TelNumber; objArray[1] = msg.Content; objArray[2] = ""; objArray[3] = "g"; objArray[4] = "1010340110101"; objArray[5] = "科研诚信分公司"; objArray[6] = "kycx01"; objArray[7] = "科研诚信"; objArray[8] = ""; objArray[9] = true; result = (int)WebServiceHelper.InvokeWebService(url, "SMS_Add_ForAll", objArray); } catch (Exception ex) { AsyncHelper.RunSync <bool>(() => Manager.Instance.WriteLogFile("cnki发送msg出现问题", ex)); result = -2; } return(result); }
public void CnkiSendAction(List <SendMsgStruct> array) { foreach (SendMsgStruct item in array) { item.HName = SMSHandlerType.Cnki.ToString(); item.SendTime = DateTime.Now.Ticks; Task.Factory.StartNew(() => { try { int result = CnkiSender.Instance.SingleSend(item); if (result == 1) { item.SendState = (int)SendStateType.SendOK; } else { item.SendState = (int)SendStateType.SendError; if (result == -1) { item.ErrorMsg = "对不起,IP不在范围内!"; } else if (result == -2) { item.ErrorMsg = "对不起,IP不在范围内!"; } else if (result == -100) { item.ErrorMsg = "用户的手机号不正确!"; } else { item.ErrorMsg = result.ToString(); } } Manager.Instance.WriteLogDB_SMSSendList(SendMsgStruct.Copy(item)); } catch (Exception ex) { AsyncHelper.RunSync <bool>(() => Manager.Instance.WriteLogFile("SingleSend出现异常", ex)); } }); } }
public async Task<bool> WriteLogDB_SMSSendList(SendMsgStruct logContent) { AbstractWorker theWorker = GetWorker("SendDBLogWorker", "SendDBLogWorker"); var result = await theWorker.PushAsync(logContent); return result; }
private List <SendMsgStruct> EmaySendAction(ReceiveMsgStruct[] array) { //if (array.Length>0 && array[0] == null) //{ // Debug.WriteLine("becalled"); // return new List<SendMsgStruct>(); //} List <SendMsgStruct> ErrorResultList = new List <SendMsgStruct>(); if (array != null && array.Length > 0) { List <ReceiveMsgStruct> copyList = new List <ReceiveMsgStruct>(); Guid BatchID = UniqueIDMaker.Make(); LastExecTime = DateTime.Now; SMSRequestBody body = new SMSRequestBody(); foreach (ReceiveMsgStruct item in array) { if (item.ReceiveTime + 30 * 10000000 < LastExecTime.Ticks) { //"请求已过期"; SendMsgStruct sendItem = new SendMsgStruct() { CSShortName = item.CSShortName, UserName = item.UserName, HName = SMSHandlerType.Emay.ToString(), UniqueID = item.UniqueID, ReceiveTime = item.ReceiveTime, TelNumber = item.TelNumber, Content = item.Content, BatchID = BatchID, SendTime = LastExecTime.Ticks, SendState = (int)SendStateType.OutTime }; AsyncHelper.RunSync <bool>(() => Manager.Instance.WriteLogDB_SMSSendList(SendMsgStruct.Copy(sendItem))); } else { copyList.Add(item); body.smses.Add(new SMSRequestEntity() { mobile = item.TelNumber, content = item.Content, customSmsId = "" }); } } if (copyList.Count == 0) { return(ErrorResultList); } //使用copyList来处理发送 body.requestTime = DateTime.Now.Ticks; SMSResponseBody responseBody = EmaySender.Instance.BatchSend(body); //#region forTestCnki //SMSResponseBody responseBody = new SMSResponseBody(); //responseBody.flag = false; //responseBody.resultCode = "forTestCnki"; //#endregion //加入dblog foreach (ReceiveMsgStruct item in copyList) { SendMsgStruct sendItem = new SendMsgStruct() { CSShortName = item.CSShortName, UserName = item.UserName, HName = SMSHandlerType.Emay.ToString(), UniqueID = item.UniqueID, ReceiveTime = item.ReceiveTime, TelNumber = item.TelNumber, Content = item.Content, BatchID = BatchID, SendTime = body.requestTime }; if (responseBody != null && responseBody.flag == true) { sendItem.SendState = (int)SendStateType.SendOK; } else { sendItem.SendState = (int)SendStateType.SendError; sendItem.ErrorMsg = (responseBody == null ? "SendException" : responseBody.resultCode); ErrorResultList.Add(sendItem); } AsyncHelper.RunSync <bool>(() => Manager.Instance.WriteLogDB_SMSSendList(SendMsgStruct.Copy(sendItem))); } } //防止引用结果被篡改 List <SendMsgStruct> resultList = new List <SendMsgStruct>(); foreach (SendMsgStruct item in ErrorResultList) { resultList.Add(SendMsgStruct.Copy(item)); } return(ErrorResultList); }