/// <summary> /// 接收短信 /// </summary> /// <returns>接收到的短信数量</returns> public int ReceiveSms() { EucpHelper oEucpHelper = new EucpHelper(ConfigHelper.EucpConfig.SerialNumber, ConfigHelper.EucpConfig.Password); List<object> oList = oEucpHelper.ReceiveSms(); int nCount = 0; foreach (Dictionary<string, object> oMessage in oList) { GeneralMessageReceive oReceive = new GeneralMessageReceive { SendFrom = oMessage["Mobile"].ToString(), Matter = oMessage["Content"].ToString(), SentTime = (DateTimeOffset)oMessage["SentTime"], GetFrom = oMessage["Channel"].ToString() }; dbEntity.GeneralMessageReceives.Add(oReceive); dbEntity.SaveChanges(); nCount++; } return nCount; }
/// <summary> /// 发送OpenShop中的手机短信 /// </summary> private static void SendPending() { string strMyString = ConfigHelper.ConnectionString.MySqlString; if (String.IsNullOrEmpty(strMyString)) { EventLog(string.Format("MySQL 连接字符串无效")); return; } try { MySqlHelper oMySqlHelper = new MySqlHelper(strMyString); EucpHelper oEucpHelper = new EucpHelper(); int nCounter = 0; // 发送手机短信 string sPending = "SELECT * FROM system_message_queue WHERE status = 1"; Dictionary<int, int> oSendList = new Dictionary<int, int>(); using (MySqlDataReader oDataReader = oMySqlHelper.ExecuteReader(sPending)) { if (oDataReader.HasRows) { while (oDataReader.Read()) { int nMsgID = (int)oDataReader["id"]; string strMsgType = oDataReader["msg_type"].ToString().Trim(); string strMobile = oDataReader["target_ids"].ToString(); string strContent = oDataReader["msg_content"].ToString(); string strMsgName = oDataReader["msg_name"].ToString(); string strOrderSn = oDataReader["order_sn"].ToString(); int nResult = -1; if (strMsgType == "1") // 发送邮件 { nResult = MailHelper.SendMail(ConfigHelper.SmtpConfig.Sender, ConfigHelper.SmtpConfig.From, strMobile, "筑巢家居商城订单号:" + strOrderSn, strContent); } else if (strMsgType == "2") // 发送短信 { strContent = strContent.Replace("<p>", ""); strContent = strContent.Replace("</p>", ""); nResult = oEucpHelper.SendSms(strMobile, strContent); } oSendList.Add(nMsgID, nResult); nCounter++; } } oDataReader.Close(); } // 检测余额 string strBalance = oEucpHelper.GetBalance().ToString(); // 更新已发送状态 foreach (int nKey in oSendList.Keys) { string strUpdateStatus = "UPDATE system_message_queue SET status = 3, msg_desc = '" + oSendList[nKey].ToString() + ":" + strBalance + "', send_time = NOW() WHERE id = " + nKey.ToString(); oMySqlHelper.ExecuteNonQuery(strUpdateStatus); } EventLog(string.Format("已发送{0}条手机短信/邮件", nCounter)); nCounter = 0; // 接收手机短信 List<object> oGetList = oEucpHelper.ReceiveSms(); foreach (Dictionary<string, object> oMessage in oGetList) { string strInsertMessage = "INSERT INTO system_message_receive (mobileNumber, smsContent, sentTime, channelNumber) " + " VALUES ('" + oMessage["Mobile"].ToString() + "', '" + oMessage["Content"].ToString() + "', '" + oMessage["SentTime"].ToString() + "', '" + oMessage["Channel"].ToString() + "')"; oMySqlHelper.ExecuteNonQuery(strInsertMessage); nCounter++; } EventLog(string.Format("已接收{0}条手机短信", nCounter)); } catch (Exception ex) { EventLog(string.Format("SendPending 出现错误 {0}", ex.Message)); } }