123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- using System;
- using System.Collections.Generic;
- using System.Xml;
- using System.Web;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using ZcPeng.PublicLibrary;
- using JCSoft.WX.Framework.Models.Requests;
- using JCSoft.WX.Framework.Models;
- namespace Common.Wechat
- {
-
-
-
- public class RequestMessageHelper
- {
-
-
-
- private const string CDATA_KEY = "#cdata-section";
-
-
-
-
-
-
-
- private RequestMessage message;
-
-
-
-
-
-
-
- public bool HasRequestMessage
- {
- get
- {
- return message != null;
- }
- }
-
-
-
- public MsgType MessageType
- {
- get
- {
- if (message != null)
- return message.MsgType;
- else
- throw new NotImplementedException("请求消息为空,无法获取消息类型。");
- }
- }
-
-
-
- public RequestMessage Message
- {
- get
- {
- return message;
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public RequestMessageHelper(string content,ref string resultMsg)
- {
-
-
-
- string rawContent;
-
-
-
- rawContent = content;
-
- if (!TryParse(rawContent, out message))
- {
-
-
-
- }
- else
- {
-
-
-
- switch (message.MsgType)
- {
-
- case MsgType.Text:
- RequestTextMessage textmsg = (RequestTextMessage)message;
- if (textmsg.Content == "采购")
- {
- int nowtime = ConvertDateTimeInt(DateTime.Now);
- string msg = "欢迎关注亮健好药--供应商采购协同微信公众号:点击链接:http://119.27.191.247/web/supply/purchaseorder 查看采购需求。";
- string resxml = "<xml><ToUserName><![CDATA["
- + textmsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA["
- + textmsg.ToUserName + "]]></FromUserName><CreateTime>"
- + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA["
- + msg + "]]></Content><FuncFlag>0</FuncFlag></xml>";
- resultMsg = resxml;
- }
- if (textmsg.Content == "供货")
- {
- int nowtime = ConvertDateTimeInt(DateTime.Now);
- string msg = "欢迎关注亮健好药--供应商采购协同微信公众号:点击链接:http://119.27.191.247/web/supply/index 填写供货。";
- string resxml = "<xml><ToUserName><![CDATA["
- + textmsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA["
- + textmsg.ToUserName + "]]></FromUserName><CreateTime>"
- + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA["
- + msg + "]]></Content><FuncFlag>0</FuncFlag></xml>";
- resultMsg = resxml;
- }
- break;
- case MsgType.Event:
- RequestEventMessage eventmsg = (RequestEventMessage)message;
- if (eventmsg.Event == Event.Subscribe)
- {
-
- int nowtime = ConvertDateTimeInt(DateTime.Now);
- string msg = "欢迎关注亮健好药--供应商采购协同微信公众号:点击链接:http://119.27.191.247/web/supply/purchaseorder 查看采购情况。";
- string resxml = "<xml><ToUserName><![CDATA["
- + eventmsg.FromUserName + "]]></ToUserName><FromUserName><![CDATA["
- + eventmsg.ToUserName + "]]></FromUserName><CreateTime>"
- + nowtime + "</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA["
- + msg + "]]></Content><FuncFlag>0</FuncFlag></xml>";
- resultMsg = resxml;
- }
- break;
- default:
- break;
- }
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public static RequestMessage Parse(string xml)
- {
- RequestMessage msg = null;
-
-
-
- XmlTextReader reader = new XmlTextReader(xml, XmlNodeType.Document, null);
- msg = RequestMessageFactory.CreateRequestMessage(reader);
-
-
- return msg;
- }
-
-
-
-
-
-
- private static bool TryParse(string xml, out RequestMessage msg)
- {
- bool success = false;
- msg = null;
- try
- {
- msg = Parse(xml);
- success = true;
- }
- catch { }
- return success;
- }
- #region 将datetime.now 转换为 int类型的秒
-
-
-
-
-
- private int ConvertDateTimeInt(System.DateTime time)
- {
-
- System.DateTime startTime = TimeZoneInfo.ConvertTime(new System.DateTime(1970, 1, 1),TimeZoneInfo.Local);
- return (int)(time - startTime).TotalSeconds;
- }
- private int converDateTimeInt(System.DateTime time)
- {
- System.DateTime startTime = TimeZoneInfo.ConvertTime(new System.DateTime(1970, 1, 1),TimeZoneInfo.Local);
- return (int)(time - startTime).TotalSeconds;
- }
- #endregion
-
- }
-
- }
|