예제 #1
0
 public void OnRemoved()
 {
     if (MessageContextRemoved != null)
     {
         var onRemovedArg = new WeixinContextRemovedEventArgs <TRequest, TResponse>(this);
         MessageContextRemoved(this, onRemovedArg);
     }
 }
        /// <summary>
        /// 当MessageContext被删除时触发的事件。(当上下文过期,被移除时触发的事件)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CustomMessageContext_MessageContextRemoved(object sender, WeixinContextRemovedEventArgs <IRequestMessageBase, IResponseMessageBase> e)
        {
            var messageContext = e.MessageContext as CustomMessageContext;

            if (messageContext == null)
            {
                return; //如果是正常的调用,messageContext不会为null
            }
        }
예제 #3
0
        void WorkAppMessageContext_MessageContextRemoved(object sender, WeixinContextRemovedEventArgs <IWorkRequestMessageBase, IWorkResponseMessageBase> e)
        {
            /* 注意,这个事件不是实时触发的(当然你也可以专门写一个线程监控)
             * 为了提高效率,根据WeixinContext中的算法,这里的过期消息会在过期后下一条请求执行之前被清除
             */
            var messageContext = e.MessageContext as WorkAppMessageContext;

            if (messageContext == null)
            {
                return;//如果是正常的调用,messageContext不会为null
            }

            //TODO:这里根据需要执行消息过期时候的逻辑,下面的代码仅供参考
            //Log.InfoFormat("{0}的消息上下文已过期",e.OpenId);
            //api.SendMessage(e.OpenId, "由于长时间未搭理客服,您的客服状态已退出!");
        }
예제 #4
0
                /// <summary>
                /// 当上下文过期,被移除的时候触发的时间
                /// </summary>
                private void CustomMessageContext_MessageContextRemoved(object sender, WeixinContextRemovedEventArgs <IRequestMessageBase, IResponseMessageBase> e)
        {
                        /* 注意,这个事件不是实时触发的(当然你也可以专门写一个线程监控)
                         *             * 为了提高效率,根据WeixinContext中的算法,这里的过期消息会在过期后下一条请求执行之前被清除
                         *             */
                        var messageContext = e.MessageContext as CustomMessageContext;

            if (messageContext == null)
            {
                                //如果是正常的调用,messageContext不会为null
                                return;
            }
                        //TODO:这里根据需要执行消息过期时候的逻辑,下面的代码仅供参考
                        //Log.InfoFormat("{0}的消息上下文已过期",e.OpenId);
                        //api.SendMessage(e.OpenId, "由于长时间未搭理客服,您的客服状态已退出!");
                   
        }
        protected virtual void CustomMessageContext_MessageContextRemoved(object sender, WeixinContextRemovedEventArgs<IRequestMessageBase, IResponseMessageBase> e)
        {
            /* 注意,这个事件不是实时触发的(当然你也可以专门写一个线程监控)
             * 为了提高效率,根据WeixinContext中的算法,这里的过期消息会在过期后下一条请求执行之前被清除
             */

            if (!(e.MessageContext is CustomMessageContext))
            {
            }

            //TODO:这里根据需要执行消息过期时候的逻辑,下面的代码仅供参考

            //Log.InfoFormat("{0}的消息上下文已过期",e.OpenId);
            //api.SendMessage(e.OpenId, "由于长时间未搭理客服,您的客服状态已退出!");
        }
예제 #6
0
 private void WeAppContext_MessageContextRemoved(object sender, WeixinContextRemovedEventArgs <IRequestMessageBase, IResponseMessageBase> e)
 {
     WeAppContext weAppContext = e.MessageContext as WeAppContext;
 }