12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*----------------------------------------------------------------
- Copyright (C) 2015 Senparc
-
- 文件名:QyCustomMessageContext.cs
- 文件功能描述:企业号消息上下文
-
-
- 创建标识:Senparc - 20150312
- ----------------------------------------------------------------*/
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.Remoting.Messaging;
- using System.Text;
- using Senparc.Weixin.Context;
- using Senparc.Weixin.QY.Entities;
- namespace Senparc.Weixin.MP.Sample.CommonService.QyMessageHandler
- {
- public class QyCustomMessageContext : MessageContext<IRequestMessageBase,IResponseMessageBase>
- {
- public QyCustomMessageContext()
- {
- base.MessageContextRemoved += CustomMessageContext_MessageContextRemoved;
- }
- void CustomMessageContext_MessageContextRemoved(object sender, Senparc.Weixin.Context.WeixinContextRemovedEventArgs<IRequestMessageBase,IResponseMessageBase> e)
- {
- /* 注意,这个事件不是实时触发的(当然你也可以专门写一个线程监控)
- * 为了提高效率,根据WeixinContext中的算法,这里的过期消息会在过期后下一条请求执行之前被清除
- */
- var messageContext = e.MessageContext as QyCustomMessageContext;
- if (messageContext == null)
- {
- return;//如果是正常的调用,messageContext不会为null
- }
- //TODO:这里根据需要执行消息过期时候的逻辑,下面的代码仅供参考
- //Log.InfoFormat("{0}的消息上下文已过期",e.OpenId);
- //api.SendMessage(e.OpenId, "由于长时间未搭理客服,您的客服状态已退出!");
- }
- }
- }
|