示例#1
0
        /// <summary>
        /// 文字处理
        /// 说明:实际项目中这里的逻辑可以交给Service处理具体信息,参考OnLocationRequest方法或/Service/LocationSercice.cs
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
        {
            var defaultResponseMessage = CreateResponseMessage <ResponseMessageText>();

            var requestHandler = requestMessage.StartHandler()
                                 .Keyword("MUTE", () => //不回复任何消息
            {
                return(new SuccessResponseMessage());
            })
                                 .Keyword("OPENID", () =>
            {
                var openId   = requestMessage.FromUserName;  //获取OpenId
                var userInfo = new Services.impl.UserOAuthService().UserInfo(openId);

                defaultResponseMessage.Content = string.Format(
                    @"您的OpenID为:{0}
UnionId为:{1}
昵称:{2}
性别:{3}
地区(国家/省/市):{4}/{5}/{6}
关注时间:{7}
关注状态:{8}",
                    requestMessage.FromUserName, userInfo.unionid, userInfo.nickname, (Sex)userInfo.sex, userInfo.country, userInfo.province, userInfo.city, DateTimeHelper.GetDateTimeFromXml(userInfo.subscribe_time), userInfo.subscribe);
                return(defaultResponseMessage);
            })
                                 .Keyword("二维码", () => {
                defaultResponseMessage.Content = "点击<a href=\"http://wx.wftx666.com/account/UserQrCode?openid=" + requestMessage.FromUserName + "\">我的推广二维码</a>";
                return(defaultResponseMessage);
            })
                                 .Keyword("进入商城", () => {
                defaultResponseMessage.Content = "点击<a href=\"http://wx.wftx666.com/account/EnterShop?openid=" + requestMessage.FromUserName + "\">进入商城</a>";
                return(defaultResponseMessage);
            })
                                 .Keyword("EX", () =>
            {
                //发送模板消息
                var templateMessageService = new Services.impl.TemplateMessageService();
                templateMessageService.SendExTemplateMessage(requestMessage.FromUserName, "发生错误了", "错误内容", "http://wx.wftx666.com");
                return(new SuccessResponseMessage());
            })
                                 .Default(() =>
            {
                //非关键字消息直接转发给客服
                var transferCustomerServiceResponseMessage = CreateResponseMessage <ResponseMessageTransfer_Customer_Service>();
                return(transferCustomerServiceResponseMessage);
            });

            return(requestHandler.GetResponseMessage() as IResponseMessageBase);
        }
        /// <summary>
        /// 通过二维码扫描 扫描事件 如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnEvent_ScanRequest(RequestMessageEvent_Scan requestMessage)
        {
            var responseMessage = CreateResponseMessage <ResponseMessageText>();

            responseMessage.Content = "欢迎您加入五福商城大家庭";
            if (!string.IsNullOrEmpty(requestMessage.EventKey))
            {
                //新用户openId
                var openId       = requestMessage.FromUserName;
                var userInfo     = new Services.impl.UserOAuthService().UserInfo(openId);
                var parentOpenId = requestMessage.EventKey;//推荐人的openid
                //这里要锁定用户推荐关系
                if (openId != parentOpenId)
                {
                    Task.Factory.StartNew(() =>
                    {
                        var userGenerator = new UserGenerator();
                        userGenerator.CreateUser(new Models.UserInfo
                        {
                            OpenId       = openId,
                            UnionId      = userInfo.unionid,
                            NickName     = userInfo.nickname,
                            Province     = userInfo.province,
                            City         = userInfo.city,
                            County       = userInfo.country,
                            Gender       = userInfo.sex.ToString(),
                            Portrait     = userInfo.headimgurl,
                            ParentOpenId = parentOpenId
                        });
                        //给推荐人发送推荐成功消息
                        string notifyMsg = string.Format(@"用户【{0}】,通过您的二维码加入了商城,加入时间:{1}", userInfo.nickname, DateTime.Now.ToString());
                        new CustomService().SendText(parentOpenId, notifyMsg);
                    });
                }
            }
            return(responseMessage);
        }