Ejemplo n.º 1
0
 /// <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;
 }
Ejemplo n.º 2
0
        /// <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));
            }
        }