예제 #1
0
        public void ClickEventReplyTextTest()
        {
            string xml = @"<xml>
                        <ToUserName><![CDATA[toUser]]></ToUserName>
                        <FromUserName><![CDATA[FromUser]]></FromUserName>
                        <CreateTime>123456789</CreateTime>
                        <MsgType><![CDATA[event]]></MsgType>
                        <Event><![CDATA[CLICK]]></Event>
                        <EventKey><![CDATA[TestKey]]></EventKey>
                        </xml>";

            IMessage   message   = MessageParser.ParseMessage(xml);
            IDebugMode debugMode = new DebugMode(true);
            ICache     cache     = new RedisCache(new Microsoft.Extensions.Caching.Redis.RedisCache(new Microsoft.Extensions.Caching.Redis.RedisCacheOptions()
            {
                Configuration = "127.0.0.1:6379,password=123456"
            }));
            IMessageRepetHandler        messageRepetHandler    = new MessageRepetHandler(cache, debugMode);
            IMessageReply <TextMessage> messageReply           = new TextMessageReply();
            ClickEvtMessageHandlerBase  clickEvtMessageHandler = new ClickEventReplyTextHandler(messageReply);
            IMessageRepetValidUsage     messageRepetValidUsage = new MessageRepetValidUsage(true);
            IMessageProcesser           processer = new MessageProcesser(messageRepetHandler, messageRepetValidUsage, new TextMessageHandlerBase(), new ImageMessageHandlerBase(), new VoiceMessageHandlerBase(), new VideoMessageHandlerBase(), new ShortVideoMessageHandlerBase(), new LocationMessageHandlerBase(), new LinkMessageHandlerBase(), new SubscribeEvtMessageHandlerBase(), new UnsubscribeEvtMessageHandlerBase(), new ScanEvtMessageHandlerBase(), new LocationEvtMessageHandlerBase(), clickEvtMessageHandler);

            Console.WriteLine(processer.ProcessMessage(message));
        }
예제 #2
0
        public HttpHandler(string token, MessageProcesser processer)
        {
            if (token == null)
                throw Error.ArugmentNull("token");

            if (processer == null)
                throw Error.ArugmentNull("processer");

            this.token = token;
            this.processer = processer;
        }
 public WeixinController(IConfiguration configuration, ILogger <WeixinController> logger,
                         MessageProcesser processer, IMessageMiddleware messageMiddleware, Verifyer verifyer,
                         AuthorizationContainer authorizationContainer, AccessTokenContainer accessTokenContainer,
                         MenuInterfaceCaller menuInterfaceCaller)
 {
     _configuration          = configuration;
     _logger                 = logger;
     _processer              = processer;
     _messageMiddleware      = messageMiddleware;
     _verifyer               = verifyer;
     _authorizationContainer = authorizationContainer;
     _accessTokenContainer   = accessTokenContainer;
     _menuInterfaceCaller    = menuInterfaceCaller;
 }
예제 #4
0
        public void TestMessageProcesser()
        {
            JMessage msg = new JMessage
            {
                SenderId  = GetSendUser().Id.ToInt(),
                Channel   = SendChannel.Email,
                SendToIds = new int[] { GetSendToUser().Id.ToInt() },
                Title     = "消息发送测试",
                Content   = "<strong>消息发送测试内容</strong>",
            };
            MessageProcesser processer = new MessageProcesser(new MessageRouter());

            processer.Process(msg);
            Assert.IsTrue(msg.Id > 0);
        }
예제 #5
0
        public HttpHandler(string token, MessageProcesser processer)
        {
            if (token == null)
            {
                throw Error.ArugmentNull("token");
            }

            if (processer == null)
            {
                throw Error.ArugmentNull("processer");
            }

            this.token     = token;
            this.processer = processer;
        }
예제 #6
0
        public void TemplateSendJobFinishEvent()
        {
            var xml = @"
<xml><ToUserName><![CDATA[gh_26fac8adcd13]]></ToUserName>
<FromUserName><![CDATA[o1Ux1uP_0TDyXNvZjrKwOyn0Aprs]]></FromUserName>
<CreateTime>1418619744</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>
<MsgID>201843808</MsgID>
<Status><![CDATA[success]]></Status>
</xml>
";
            // Message.FromXml(xml);
            var msg = Message.FromXml(xml) as TemplateSendJobFinishEvent;

            Assert.IsNotNull(msg);
            Assert.AreEqual(EventType.TemplateSendJobFinish, msg.Event);

            var p = new MessageProcesser();

            p.Process(xml);
        }