public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var responseMessage = requestMessage.CreateResponseMessage <ResponseMessageText>();

            responseMessage.Content = requestMessage.Event + "from_callback";
            return(responseMessage);
        }
예제 #2
0
        /// <summary>
        /// 处理事件请求(这个方法一般不用重写,这里仅作为示例出现。除非需要在判断具体Event类型以外对Event信息进行统一操作
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var eventResponseMessage = base.OnEventRequest(requestMessage);//对于Event下属分类的重写方法,见:CustomerMessageHandler_Events.cs

            //TODO: 对Event信息进行统一操作
            return(eventResponseMessage);
        }
예제 #3
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.PIC_PHOTO_OR_ALBUM:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.SCANCODE_PUSH:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.SCANCODE_WAITMSG:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.LOCATION_SELECT:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.PIC_WEIXIN:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.PIC_SYSPHOTO:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //取消订阅
                responseMessage = OnEvent_UnSubscribeRequest(RequestMessage as RequestMessageEvent_UnSubscribe);
                break;

            case Event.LOCATION:    //上报地理位置事件
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.ENTER_AGENT:    //用户进入应用的事件推送(enter_agent)
                responseMessage = OnEvent_EnterAgentRequest(RequestMessage as RequestMessageEvent_Enter_Agent);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
        /// <summary>
        /// 处理事件请求。
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var eventResponseMessage = base.OnEventRequest(requestMessage);

            //TODO: 对Event信息进行统一操作
            return(eventResponseMessage);
        }
예제 #5
0
        public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var responseMessage = CreateResponseMessage <ResponseMessageText>();

            responseMessage.Content = string.Format("推送事件");
            return(responseMessage);
        }
예제 #6
0
 public override IResponseMessageBase OnEvent_ClickRequest(IRequestMessageEventBase requestMessage)
 {
     var buttons = UserProfile.Buttons;
     //var fileVersionInfo =
     //    FileVersionInfo.GetVersionInfo(HttpContext.Current.Server.MapPath("~/bin/EasyWeixin.dll"));
     foreach (var button in buttons)
     {
         if (button.SubButtons.ToList().Count == 0)
         {
             if (button.key == requestMessage.EventKey)
             {
                 var responseMessages = button.ResponseMessages;
                 return GetEventsResponseMessages(responseMessages.ToList(), requestMessage);
             }
         }
         else
         {
             foreach (var subitem in button.SubButtons)
             {
                 if (subitem.key == requestMessage.EventKey)
                 {
                     var responseMessages = subitem.ResponseMessages;
                     return GetEventsResponseMessages(responseMessages.ToList(), requestMessage);
                 }
             }
         }
     }
     var rMessage = UserProfile.ResponseMessages.Where(o => o.ResponseType == 2).ToList();
     return GetEventsResponseMessages(rMessage, requestMessage);
 }
        /// <summary>
        /// 处理事件请求(这个方法一般不用重写,这里仅作为示例出现。除非需要在判断具体Event类型以外对Event信息进行统一操作
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override async Task <IResponseMessageBase> OnEventRequestAsync(IRequestMessageEventBase requestMessage)
        {
            var eventResponseMessage = await base.OnEventRequestAsync(requestMessage);//对于Event下属分类的重写方法,见:CustomerMessageHandler_Events.cs

            //TODO: 对Event信息进行统一操作
            return(eventResponseMessage);
        }
예제 #8
0
        public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            LogHelper.LogInfo(string.Format("事件【FromUserName:{0}, Event:{1}】", requestMessage.FromUserName, requestMessage.Event));
            var eventResponseMessage = base.OnEventRequest(requestMessage);

            //TODO: 对Event信息进行统一操作
            return(eventResponseMessage);
        }
예제 #9
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.user_enter_tempsession:
                responseMessage = OnEvent_UserEnterTempSessionRequest(RequestMessage as RequestMessageEvent_UserEnterTempSession);
                break;

            case Event.nearby_category_audit_info:
                responseMessage = OnEvent_NearbyCategoryAuditInfoRequest(RequestMessage as RequestMessageEvent_NearbyCategoryAuditInfo);
                break;

            case Event.add_nearby_poi_audit_info:
                responseMessage = OnEvent_AddNearbyPoiAuditInfoRequest(RequestMessage as RequestMessageEvent_AddNearbyPoiAuditInfo);
                break;

            case Event.create_map_poi_audit_info:
                responseMessage = OnEvent_CreateMapPoiAuditInfoRequest(RequestMessage as RequestMessageEvent_CreateMapPoiAuditInfo);
                break;

            case Event.weapp_audit_success:    //
                responseMessage = OnEvent_WeAppAuditSuccessRequest(RequestMessage as RequestMessageEvent_WeAppAuditSuccess);
                break;

            case Event.weapp_audit_fail:    //
                responseMessage = OnEvent_WeAppAuditFailRequest(RequestMessage as RequestMessageEvent_WeAppAuditFail);
                break;

            case Event.weapp_audit_delay:    //
                responseMessage = OnEvent_WeAppAuditDelayRequest(RequestMessage as RequestMessageEvent_WeAppAuditDelay);
                break;

            case Event.wxa_nickname_audit:
                responseMessage = OnEvent_NicknameAuditRequest(RequestMessage as RequestMessageEvent_NicknameAudit);
                break;

            case Event.wxa_illegal_record:
                responseMessage = OnEvent_IllegalRecordRequest(RequestMessage as RequestMessageEvent_IllegalRecord);
                break;

            case Event.wxa_appeal_record:
                responseMessage = OnEvent_AppealRecordRequest(RequestMessage as RequestMessageEvent_AppealRecord);
                break;

            case Event.wxa_privacy_apply:
                responseMessage = OnEvent_PrivacyApplyRequest(RequestMessage as RequestMessageEvent_PrivacyApply);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #10
0
        public override IResponseMessageBase OnEvent_ScanRequest(IRequestMessageEventBase requestMessage)
        {
            //应该是什么都没有返回,然后只发送一个模板消息
            var requestMessageScan = (RequestMessageEvent_Scan)requestMessage;

            ResponseMessageText responseMessage = CreateResponseMessage<ResponseMessageText>(); ;
            ResponseQrCode(requestMessage, ref responseMessage);

            return responseMessage;
        }
예제 #11
0
        public override IResponseMessageBase OnEvent_SubscribeRequest(IRequestMessageEventBase requestMessage)
        {
            var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);

            #region 如果是扫描二维码,未关注
            ResponseQrCode(requestMessage, ref responseMessage);
            #endregion

            var message = UserProfile.ResponseMessages.Where(o => o.ResponseType == 1).ToList();
            return GetEventsResponseMessages(message, requestMessage);
        }
예제 #12
0
        public ResponseMessageBase GetResponseMessage(IRequestMessageEventBase requestMessage)
        {
            ResponseMessageBase responseMessage = null;
            switch (requestMessage.Event)
            {
                case Event.ENTER:
                    {
                        var strongResponseMessage = requestMessage.CreateResponseMessage<ResponseMessageText>();
                        strongResponseMessage.Content = "您刚才发送了ENTER事件请求。";
                        responseMessage = strongResponseMessage;
                        break;
                    }
                case Event.LOCATION:
                    throw new Exception("暂不可用");
                case Event.subscribe:
                    {
                        break;
                    }
                case Event.unsubscribe:
                    {
                        var strongResponseMessage = requestMessage.CreateResponseMessage<ResponseMessageText>();
                        var openId = requestMessage.FromUserName;

                        strongResponseMessage.Content = "有空再来";
                        responseMessage = strongResponseMessage;
                        break;
                    }
                case Event.CLICK:
                    {
                        var requestMessageEvent_Click = requestMessage as RequestMessageEvent_Click;

                        if (requestMessageEvent_Click != null)
                        {
                            var eventKey = requestMessageEvent_Click.EventKey;
                            var response = requestMessage.CreateResponseMessage<ResponseMessageText>();
                            response.Content = "openId:" + requestMessage.FromUserName;
                            responseMessage = response;
                        }

                        break;
                    }
                case Event.VIEW:
                    {
                        responseMessage = requestMessage.CreateResponseMessage<ResponseMessageNews>();
                        var openId = requestMessage.FromUserName;
                        break;
                    }
                default:
                    throw new ArgumentOutOfRangeException();
            }
            return responseMessage;
        }
예제 #13
0
        /// <summary>
        /// 将RequestMessageEventBase转换成RequestMessageText类型,其中Content = requestMessage.EventKey
        /// </summary>
        /// <param name="requestMessageEvent"></param>
        /// <returns></returns>
        public static RequestMessageText ConvertToRequestMessageText(this IRequestMessageEventBase requestMessageEvent)
        {
            var requestMessage     = requestMessageEvent;
            var requestMessageText = new RequestMessageText()
            {
                FromUserName = requestMessage.FromUserName,
                ToUserName   = requestMessage.ToUserName,
                CreateTime   = requestMessage.CreateTime,
                MsgId        = requestMessage.MsgId,
                Content      = requestMessage.EventKey
            };

            return(requestMessageText);
        }
예제 #14
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.ENTER:
                responseMessage = OnEvent_EnterRequest(RequestMessage as RequestMessageEvent_Enter);
                break;

            case Event.LOCATION:    //自动发送的用户当前位置
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //退订
                responseMessage = OnEvent_UnsubscribeRequest(RequestMessage as RequestMessageEvent_Unsubscribe);
                break;

            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.scan:    //二维码
                responseMessage = OnEvent_ScanRequest(RequestMessage as RequestMessageEvent_Scan);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.MASSSENDJOBFINISH:    //群发消息成功
                responseMessage = OneEvent_MassSendJobFinisRequest(RequestMessage as RequestMessageEvent_MassSendJobFinish);
                break;

            case Event.TEMPLATESENDJOBFINISH:    //推送模板消息成功
                responseMessage = OneEvent_TemplateSendJobFinishRequest(RequestMessage as RequestMessageEvent_TemplateSendJobFinish);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #15
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.user_enter_tempsession:
                responseMessage = OnEvent_UserEnterTempSessionRequest(RequestMessage as RequestMessageEvent_UserEnterTempSession);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #16
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.PICPHOTOORALBUM:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_PicPhotoOrAlbum);
                break;

            case Event.SCANCODEPUSH:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_ScancodePush);
                break;

            case Event.SCANCODEWAITMSG:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_ScancodeWaitmsg);
                break;

            case Event.LOCATIONSELECT:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_LocationSelect);
                break;

            case Event.PICWEIXIN:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_PicWeixin);
                break;

            case Event.PICSYSPHOTO:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_PicSysphoto);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #17
0
        /// <summary>
        /// 【异步方法】Event事件类型请求
        /// </summary>
        public virtual async Task <IResponseMessageBase> OnEventRequestAsync(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.user_enter_tempsession:
                responseMessage = await OnEvent_UserEnterTempSessionRequestAsync(RequestMessage as RequestMessageEvent_UserEnterTempSession);

                break;

            case Event.add_nearby_poi_audit_info:
                responseMessage = await OnEvent_AddNearbyPoiAuditInfoRequestAsync(RequestMessage as RequestMessageEvent_AddNearbyPoiAuditInfo);

                break;

            case Event.weapp_audit_success:    //
                responseMessage = await OnEvent_WeAppAuditSuccessRequestAsync(RequestMessage as RequestMessageEvent_WeAppAuditSuccess);

                break;

            case Event.weapp_audit_fail:    //
                responseMessage = await OnEvent_WeAppAuditFailRequestAsync(RequestMessage as RequestMessageEvent_WeAppAuditFail);

                break;

            case Event.weapp_audit_delay:    //
                responseMessage = await OnEvent_WeAppAuditDelayRequestAsync(RequestMessage as RequestMessageEvent_WeAppAuditDelay);

                break;

            case Event.wxa_nickname_audit:    //
                responseMessage = await OnEvent_NicknameAuditRequestAsync(RequestMessage as RequestMessageEvent_NicknameAudit);

                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #18
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
        /// <summary>
        /// 【异步方法】Event事件类型请求
        /// </summary>
        public virtual async Task <IResponseMessageBase> OnEventRequestAsync(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.user_enter_tempsession:
                responseMessage = await OnEvent_UserEnterTempSessionRequestAsync(RequestMessage as RequestMessageEvent_UserEnterTempSession);

                break;

            case Event.add_nearby_poi_audit_info:
                responseMessage = await OnEvent_AddNearbyPoiAuditInfoRequestAsync(RequestMessage as RequestMessageEvent_AddNearbyPoiAuditInfo);

                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #20
0
파일: Extensions.cs 프로젝트: ofood/WeChat
        /// <summary>
        /// 将RequestMessageEventBase转换成RequestMessageText类型,其中Content = requestMessage.EventKey
        /// </summary>
        /// <param name="requestMessageEvent"></param>
        /// <returns></returns>
        public static RequestMessageText ConvertToRequestMessageText(this IRequestMessageEventBase requestMessageEvent)
        {
            var requestMessage     = requestMessageEvent;
            var requestMessageText = new RequestMessageText()
            {
                FromUserName = requestMessage.FromUserName,
                ToUserName   = requestMessage.ToUserName,
                CreateTime   = requestMessage.CreateTime,
                MsgId        = requestMessage.MsgId
            };

            //判断是否具有EventKey属性
            if (requestMessageEvent is IRequestMessageEventKey)
            {
                requestMessageText.Content = (requestMessageEvent as IRequestMessageEventKey).EventKey;
            }
            else
            {
                requestMessageText.Content = "";
            }

            return(requestMessageText);
        }
예제 #21
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IWorkResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage = RequestMessage as IRequestMessageEventBase;
            IWorkResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.PIC_PHOTO_OR_ALBUM:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.SCANCODE_PUSH:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.SCANCODE_WAITMSG:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.LOCATION_SELECT:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.PIC_WEIXIN:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.PIC_SYSPHOTO:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //取消订阅
                responseMessage = OnEvent_UnSubscribeRequest(RequestMessage as RequestMessageEvent_UnSubscribe);
                break;

            case Event.LOCATION:    //上报地理位置事件
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.ENTER_AGENT:    //用户进入应用的事件推送(enter_agent)
                responseMessage = OnEvent_EnterAgentRequest(RequestMessage as RequestMessageEvent_Enter_Agent);
                break;

            case Event.BATCH_JOB_RESULT:    //异步任务完成事件推送(batch_job_result)
                responseMessage = OnEvent_BatchJobResultRequest(RequestMessage as RequestMessageEvent_Batch_Job_Result);
                break;

            case Event.change_contact:
                var ccRequestMessage = RequestMessage as IRequestMessageEvent_Change_Contact_Base;
                switch (ccRequestMessage.ChangeType)
                {
                case ContactChangeType.create_user:
                    responseMessage = OnEvent_ChangeContactCreateUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Create);
                    break;

                case ContactChangeType.update_user:
                    responseMessage = OnEvent_ChangeContactUpdateUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Update);
                    break;

                case ContactChangeType.delete_user:
                    responseMessage = OnEvent_ChangeContactDeleteUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Base);
                    break;

                case ContactChangeType.create_party:
                    responseMessage = OnEvent_ChangeContactCreatePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Create);
                    break;

                case ContactChangeType.update_party:
                    responseMessage = OnEvent_ChangeContactUpdatePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Update);
                    break;

                case ContactChangeType.delete_party:
                    responseMessage = OnEvent_ChangeContactDeletePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Base);
                    break;

                case ContactChangeType.update_tag:
                    responseMessage = OnEvent_ChangeContactUpdateTagRequest(RequestMessage as RequestMessageEvent_Change_Contact_Tag_Update);
                    break;

                default:
                    throw new UnknownRequestMsgTypeException("未知的Event.change_contact下属请求信息", null);
                }
                break;

            //外部联系人事件相关
            case Event.CHANGE_EXTERNAL_CONTACT:
                var cecRequestMessage = RequestMessage as IRequestMessageEvent_Change_ExternalContact_Base;
                switch (cecRequestMessage.ChangeType)
                {
                case ExternalContactChangeType.add_external_contact:
                    responseMessage =
                        OnEvent_ChangeExternalContactAddRequest(
                            RequestMessage as RequestMessageEvent_Change_ExternalContact_Add);
                    break;

                case ExternalContactChangeType.edit_external_contact:
                    OnEvent_ChangeExternalContactUpdateRequest(
                        requestMessage as RequestMessageEvent_Change_ExternalContact_Modified);
                    break;

                case ExternalContactChangeType.add_half_external_contact:
                    responseMessage =
                        OnEvent_ChangeExternalContactAddHalfRequest(
                            RequestMessage as RequestMessageEvent_Change_ExternalContact_Add_Half);
                    break;

                case ExternalContactChangeType.del_external_contact:
                    responseMessage =
                        OnEvent_ChangeExternalContactDelRequest(
                            RequestMessage as RequestMessageEvent_Change_ExternalContact_Del);
                    break;

                case ExternalContactChangeType.del_follow_user:
                    responseMessage = OnEvent_ChangeExternalContactDelFollowUserRequest(
                        RequestMessage as RequestMessageEvent_Change_ExternalContact_Del_FollowUser);
                    break;

                case ExternalContactChangeType.msg_audit_approved:
                    responseMessage =
                        OnEvent_ChangeExternalContactMsgAudit(
                            RequestMessage as RequestMessageEvent_Change_ExternalContact_MsgAudit);
                    break;

                default:
                    throw new UnknownRequestMsgTypeException("未知的外部联系人事件Event.CHANGE_EXTERNAL_CONTACT下属请求信息", null);
                }
                break;

            case Event.CHANGE_EXTERNAL_CHAT:    //客户群变更事件
                var cechat = RequestMessage as RequestMessageEvent_Change_External_Chat_Base;
                switch (cechat.ChangeType)
                {
                case ExternalChatChangeType.create:
                    responseMessage = OnEvent_ChangeExternalChatCreateRequest(RequestMessage as RequestMessageEvent_Change_External_Chat_Create);
                    break;

                case ExternalChatChangeType.update:
                    responseMessage = OnEvent_ChangeExternalChatUpdateRequest(RequestMessage as RequestMessageEvent_Change_External_Chat_Update);
                    break;

                case ExternalChatChangeType.dismiss:
                    responseMessage = OnEvent_ChangeExternalChatDismissRequest(RequestMessage as RequestMessageEvent_Change_External_Chat_Dismiss);
                    break;

                default:
                    throw new UnknownRequestMsgTypeException("未知的客户群变更事件Event.CHANGE_EXTERNAL_CHAT下属请求信息", null);
                }
                break;

            case Event.LIVING_STATUS_CHANGE:    //直播事件回调
                responseMessage = OnEvent_Living_Status_ChangeRequest(RequestMessage as RequestMessageEvent_Living_Status_Change_Base);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #22
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.ENTER:
                responseMessage = OnEvent_EnterRequest(RequestMessage as RequestMessageEvent_Enter);
                break;

            case Event.LOCATION:    //自动发送的用户当前位置
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //退订
                responseMessage = OnEvent_UnsubscribeRequest(RequestMessage as RequestMessageEvent_Unsubscribe);
                break;

            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.scan:    //二维码
                responseMessage = OnEvent_ScanRequest(RequestMessage as RequestMessageEvent_Scan);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.MASSSENDJOBFINISH:    //群发消息成功
                responseMessage = OneEvent_MassSendJobFinisRequest(RequestMessage as RequestMessageEvent_MassSendJobFinish);
                break;

            case Event.TEMPLATESENDJOBFINISH:    //推送模板消息成功
                responseMessage = OneEvent_TemplateSendJobFinishRequest(RequestMessage as RequestMessageEvent_TemplateSendJobFinish);
                break;

            case Event.PICPHOTOORALBUM:    //弹出拍照或者相册发图
                responseMessage = OneEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_PicPhotoOrAlbum);
                break;

            case Event.SCANCODEPUSH:    //扫码推事件
                responseMessage = OneEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_ScancodePush);
                break;

            case Event.SCANCODEWAITMSG:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OneEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_ScancodeWaitmsg);
                break;

            case Event.LOCATIONSELECT:    //弹出地理位置选择器
                responseMessage = OneEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_LocationSelect);
                break;

            case Event.PICWEIXIN:    //弹出微信相册发图器
                responseMessage = OneEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_PicWeixin);
                break;

            case Event.PICSYSPHOTO:    //弹出系统拍照发图
                responseMessage = OneEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_PicSysphoto);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #23
0
 public override IResponseMessageBase OnEvent_EnterRequest(IRequestMessageEventBase requestMessage)
 {
     var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);
     responseMessage.Content = "您刚才发送了ENTER事件请求。";
     return responseMessage;
 }
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;
            var weixinAppId = _postModel.AppId;

            switch (strongRequestMessage.Event)
            {
            case Event.ENTER:
                responseMessage = OnEvent_EnterRequest(RequestMessage as RequestMessageEvent_Enter);
                break;

            case Event.LOCATION:    //自动发送的用户当前位置
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //退订
                responseMessage = OnEvent_UnsubscribeRequest(RequestMessage as RequestMessageEvent_Unsubscribe);
                break;

            case Event.CLICK:    //菜单点击
                responseMessage = CurrentMessageHandlerNode.Execute(RequestMessage, this, weixinAppId) ??
                                  OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.scan:    //二维码
                responseMessage = OnEvent_ScanRequest(RequestMessage as RequestMessageEvent_Scan);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.MASSSENDJOBFINISH:    //群发消息成功
                responseMessage = OnEvent_MassSendJobFinishRequest(RequestMessage as RequestMessageEvent_MassSendJobFinish);
                break;

            case Event.TEMPLATESENDJOBFINISH:    //推送模板消息成功
                responseMessage = OnEvent_TemplateSendJobFinishRequest(RequestMessage as RequestMessageEvent_TemplateSendJobFinish);
                break;

            case Event.pic_photo_or_album:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.scancode_push:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.scancode_waitmsg:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.location_select:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.pic_weixin:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.pic_sysphoto:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.card_pass_check:    //卡券通过审核
                responseMessage = OnEvent_Card_Pass_CheckRequest(RequestMessage as RequestMessageEvent_Card_Pass_Check);
                break;

            case Event.card_not_pass_check:    //卡券未通过审核
                responseMessage = OnEvent_Card_Not_Pass_CheckRequest(RequestMessage as RequestMessageEvent_Card_Not_Pass_Check);
                break;

            case Event.user_get_card:    //领取卡券
                responseMessage = OnEvent_User_Get_CardRequest(RequestMessage as RequestMessageEvent_User_Get_Card);
                break;

            case Event.user_del_card:    //删除卡券
                responseMessage = OnEvent_User_Del_CardRequest(RequestMessage as RequestMessageEvent_User_Del_Card);
                break;

            case Event.kf_create_session:    //多客服接入会话
                responseMessage = OnEvent_Kf_Create_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Create_Session);
                break;

            case Event.kf_close_session:    //多客服关闭会话
                responseMessage = OnEvent_Kf_Close_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Close_Session);
                break;

            case Event.kf_switch_session:    //多客服转接会话
                responseMessage = OnEvent_Kf_Switch_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Switch_Session);
                break;

            case Event.poi_check_notify:    //审核结果事件推送
                responseMessage = OnEvent_Poi_Check_NotifyRequest(RequestMessage as RequestMessageEvent_Poi_Check_Notify);
                break;

            case Event.WifiConnected:    //Wi-Fi连网成功
                responseMessage = OnEvent_WifiConnectedRequest(RequestMessage as RequestMessageEvent_WifiConnected);
                break;

            case Event.user_consume_card:    //卡券核销
                responseMessage = OnEvent_User_Consume_CardRequest(RequestMessage as RequestMessageEvent_User_Consume_Card);
                break;

            case Event.user_enter_session_from_card:    //从卡券进入公众号会话
                responseMessage = OnEvent_User_Enter_Session_From_CardRequest(RequestMessage as RequestMessageEvent_User_Enter_Session_From_Card);
                break;

            case Event.user_view_card:    //进入会员卡
                responseMessage = OnEvent_User_View_CardRequest(RequestMessage as RequestMessageEvent_User_View_Card);
                break;

            case Event.merchant_order:    //微小店订单付款通知
                responseMessage = OnEvent_Merchant_OrderRequest(RequestMessage as RequestMessageEvent_Merchant_Order);
                break;

            case Event.submit_membercard_user_info:    //接收会员信息事件通知
                responseMessage = OnEvent_Submit_Membercard_User_InfoRequest(RequestMessage as RequestMessageEvent_Submit_Membercard_User_Info);
                break;

            case Event.ShakearoundUserShake:    //摇一摇事件通知
                responseMessage = OnEvent_ShakearoundUserShakeRequest(RequestMessage as RequestMessageEvent_ShakearoundUserShake);
                break;

            case Event.user_gifting_card:    //卡券转赠事件推送
                responseMessage = OnEvent_User_Gifting_CardRequest(RequestMessage as RequestMessageEvent_User_Gifting_Card);
                break;

            case Event.user_pay_from_pay_cell:    //微信买单完成
                responseMessage = OnEvent_User_Pay_From_Pay_CellRequest(RequestMessage as RequestMessageEvent_User_Pay_From_Pay_Cell);
                break;

            case Event.update_member_card:    //会员卡内容更新事件:会员卡积分余额发生变动时
                responseMessage = OnEvent_Update_Member_CardRequest(RequestMessage as RequestMessageEvent_Update_Member_Card);
                break;

            case Event.card_sku_remind:    //卡券库存报警事件:当某个card_id的初始库存数大于200且当前库存小于等于100时
                responseMessage = OnEvent_Card_Sku_RemindRequest(RequestMessage as RequestMessageEvent_Card_Sku_Remind);
                break;

            case Event.card_pay_order:    //券点流水详情事件:当商户朋友的券券点发生变动时
                responseMessage = OnEvent_Card_Pay_OrderRequest(RequestMessage as RequestMessageEvent_Card_Pay_Order);
                break;

            case Event.apply_merchant_audit_info:    //创建门店小程序审核事件
                responseMessage = OnEvent_Apply_Merchant_Audit_InfoRequest(RequestMessage as RequestMessageEvent_ApplyMerchantAuditInfo);
                break;

            case Event.add_store_audit_info:    //门店小程序中创建门店审核事件
                responseMessage = OnEvent_Add_Store_Audit_Info(RequestMessage as RequestMessageEvent_AddStoreAuditInfo);
                break;

            case Event.create_map_poi_audit_info:    //从腾讯地图中创建门店审核事件
                responseMessage = OnEvent_Create_Map_Poi_Audit_Info(RequestMessage as RequestMessageEvent_CreateMapPoiAuditInfo);
                break;

            case Event.modify_store_audit_info:    //修改门店图片审核事件
                responseMessage = OnEvent_Modify_Store_Audit_Info(RequestMessage as RequestMessageEvent_ModifyStoreAuditInfo);
                break;

            case Event.view_miniprogram:    //点击菜单跳转小程序的事件推送
                responseMessage = OnEvent_View_Miniprogram(RequestMessage as RequestMessageEvent_View_Miniprogram);
                break;

                #region 卡券回调

            case Event.giftcard_pay_done:
                responseMessage = OnEvent_GiftCard_Pay_DoneRequest(RequestMessage as RequestMessageEvent_GiftCard_Pay_Done);
                break;

            case Event.giftcard_send_to_friend:
                responseMessage = OnEvent_GiftCard_Send_To_FriendRequest(RequestMessage as RequestMessageEvent_GiftCard_Send_To_Friend);
                break;

            case Event.giftcard_user_accept:
                responseMessage = OnEvent_GiftCard_User_AcceptRequest(RequestMessage as RequestMessageEvent_GiftCard_User_Accept);
                break;

                #endregion

                #region 微信认证事件推送

            case Event.qualification_verify_success:    //资质认证成功(此时立即获得接口权限)
                responseMessage = OnEvent_QualificationVerifySuccessRequest(RequestMessage as RequestMessageEvent_QualificationVerifySuccess);
                break;

            case Event.qualification_verify_fail:    //资质认证失败
                responseMessage = OnEvent_QualificationVerifyFailRequest(RequestMessage as RequestMessageEvent_QualificationVerifyFail);
                break;

            case Event.naming_verify_success:    //名称认证成功(即命名成功)
                responseMessage = OnEvent_NamingVerifySuccessRequest(RequestMessage as RequestMessageEvent_NamingVerifySuccess);
                break;

            case Event.naming_verify_fail:    //名称认证失败(这时虽然客户端不打勾,但仍有接口权限)
                responseMessage = OnEvent_NamingVerifyFailRequest(RequestMessage as RequestMessageEvent_NamingVerifyFail);
                break;

            case Event.annual_renew:    //年审通知
                responseMessage = OnEvent_AnnualRenewRequest(RequestMessage as RequestMessageEvent_AnnualRenew);
                break;

            case Event.verify_expired:    //认证过期失效通知
                responseMessage = OnEvent_VerifyExpiredRequest(RequestMessage as RequestMessageEvent_VerifyExpired);
                break;
                #endregion

                #region 小程序审核事件推送
                //该事件已移动到Senparc.Weixin.WxOpen
                //case Event.weapp_audit_success://
                //    responseMessage = OnEvent_WeAppAuditSuccessRequest(RequestMessage as RequestMessageEvent_WeAppAuditSuccess);
                //    break;
                //case Event.weapp_audit_fail://
                //    responseMessage = OnEvent_WeAppAuditFailRequest(RequestMessage as RequestMessageEvent_WeAppAuditFail);
                //    break;
                #endregion
                #region 微信电子发票
            case Event.user_authorize_invoice:
                responseMessage = OnEvent_User_Authorize_Invoice(RequestMessage as RequestMessageEvent_User_Authorize_Invoice);
                break;

                #endregion
            default:
                throw new Exceptions.UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #25
0
 public override IResponseMessageBase OnEvent_LocationRequest(IRequestMessageEventBase requestMessage)
 {
     throw new Exception("暂不可用");
 }
예제 #26
0
        //香兰坊用的token也是weixin_xinshui

        protected void Page_Load(object sender, EventArgs e)
        {
            string signature = base.Request["signature"];
            string timestamp = base.Request["timestamp"];
            string nonce     = base.Request["nonce"];
            string str       = base.Request["echostr"];

            if (base.Request.HttpMethod == "GET")
            {
                if (CheckSignature.Check(signature, timestamp, nonce, Token))
                {
                    this.WriteContent(str);
                }
                else
                {
                    this.WriteContent("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。");
                }
                base.Response.End();
            }
            else
            {
                Senparc.Weixin.MP.Sample.CommonService.CustomMessageHandler.CustomMessageHandler messageHandler;
                if (!CheckSignature.Check(signature, timestamp, nonce, WebConfigurationManager.AppSettings["WeixinToken"]))
                {
                    this.WriteContent("参数错误!");
                }
                else
                {
                    PostModel postModel = new PostModel
                    {
                        Signature      = base.Request.QueryString["signature"],
                        Msg_Signature  = base.Request.QueryString["msg_signature"],
                        Timestamp      = base.Request.QueryString["timestamp"],
                        Nonce          = base.Request.QueryString["nonce"],
                        Token          = Token,
                        EncodingAESKey = WebConfigurationManager.AppSettings["WeixinEncodingAESKey"],
                        AppId          = Appid
                    };
                    int maxRecordCount = 10;
                    messageHandler = new Senparc.Weixin.MP.Sample.CommonService.CustomMessageHandler.CustomMessageHandler(base.Request.InputStream, postModel, maxRecordCount);
                    int num2 = 0;
                    try
                    {
                        object[] objArray1 = new object[] { "~/App_Data/", DateTime.Now.Ticks, "_Request_", messageHandler.RequestMessage.FromUserName, ".txt" };
                        //messageHandler.RequestDocument.Save(base.Server.MapPath(string.Concat(objArray1)));
                        if (messageHandler.RequestMessage.MsgType.ToString().ToLower() != "event")
                        {
                            base.Application.Lock();
                            messageHandler.Execute();
                            base.Application.UnLock();
                        }
                        else
                        {
                            IRequestMessageEventBase requestMessage = messageHandler.RequestMessage as IRequestMessageEventBase;
                            if (requestMessage.Event == Event.subscribe)
                            {
                                base.Application.Lock();
                                messageHandler.Execute();
                                base.Application.UnLock();
                            }
                            else
                            {
                                messageHandler.Execute();
                            }
                        }
                        num2 = 6;
                        if (messageHandler.ResponseMessage != null)
                        {
                            object[] objArray2 = new object[] { "~/App_Data/", DateTime.Now.Ticks, "_Response_", messageHandler.ResponseMessage.ToUserName, ".txt" };
                            messageHandler.ResponseDocument.Save(base.Server.MapPath(string.Concat(objArray2)));
                            this.WriteContent(messageHandler.ResponseDocument.ToString());
                        }
                        num2 = 7;
                    }
                    catch (Exception exception)
                    {
                        using (TextWriter writer = new StreamWriter(base.Server.MapPath("~/App_Data/Error_" + DateTime.Now.Ticks + ".txt")))
                        {
                            writer.WriteLine(string.Concat(new object[] { exception.ToString(), "step:", num2, "." }));
                            writer.WriteLine(exception.InnerException.ToString());
                            if (messageHandler.ResponseDocument != null)
                            {
                                writer.WriteLine(messageHandler.ResponseDocument.ToString());
                            }
                            writer.Flush();
                            writer.Close();
                        }
                    }
                    finally
                    {
                        base.Response.End();
                    }
                }
            }
        }
예제 #27
0
 public override IResponseMessageBase OnEvent_UnsubscribeRequest(IRequestMessageEventBase requestMessage)
 {
     var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);
     responseMessage.Content = "";
     return responseMessage;
 }
예제 #28
0
        private void ResponseQrCode(IRequestMessageEventBase requestMessage, ref ResponseMessageText responseMessage)
        {
            #region
            //Dictionary<string, string> qs = new Dictionary<string, string>();
            //qs.Add("groupId", "handler1");

            //HubConnection hubConnection = new HubConnection("http://" + System.Web.HttpContext.Current.Request.Url.Authority + "/", qs);
            //IHubProxy testHubProxy = hubConnection.CreateHubProxy("TestHub");

            //ServicePointManager.DefaultConnectionLimit = 10;
            //hubConnection.Start().ContinueWith(task =>
            //{
            //    testHubProxy.Invoke("hello", RequestMessage.FromUserName);
            //});
            #endregion

            var qrcode = WeixinHelper.GetQrCode(requestMessage.EventKey);

            if (qrcode == null)
            {
                responseMessage.Content = "未找到,请刷新页面";
                return;
            }

            if (qrcode.IsWeixinSend)
            {
                responseMessage.Content = "二维码已过期,刷新电脑页面重试";
            }
            else
            {
                var eventKey = requestMessage.EventKey;
                var openId = requestMessage.FromUserName;

                WeixinHelper.UpdateQrCodeStatu(eventKey, openId);
            }
        }
예제 #29
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.ENTER:
                responseMessage = OnEvent_EnterRequest(RequestMessage as RequestMessageEvent_Enter);
                break;

            case Event.LOCATION:    //自动发送的用户当前位置
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //退订
                responseMessage = OnEvent_UnsubscribeRequest(RequestMessage as RequestMessageEvent_Unsubscribe);
                break;

            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.scan:    //二维码
                responseMessage = OnEvent_ScanRequest(RequestMessage as RequestMessageEvent_Scan);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.MASSSENDJOBFINISH:    //群发消息成功
                responseMessage = OnEvent_MassSendJobFinishRequest(RequestMessage as RequestMessageEvent_MassSendJobFinish);
                break;

            case Event.TEMPLATESENDJOBFINISH:    //推送模板消息成功
                responseMessage = OnEvent_TemplateSendJobFinishRequest(RequestMessage as RequestMessageEvent_TemplateSendJobFinish);
                break;

            case Event.pic_photo_or_album:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.scancode_push:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.scancode_waitmsg:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.location_select:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.pic_weixin:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.pic_sysphoto:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.card_pass_check:    //卡券通过审核
                responseMessage = OnEvent_Card_Pass_CheckRequest(RequestMessage as RequestMessageEvent_Card_Pass_Check);
                break;

            case Event.card_not_pass_check:    //卡券未通过审核
                responseMessage = OnEvent_Card_Not_Pass_CheckRequest(RequestMessage as RequestMessageEvent_Card_Not_Pass_Check);
                break;

            case Event.user_get_card:    //领取卡券
                responseMessage = OnEvent_User_Get_CardRequest(RequestMessage as RequestMessageEvent_User_Get_Card);
                break;

            case Event.user_del_card:    //删除卡券
                responseMessage = OnEvent_User_Del_CardRequest(RequestMessage as RequestMessageEvent_User_Del_Card);
                break;

            case Event.kf_create_session:    //多客服接入会话
                responseMessage = OnEvent_Kf_Create_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Create_Session);
                break;

            case Event.kf_close_session:    //多客服关闭会话
                responseMessage = OnEvent_Kf_Close_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Close_Session);
                break;

            case Event.kf_switch_session:    //多客服转接会话
                responseMessage = OnEvent_Kf_Switch_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Switch_Session);
                break;

            case Event.poi_check_notify:    //审核结果事件推送
                responseMessage = OnEvent_Poi_Check_NotifyRequest(RequestMessage as RequestMessageEvent_Poi_Check_Notify);
                break;

            case Event.WifiConnected:    //Wi-Fi连网成功
                responseMessage = OnEvent_WifiConnected(RequestMessage as RequestMessageEvent_WifiConnected);
                break;

            case Event.user_consume_card:    //卡券核销
                responseMessage = OnEvent_User_Consume_Card(RequestMessage as RequestMessageEvent_User_Consume_Card);
                break;

            case Event.user_enter_session_from_card:    //从卡券进入公众号会话
                responseMessage = OnEvent_User_Enter_Session_From_Card(RequestMessage as RequestMessageEvent_User_Enter_Session_From_Card);
                break;

            case Event.user_view_card:    //进入会员卡
                responseMessage = OnEvent_User_View_Card(RequestMessage as RequestMessageEvent_User_View_Card);
                break;

            case Event.merchant_order:    //微小店订单付款通知
                responseMessage = OnEvent_Merchant_Order(RequestMessage as RequestMessageEvent_Merchant_Order);
                break;

            case Event.submit_membercard_user_info:    //接收会员信息事件通知
                responseMessage = OnEvent_Submit_Membercard_User_Info(RequestMessage as RequestMessageEvent_Submit_Membercard_User_Info);
                break;

            case Event.ShakearoundUserShake:    //摇一摇事件通知
                responseMessage = OnEvent_ShakearoundUserShake(RequestMessage as RequestMessageEvent_ShakearoundUserShake);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
        public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            switch (requestMessage.Event)
            {
            case Event.ENTER:
                break;

            case Event.LOCATION:
                break;

            case Event.subscribe:
                var requestMessagenew = (RequestMessageEvent_Subscribe)requestMessage;
                //RCLog.Info(this, "EventKey:" + requestMessagenew.EventKey);///推荐人openId
                //RCLog.Info(this, "FromUserName:" + requestMessagenew.FromUserName);///订阅人Id
                //RCLog.Info(this, "ToUserName:" + requestMessagenew.ToUserName);///服务号Id

                var result = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == requestMessagenew.FromUserName);
                if (result == null)
                {
                    var    ReferrerId = requestMessagenew.EventKey.Replace("qrscene_", "");
                    Menber menber     = new Menber();
                    menber.WeChatOpenId = requestMessagenew.FromUserName;
                    menber.ReferrerId   = requestMessagenew.FromUserName == ReferrerId ?"": ReferrerId;
                    _context.Add(menber);
                    _context.SaveChanges();
                }
                break;

            case Event.unsubscribe:
                break;

            case Event.CLICK:
                break;

            case Event.scan:
                break;

            case Event.VIEW:
                break;

            case Event.MASSSENDJOBFINISH:
                break;

            case Event.TEMPLATESENDJOBFINISH:
                break;

            case Event.scancode_push:
                break;

            case Event.scancode_waitmsg:
                break;

            case Event.pic_sysphoto:
                break;

            case Event.pic_photo_or_album:
                break;

            case Event.pic_weixin:
                break;

            case Event.location_select:
                break;

            case Event.card_pass_check:
                break;

            case Event.card_not_pass_check:
                break;

            case Event.user_get_card:
                break;

            case Event.user_del_card:
                break;

            case Event.kf_create_session:
                break;

            case Event.kf_close_session:
                break;

            case Event.kf_switch_session:
                break;

            case Event.poi_check_notify:
                break;

            case Event.WifiConnected:
                break;

            case Event.user_consume_card:
                break;

            case Event.user_view_card:
                break;

            case Event.user_enter_session_from_card:
                break;

            case Event.merchant_order:
                break;

            case Event.submit_membercard_user_info:
                break;

            case Event.ShakearoundUserShake:
                break;

            case Event.user_gifting_card:
                break;

            case Event.user_pay_from_pay_cell:
                break;

            case Event.update_member_card:
                break;

            case Event.card_sku_remind:
                break;

            case Event.card_pay_order:
                break;

            case Event.qualification_verify_success:
                break;

            case Event.qualification_verify_fail:
                break;

            case Event.naming_verify_success:
                break;

            case Event.naming_verify_fail:
                break;

            case Event.annual_renew:
                break;

            case Event.verify_expired:
                break;

            case Event.weapp_audit_success:
                break;

            case Event.weapp_audit_fail:
                break;

            default:
                break;
            }
            return(base.OnEventRequest(requestMessage));
        }
예제 #31
0
        public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            IResponseMessageBase response = null;

            switch (requestMessage.Event)
            {
            case Event.ENTER:
                break;

            case Event.LOCATION:
                break;

            case Event.subscribe:     //关注
                response = OnSubscribeEvent?.Invoke(this, requestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:
                response = OnUnsubscribeEvent?.Invoke(this, requestMessage as RequestMessageEvent_Unsubscribe);
                break;

            case Event.CLICK:
                break;

            case Event.scan:    //扫码
                response = OnScanEvent?.Invoke(this, requestMessage as RequestMessageEvent_Scan);
                break;

            case Event.VIEW:
                break;

            case Event.MASSSENDJOBFINISH:    //模板消息推送结果回调
                response = OnMassageSendJobFinishEvent?.Invoke(this, requestMessage as RequestMessageEvent_MassSendJobFinish);
                break;

            case Event.TEMPLATESENDJOBFINISH:
                break;

            case Event.scancode_push:
                break;

            case Event.scancode_waitmsg:
                break;

            case Event.pic_sysphoto:
                break;

            case Event.pic_photo_or_album:
                break;

            case Event.pic_weixin:
                break;

            case Event.location_select:
                break;

            case Event.card_pass_check:
                break;

            case Event.card_not_pass_check:
                break;

            case Event.user_get_card:
                break;

            case Event.user_del_card:
                break;

            case Event.kf_create_session:
                break;

            case Event.kf_close_session:
                break;

            case Event.kf_switch_session:
                break;

            case Event.poi_check_notify:
                break;

            case Event.WifiConnected:
                break;

            case Event.user_consume_card:
                break;

            case Event.user_view_card:
                break;

            case Event.user_enter_session_from_card:
                break;

            case Event.merchant_order:
                break;

            case Event.submit_membercard_user_info:
                break;

            case Event.ShakearoundUserShake:
                break;

            case Event.user_gifting_card:
                break;

            case Event.user_pay_from_pay_cell:
                break;

            case Event.update_member_card:
                break;

            case Event.card_sku_remind:
                break;

            case Event.card_pay_order:
                break;

            case Event.qualification_verify_success:
                break;

            case Event.qualification_verify_fail:
                break;

            case Event.naming_verify_success:
                break;

            case Event.naming_verify_fail:
                break;

            case Event.annual_renew:
                break;

            case Event.verify_expired:
                break;

            case Event.weapp_audit_success:
                break;

            case Event.weapp_audit_fail:
                break;

            default:
                break;
            }

            if (response != null)
            {
                return(response);
            }
            return(base.OnEventRequest(requestMessage));
        }
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual async Task <IResponseMessageBase> OnEventRequestAsync(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.ENTER:
                responseMessage = await OnEvent_EnterRequestAsync(RequestMessage as RequestMessageEvent_Enter);

                break;

            case Event.LOCATION:    //自动发送的用户当前位置
                responseMessage = await OnEvent_LocationRequestAsync(RequestMessage as RequestMessageEvent_Location);

                break;

            case Event.subscribe:    //订阅
                responseMessage = await OnEvent_SubscribeRequestAsync(RequestMessage as RequestMessageEvent_Subscribe);

                break;

            case Event.unsubscribe:    //退订
                responseMessage = await OnEvent_UnsubscribeRequestAsync(RequestMessage as RequestMessageEvent_Unsubscribe);

                break;

            case Event.CLICK:    //菜单点击
                responseMessage = await OnEvent_ClickRequestAsync(RequestMessage as RequestMessageEvent_Click);

                break;

            case Event.scan:    //二维码
                responseMessage = await OnEvent_ScanRequestAsync(RequestMessage as RequestMessageEvent_Scan);

                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = await OnEvent_ViewRequestAsync(RequestMessage as RequestMessageEvent_View);

                break;

            case Event.MASSSENDJOBFINISH:    //群发消息成功
                responseMessage = await OnEvent_MassSendJobFinishRequestAsync(RequestMessage as RequestMessageEvent_MassSendJobFinish);

                break;

            case Event.TEMPLATESENDJOBFINISH:    //推送模板消息成功
                responseMessage = await OnEvent_TemplateSendJobFinishRequestAsync(RequestMessage as RequestMessageEvent_TemplateSendJobFinish);

                break;

            case Event.pic_photo_or_album:    //弹出拍照或者相册发图
                responseMessage = await OnEvent_PicPhotoOrAlbumRequestAsync(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);

                break;

            case Event.scancode_push:    //扫码推事件
                responseMessage = await OnEvent_ScancodePushRequestAsync(RequestMessage as RequestMessageEvent_Scancode_Push);

                break;

            case Event.scancode_waitmsg:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = await OnEvent_ScancodeWaitmsgRequestAsync(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);

                break;

            case Event.location_select:    //弹出地理位置选择器
                responseMessage = await OnEvent_LocationSelectRequestAsync(RequestMessage as RequestMessageEvent_Location_Select);

                break;

            case Event.pic_weixin:    //弹出微信相册发图器
                responseMessage = await OnEvent_PicWeixinRequestAsync(RequestMessage as RequestMessageEvent_Pic_Weixin);

                break;

            case Event.pic_sysphoto:    //弹出系统拍照发图
                responseMessage = await OnEvent_PicSysphotoRequestAsync(RequestMessage as RequestMessageEvent_Pic_Sysphoto);

                break;

            case Event.card_pass_check:    //卡券通过审核
                responseMessage = await OnEvent_Card_Pass_CheckRequestAsync(RequestMessage as RequestMessageEvent_Card_Pass_Check);

                break;

            case Event.card_not_pass_check:    //卡券未通过审核
                responseMessage = await OnEvent_Card_Not_Pass_CheckRequestAsync(RequestMessage as RequestMessageEvent_Card_Not_Pass_Check);

                break;

            case Event.user_get_card:    //领取卡券
                responseMessage = await OnEvent_User_Get_CardRequestAsync(RequestMessage as RequestMessageEvent_User_Get_Card);

                break;

            case Event.user_del_card:    //删除卡券
                responseMessage = await OnEvent_User_Del_CardRequestAsync(RequestMessage as RequestMessageEvent_User_Del_Card);

                break;

            case Event.kf_create_session:    //多客服接入会话
                responseMessage = await OnEvent_Kf_Create_SessionRequestAsync(RequestMessage as RequestMessageEvent_Kf_Create_Session);

                break;

            case Event.kf_close_session:    //多客服关闭会话
                responseMessage = await OnEvent_Kf_Close_SessionRequestAsync(RequestMessage as RequestMessageEvent_Kf_Close_Session);

                break;

            case Event.kf_switch_session:    //多客服转接会话
                responseMessage = await OnEvent_Kf_Switch_SessionRequestAsync(RequestMessage as RequestMessageEvent_Kf_Switch_Session);

                break;

            case Event.poi_check_notify:    //审核结果事件推送
                responseMessage = await OnEvent_Poi_Check_NotifyRequestAsync(RequestMessage as RequestMessageEvent_Poi_Check_Notify);

                break;

            case Event.WifiConnected:    //Wi-Fi连网成功
                responseMessage = await OnEvent_WifiConnectedRequestAsync(RequestMessage as RequestMessageEvent_WifiConnected);

                break;

            case Event.user_consume_card:    //卡券核销
                responseMessage = await OnEvent_User_Consume_CardRequestAsync(RequestMessage as RequestMessageEvent_User_Consume_Card);

                break;

            case Event.user_enter_session_from_card:    //从卡券进入公众号会话
                responseMessage = await OnEvent_User_Enter_Session_From_CardRequestAsync(RequestMessage as RequestMessageEvent_User_Enter_Session_From_Card);

                break;

            case Event.user_view_card:    //进入会员卡
                responseMessage = await OnEvent_User_View_CardRequestAsync(RequestMessage as RequestMessageEvent_User_View_Card);

                break;

            case Event.merchant_order:    //微小店订单付款通知
                responseMessage = await OnEvent_Merchant_OrderRequestAsync(RequestMessage as RequestMessageEvent_Merchant_Order);

                break;

            case Event.submit_membercard_user_info:    //接收会员信息事件通知
                responseMessage = await OnEvent_Submit_Membercard_User_InfoRequestAsync(RequestMessage as RequestMessageEvent_Submit_Membercard_User_Info);

                break;

            case Event.ShakearoundUserShake:    //摇一摇事件通知
                responseMessage = await OnEvent_ShakearoundUserShakeRequestAsync(RequestMessage as RequestMessageEvent_ShakearoundUserShake);

                break;

            case Event.user_gifting_card:    //卡券转赠事件推送
                responseMessage = await OnEvent_User_Gifting_CardRequestAsync(RequestMessage as RequestMessageEvent_User_Gifting_Card);

                break;

            case Event.user_pay_from_pay_cell:    //微信买单完成
                responseMessage = await OnEvent_User_Pay_From_Pay_CellRequestAsync(RequestMessage as RequestMessageEvent_User_Pay_From_Pay_Cell);

                break;

            case Event.update_member_card:    //会员卡内容更新事件:会员卡积分余额发生变动时
                responseMessage = await OnEvent_Update_Member_CardRequestAsync(RequestMessage as RequestMessageEvent_Update_Member_Card);

                break;

            case Event.card_sku_remind:    //卡券库存报警事件:当某个card_id的初始库存数大于200且当前库存小于等于100时
                responseMessage = await OnEvent_Card_Sku_RemindRequestAsync(RequestMessage as RequestMessageEvent_Card_Sku_Remind);

                break;

            case Event.card_pay_order:    //券点流水详情事件:当商户朋友的券券点发生变动时
                responseMessage = await OnEvent_Card_Pay_OrderRequestAsync(RequestMessage as RequestMessageEvent_Card_Pay_Order);

                break;

                #region 微信认证事件推送

            case Event.qualification_verify_success:    //资质认证成功(此时立即获得接口权限)
                responseMessage = await OnEvent_QualificationVerifySuccessRequestAsync(RequestMessage as RequestMessageEvent_QualificationVerifySuccess);

                break;

            case Event.qualification_verify_fail:    //资质认证失败
                responseMessage = await OnEvent_QualificationVerifyFailRequestAsync(RequestMessage as RequestMessageEvent_QualificationVerifyFail);

                break;

            case Event.naming_verify_success:    //名称认证成功(即命名成功)
                responseMessage = await OnEvent_NamingVerifySuccessRequestAsync(RequestMessage as RequestMessageEvent_NamingVerifySuccess);

                break;

            case Event.naming_verify_fail:    //名称认证失败(这时虽然客户端不打勾,但仍有接口权限)
                responseMessage = await OnEvent_NamingVerifyFailRequestAsync(RequestMessage as RequestMessageEvent_NamingVerifyFail);

                break;

            case Event.annual_renew:    //年审通知
                responseMessage = await OnEvent_AnnualRenewRequestAsync(RequestMessage as RequestMessageEvent_AnnualRenew);

                break;

            case Event.verify_expired:    //认证过期失效通知
                responseMessage = await OnEvent_VerifyExpiredRequestAsync(RequestMessage as RequestMessageEvent_VerifyExpired);

                break;
                #endregion

                #region 小程序审核事件推送

            case Event.weapp_audit_success:    //
                responseMessage = await OnEvent_WeAppAuditSuccessRequestAsync(RequestMessage as RequestMessageEvent_WeAppAuditSuccess);

                break;

            case Event.weapp_audit_fail:    //
                responseMessage = await OnEvent_WeAppAuditFailRequestAsync(RequestMessage as RequestMessageEvent_WeAppAuditFail);

                break;

                #endregion
            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.ENTER:    //
                responseMessage = OnEvent_EnterRequest(RequestMessage as RequestMessageEvent_Enter);
                break;

            case Event.LOCATION:    //自动发送的用户当前位置
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.SUBSCRIBE:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.UNSUBSCRIBE:    //退订
                responseMessage = OnEvent_UnsubscribeRequest(RequestMessage as RequestMessageEvent_Unsubscribe);
                break;

            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.SCAN:    //二维码
                responseMessage = OnEvent_ScanRequest(RequestMessage as RequestMessageEvent_Scan);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.MASSSENDJOBFINISH:    //群发消息成功
                responseMessage = OnEvent_MassSendJobFinishRequest(RequestMessage as RequestMessageEvent_MassSendJobFinish);
                break;

            case Event.TEMPLATESENDJOBFINISH:    //推送模板消息成功
                responseMessage = OnEvent_TemplateSendJobFinishRequest(RequestMessage as RequestMessageEvent_TemplateSendJobFinish);
                break;

            case Event.PIC_PHOTO_OR_ALBUM:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.SCANCODE_PUSH:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.SCANCODE_WAITMSG:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.LOCATION_SELECT:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.PIC_WEIXIN:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.PIC_SYSPHOTO:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.CARD_PASS_CHECK:    //卡券通过审核
                responseMessage = OnEvent_Card_Pass_CheckRequest(RequestMessage as RequestMessageEvent_Card_Pass_Check);
                break;

            case Event.CARD_NOT_PASS_CHECK:    //卡券未通过审核
                responseMessage = OnEvent_Card_Not_Pass_CheckRequest(RequestMessage as RequestMessageEvent_Card_Not_Pass_Check);
                break;

            case Event.USER_GET_CARD:    //领取卡券
                responseMessage = OnEvent_User_Get_CardRequest(RequestMessage as RequestMessageEvent_User_Get_Card);
                break;

            case Event.USER_DEL_CARD:    //删除卡券
                responseMessage = OnEvent_User_Del_CardRequest(RequestMessage as RequestMessageEvent_User_Del_Card);
                break;

            case Event.KF_CREATE_SESSION:    //多客服接入会话
                responseMessage = OnEvent_Kf_Create_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Create_Session);
                break;

            case Event.KF_CLOSE_SESSION:    //多客服关闭会话
                responseMessage = OnEvent_Kf_Close_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Close_Session);
                break;

            case Event.KF_SWITCH_SESSION:    //多客服转接会话
                responseMessage = OnEvent_Kf_Switch_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Switch_Session);
                break;

            case Event.POI_CHECK_NOTIFY:    //审核结果事件推送
                responseMessage = OnEvent_Poi_Check_NotifyRequest(RequestMessage as RequestMessageEvent_Poi_Check_Notify);
                break;

            case Event.WIFICONNECTED:    //Wi-Fi连网成功
                responseMessage = OnEvent_WifiConnected(RequestMessage as RequestMessageEvent_WifiConnected);
                break;

            case Event.USER_CONSUME_CARD:    //卡券核销
                responseMessage = OnEvent_User_Consume_Card(RequestMessage as RequestMessageEvent_User_Consume_Card);
                break;

            case Event.USER_ENTER_SESSION_FROM_CARD:    //从卡券进入公众号会话
                responseMessage = OnEvent_User_Enter_Session_From_Card(RequestMessage as RequestMessageEvent_User_Enter_Session_From_Card);
                break;

            case Event.USER_VIEW_CARD:    //进入会员卡
                responseMessage = OnEvent_User_View_Card(RequestMessage as RequestMessageEvent_User_View_Card);
                break;

            case Event.MERCHANT_ORDER:    //微小店订单付款通知
                responseMessage = OnEvent_Merchant_Order(RequestMessage as RequestMessageEvent_Merchant_Order);
                break;

            case Event.SUBMIT_MEMBERCARD_USER_INFO:    //接收会员信息事件通知
                responseMessage = OnEvent_Submit_Membercard_User_Info(RequestMessage as RequestMessageEvent_Submit_Membercard_User_Info);
                break;

            case Event.SHAKEAROUNDUSERSHAKE:    //摇一摇事件通知
                responseMessage = OnEvent_ShakearoundUserShake(RequestMessage as RequestMessageEvent_ShakearoundUserShake);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #34
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage             = RequestMessage as IRequestMessageEventBase;
            IResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.LOCATION:    //自动发送的用户当前位置
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //退订
                responseMessage = OnEvent_UnsubscribeRequest(RequestMessage as RequestMessageEvent_Unsubscribe);
                break;

            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.scan:    //二维码
                responseMessage = OnEvent_ScanRequest(RequestMessage as RequestMessageEvent_Scan);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.MASSSENDJOBFINISH:    //群发消息成功
                responseMessage = OnEvent_MassSendJobFinishRequest(RequestMessage as RequestMessageEvent_MassSendJobFinish);
                break;

            case Event.TEMPLATESENDJOBFINISH:    //推送模板消息成功
                responseMessage = OnEvent_TemplateSendJobFinishRequest(RequestMessage as RequestMessageEvent_TemplateSendJobFinish);
                break;

            case Event.pic_photo_or_album:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.scancode_push:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.scancode_waitmsg:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.location_select:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.pic_weixin:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.pic_sysphoto:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.card_pass_check:    //卡券通过审核
                responseMessage = OnEvent_Card_Pass_CheckRequest(RequestMessage as RequestMessageEvent_Card_Pass_Check);
                break;

            case Event.card_not_pass_check:    //卡券未通过审核
                responseMessage = OnEvent_Card_Not_Pass_CheckRequest(RequestMessage as RequestMessageEvent_Card_Not_Pass_Check);
                break;

            case Event.user_get_card:    //领取卡券
                responseMessage = OnEvent_User_Get_CardRequest(RequestMessage as RequestMessageEvent_User_Get_Card);
                break;

            case Event.user_del_card:    //删除卡券
                responseMessage = OnEvent_User_Del_CardRequest(RequestMessage as RequestMessageEvent_User_Del_Card);
                break;

            case Event.kf_create_session:    //多客服接入会话
                responseMessage = OnEvent_Kf_Create_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Create_Session);
                break;

            case Event.kf_close_session:    //多客服关闭会话
                responseMessage = OnEvent_Kf_Close_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Close_Session);
                break;

            case Event.kf_switch_session:    //多客服转接会话
                responseMessage = OnEvent_Kf_Switch_SessionRequest(RequestMessage as RequestMessageEvent_Kf_Switch_Session);
                break;

            case Event.poi_check_notify:    //审核结果事件推送
                responseMessage = OnEvent_Poi_Check_NotifyRequest(RequestMessage as RequestMessageEvent_Poi_Check_Notify);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
예제 #35
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IWorkResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage = RequestMessage as IRequestMessageEventBase;
            IWorkResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.PIC_PHOTO_OR_ALBUM:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.SCANCODE_PUSH:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.SCANCODE_WAITMSG:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.LOCATION_SELECT:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.PIC_WEIXIN:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.PIC_SYSPHOTO:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //取消订阅
                responseMessage = OnEvent_UnSubscribeRequest(RequestMessage as RequestMessageEvent_UnSubscribe);
                break;

            case Event.LOCATION:    //上报地理位置事件
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.ENTER_AGENT:    //用户进入应用的事件推送(enter_agent)
                responseMessage = OnEvent_EnterAgentRequest(RequestMessage as RequestMessageEvent_Enter_Agent);
                break;

            case Event.BATCH_JOB_RESULT:    //异步任务完成事件推送(batch_job_result)
                responseMessage = OnEvent_BatchJobResultRequest(RequestMessage as RequestMessageEvent_Batch_Job_Result);
                break;

            case Event.change_contact:
                var ccRequestMessage = RequestMessage as IRequestMessageEvent_Change_Contact_Base;
                switch (ccRequestMessage.ChangeType)
                {
                case ContactChangeType.create_user:
                    responseMessage = OnEvent_ChangeContactCreateUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Create);
                    break;

                case ContactChangeType.update_user:
                    responseMessage = OnEvent_ChangeContactUpdateUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Update);
                    break;

                case ContactChangeType.delete_user:
                    responseMessage = OnEvent_ChangeContactDeleteUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Base);
                    break;

                case ContactChangeType.create_party:
                    responseMessage = OnEvent_ChangeContactCreatePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Create);
                    break;

                case ContactChangeType.update_party:
                    responseMessage = OnEvent_ChangeContactUpdatePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Update);
                    break;

                case ContactChangeType.delete_party:
                    responseMessage = OnEvent_ChangeContactDeletePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Base);
                    break;

                case ContactChangeType.update_tag:
                    responseMessage = OnEvent_ChangeContactUpdateTagRequest(RequestMessage as RequestMessageEvent_Change_Contact_Tag_Update);
                    break;

                default:
                    throw new UnknownRequestMsgTypeException("未知的Event.change_contact下属请求信息", null);
                }
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
 public override IResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
 {
     return(base.OnEventRequest(requestMessage));
 }