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 } }
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, "由于长时间未搭理客服,您的客服状态已退出!"); }
/// <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, "由于长时间未搭理客服,您的客服状态已退出!"); }
private void WeAppContext_MessageContextRemoved(object sender, WeixinContextRemovedEventArgs <IRequestMessageBase, IResponseMessageBase> e) { WeAppContext weAppContext = e.MessageContext as WeAppContext; }