Exemplo n.º 1
0
    public static int AddRepliedMessage(RepliedMessage repliedMessage)
    {
        string sqlStr = " insert into wxreplymsg ( "
                        + " wxreplymsg_rootid , "
                        + " wxreplymsg_from , "
                        + " wxreplymsg_to , "
                        + " wxreplymsg_msgcount , "
                        + " wxreplymsg_msgtype , "
                        + " wxreplymsg_content , "
                        + " wxreplymsg_mediaid , "
                        + " wxreplymsg_desc , "
                        + " wxreplymsg_musicurl , "
                        + " wxreplymsg_hqmusicurl , "
                        + " wxreplymsg_thumbmediaid , "
                        + " wxreplymsg_url , "
                        + " wxreplymsg_picurl , "
                        + " wxreplymsg_isservice , "
                        + " wxreplymsg_send ) values ("
                        + " '" + repliedMessage.rootId.Trim().Replace("'", "") + "' , "
                        + " '" + repliedMessage.from.Trim().Replace("'", "") + "' , "
                        + " '" + repliedMessage.to.Trim().Replace("'", "") + "' , "
                        + " '" + repliedMessage.messageCount.ToString().Trim().Replace("'", "") + "'  , "
                        + " '" + repliedMessage.type.Trim().Replace("'", "") + "' ,  "
                        + " '" + repliedMessage.content.Trim().Replace("'", "") + "'  ,  "
                        + " '" + repliedMessage.mediaId.Trim().Replace("'", "") + "' ,  "
                        + " '" + repliedMessage.desc.Trim().Replace("'", "") + "' ,  "
                        + " '" + repliedMessage.musicUrl.Trim().Replace("'", "") + "' , "
                        + " '" + repliedMessage.highQualityMusicUrl.Trim().Replace("'", "") + "' ,  "
                        + " '" + repliedMessage.thumbMediaId.Trim().Replace("'", "") + "' ,  "
                        + " '" + repliedMessage.url.Trim().Replace("'", "") + "' ,  "
                        + " '" + repliedMessage.picUrl.Trim().Replace("'", "") + "' ,  "
                        + " '" + (repliedMessage.isService ? "1" : "0") + "' , "
                        + " '" + (repliedMessage.hasSent ? "1" : "0") + "' )  ";
        int           maxId = 0;
        SqlConnection conn  = new SqlConnection(Util.conStr.Trim());
        SqlCommand    cmd   = new SqlCommand(sqlStr, conn);

        conn.Open();
        int i = cmd.ExecuteNonQuery();

        if (i == 1)
        {
            cmd.CommandText = " select max(wxreplymsg_id) from wxreplymsg ";
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                i = dr.GetInt32(0);
            }
            dr.Close();
        }
        conn.Close();
        cmd.Dispose();
        conn.Dispose();
        repliedMessage.id = i;
        return(i);
    }
Exemplo n.º 2
0
    public static RepliedMessage DealMenuViewMessage(ReceivedMessage receivedMessage)
    {
        RepliedMessage repliedMessage = new RepliedMessage();

        if (receivedMessage.eventKey.ToLower().Trim().StartsWith("http://www.luqinwenda.com/index.php?app=public&mod=landingpage"))
        {
            Util.DealLandingRequest(receivedMessage.from);
        }
        return(repliedMessage);
    }
Exemplo n.º 3
0
    public static int SendServiceMessage(ServiceMessage serviceMessage)
    {
        RepliedMessage repliedMessage = new RepliedMessage();

        repliedMessage.from    = serviceMessage.from;
        repliedMessage.to      = serviceMessage.to;
        repliedMessage.rootId  = "";
        repliedMessage.type    = serviceMessage.type.Trim();
        repliedMessage.content = serviceMessage.content.Trim();
        if (serviceMessage.type.Trim().Equals("news") && serviceMessage.newsArray != null)
        {
            repliedMessage.newsContent = serviceMessage.newsArray;
        }
        repliedMessage.SendAsServiceMessage();
        repliedMessage.hasSent = true;
        return(RepliedMessage.AddRepliedMessage(repliedMessage));
    }
Exemplo n.º 4
0
    public static RepliedMessage DealMenuClickMessage(ReceivedMessage receivedMessage)
    {
        RepliedMessage repliedMessage = new RepliedMessage();

        repliedMessage.from   = receivedMessage.to;
        repliedMessage.to     = receivedMessage.from;
        repliedMessage.rootId = receivedMessage.id.Trim();
        switch (receivedMessage.eventKey.Trim())
        {
        case "PINGTAI":
            repliedMessage.content = Util.GetMenuWodeHit(receivedMessage.from, "http://weixin.luqinwenda.com/dingyue/images/1.jpg"
                                                         , 1, "卢勤问答平台", "这里是卢勤问答平台,你可以在这里浏览和评论他人的提问。");
            repliedMessage.messageCount = 1;
            repliedMessage.type         = "news";
            break;

        case "TIWEN":
            repliedMessage.content = Util.GetMenuWodeHit(receivedMessage.from, "http://weixin.luqinwenda.com/dingyue/images/3.jpg"
                                                         , 3, "快速提问", "点击进入快速提问,把你的问题提出来,卢勤老师帮你排忧解难。");
            repliedMessage.messageCount = 1;
            repliedMessage.type         = "news";
            break;

        case "WENDA":
            repliedMessage.content = Util.GetMenuWodeHit(receivedMessage.from, "http://weixin.luqinwenda.com/dingyue/images/2.jpg"
                                                         , 2, "卢老师的回答", "卢勤老师的回答都在这里,点击即可浏览。");
            repliedMessage.messageCount = 1;
            repliedMessage.type         = "news";
            break;

        case "WODE":
            repliedMessage.content = Util.GetMenuWodeHit(receivedMessage.from, "http://weixin.luqinwenda.com/dingyue/images/4.jpg"
                                                         , 4, "还记得自己提过的问题吗?点击进入,即可查看提问历史。", "还记得自己提过的问题吗?点击进入,即可查看提问历史。");
            repliedMessage.messageCount = 1;
            repliedMessage.type         = "news";
            break;

        default:
            break;
        }
        return(repliedMessage);
    }
Exemplo n.º 5
0
    public static RepliedMessage DealUserInputMessage(ReceivedMessage receivedMessage)
    {
        RepliedMessage repliedMessage = new RepliedMessage();

        repliedMessage.from   = receivedMessage.to;
        repliedMessage.to     = receivedMessage.from;
        repliedMessage.rootId = receivedMessage.id;
        switch (receivedMessage.content.Trim().ToLower())
        {
        case "二维码":
            repliedMessage = CreateQrCodeReplyMessage(receivedMessage, repliedMessage);
            break;

        case "trx":
            //repliedMessage = CreateQrCodeReplyMessage(receivedMessage, repliedMessage);
            break;

        default:
            break;
        }
        return(repliedMessage);
    }
Exemplo n.º 6
0
    public static RepliedMessage CreateQrCodeReplyMessage(ReceivedMessage receivedMessage, RepliedMessage repliedMessage)
    {
        string token  = Util.GetToken();
        long   scene  = long.Parse(Util.GetInviteCode(receivedMessage.to.Trim()));
        string ticket = Util.GetQrCodeTicketTemp(token, scene);

        byte[] qrCodeByteArr = Util.GetQrCodeByTicket(ticket);
        string filePathName  = System.Configuration.ConfigurationSettings.AppSettings["qrcode_path"].Trim() + "\\" + scene.ToString() + ".jpg";

        Util.SaveBytesToFile(filePathName, qrCodeByteArr);
        string mediaId = Util.UploadImageToWeixin(filePathName, token);

        repliedMessage.messageCount = 1;
        repliedMessage.type         = "image";
        repliedMessage.content      = mediaId;
        return(repliedMessage);
    }
Exemplo n.º 7
0
    public static void SendScheduleMessage()
    {
        for (; sendingReminder;)
        {
            DataTable dt = DBHelper.GetDataTable(" select * from reminder_message where scheduled_send_date < getdate() and status = 0 ");


            //beforeSendUpdateParameterPairArr[0].Key = "";
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                KeyValuePair <string, KeyValuePair <SqlDbType, object> >[] keyParameterPairArr
                    = new KeyValuePair <string, KeyValuePair <SqlDbType, object> > [1];
                keyParameterPairArr[0] = new KeyValuePair <string, KeyValuePair <SqlDbType, object> >("id",
                                                                                                      new KeyValuePair <SqlDbType, object>(SqlDbType.Int, dt.Rows[i]["id"]));

                KeyValuePair <string, KeyValuePair <SqlDbType, object> >[] beforeSendUpdateParameterPairArr
                    = new KeyValuePair <string, KeyValuePair <SqlDbType, object> > [1];
                beforeSendUpdateParameterPairArr[0] = new KeyValuePair <string, KeyValuePair <SqlDbType, object> >("status",
                                                                                                                   new KeyValuePair <SqlDbType, object>(SqlDbType.Int, (object)1));

                DBHelper.UpdateData("reminder_message", beforeSendUpdateParameterPairArr, keyParameterPairArr);

                RepliedMessage msg = new RepliedMessage();
                msg.from    = System.Configuration.ConfigurationSettings.AppSettings["ori_id"].Trim();
                msg.to      = dt.Rows[i]["open_id"].ToString().Trim();
                msg.type    = "text";
                msg.content = dt.Rows[i]["content"].ToString().Trim();

                int j = 0;

                //try
                //{
                j = ServiceMessage.SendServiceMessage(new ServiceMessage(msg.jsonFormatData));
                //}
                //catch(Exception e)
                //{

                //}

                object result;

                if (j == 0)
                {
                    result = (object)-1;
                }
                else
                {
                    result = (object)2;
                }



                KeyValuePair <string, KeyValuePair <SqlDbType, object> >[] afterSendUpdateParameterPairArr
                    = new KeyValuePair <string, KeyValuePair <SqlDbType, object> > [2];
                afterSendUpdateParameterPairArr[0] = new KeyValuePair <string, KeyValuePair <SqlDbType, object> >("status",
                                                                                                                  new KeyValuePair <SqlDbType, object>(SqlDbType.Int, (object)result));
                afterSendUpdateParameterPairArr[1] = new KeyValuePair <string, KeyValuePair <SqlDbType, object> >("real_send_date",
                                                                                                                  new KeyValuePair <SqlDbType, object>(SqlDbType.DateTime, (object)DateTime.Now));

                DBHelper.UpdateData("reminder_message", afterSendUpdateParameterPairArr, keyParameterPairArr);
            }
            System.Threading.Thread.Sleep(60000);
        }
    }