Exemplo n.º 1
0
        private ActionResult SendActivityToUser(BonusModel bonusModel, Senparc.Weixin.MP.Entities.IRequestMessageBase requestBaseMsg)
        {
            string str = (string.IsNullOrEmpty(base.Request.Url.Port.ToString()) ? "" : string.Concat(":", base.Request.Url.Port));

            object[] objArray = new object[] { "http://", base.Request.Url.Host.ToString(), str, "/m-weixin/Bonus/Index/", bonusModel.Id };
            string   str1     = string.Concat(objArray);
            string   str2     = string.Format(string.Concat("<a href='", str1, "'>您参加{0},成功获得{1}赠送的红包</a>,点击去拆红包"), bonusModel.Name, bonusModel.MerchantsName);

            return(new XmlResult(DealTextMsg(requestBaseMsg, str2)));
        }
Exemplo n.º 2
0
        private string DealTextMsg(Senparc.Weixin.MP.Entities.IRequestMessageBase doc, string msg)
        {
            string empty        = string.Empty;
            string fromUserName = doc.FromUserName;
            string toUserName   = doc.ToUserName;

            empty = string.Concat("", "<xml>");
            empty = string.Concat(empty, "<ToUserName><![CDATA[", fromUserName, "]]></ToUserName>");
            object obj = string.Concat(empty, "<FromUserName><![CDATA[", toUserName, "]]></FromUserName>");

            object[] weixinDateTime = new object[] { obj, "<CreateTime>", WXApiController.GetWeixinDateTime(DateTime.Now), "</CreateTime>" };
            empty = string.Concat(string.Concat(weixinDateTime), "<MsgType><![CDATA[text]]></MsgType>");
            empty = string.Concat(empty, "<Content><![CDATA[", msg, "]]></Content>");
            return(string.Concat(empty, "</xml>"));
        }
Exemplo n.º 3
0
        private ActionResult SendAttentionToUser(Senparc.Weixin.MP.Entities.IRequestMessageBase requestBaseMsg)
        {
            string str = "";

            try
            {
                str = ServiceHelper.Create <IBonusService>().Receive(requestBaseMsg.FromUserName);
                if (!string.IsNullOrEmpty(str))
                {
                    return(new XmlResult(DealTextMsg(requestBaseMsg, str)));
                }
            }
            catch (Exception exception)
            {
                Log.Info("关注红包出错:", exception);
            }
            return(base.Content(""));
        }
Exemplo n.º 4
0
        private ActionResult SendActivityToUser(object sceneObj, Senparc.Weixin.MP.Entities.IRequestMessageBase requestBaseMsg)
        {
            ActionResult user;
            BonusModel   bonusModel = sceneObj as BonusModel;

            if (bonusModel.Type == BonusInfo.BonusType.Activity)
            {
                try
                {
                    user = SendActivityToUser(bonusModel, requestBaseMsg);
                }
                catch (Exception exception)
                {
                    Log.Info("活动红包出错:", exception);
                    return(base.Content(""));
                }
                return(user);
            }
            return(base.Content(""));
        }
Exemplo n.º 5
0
        public ActionResult Index()
        {
            Log.Info("进入微信API");
            SiteSettingsInfo siteSettings = ServiceHelper.Create <ISiteSettingService>().GetSiteSettings();
            string           weixinToken  = "";
            string           item         = "";
            string           str          = "";
            string           item1        = "";
            string           str1         = "";

            weixinToken = siteSettings.WeixinToken;
            item        = base.Request["signature"];
            str         = base.Request["nonce"];
            item1       = base.Request["timestamp"];
            str1        = base.Request["echostr"];
            ActionResult user = base.Content("");

            if (base.Request.HttpMethod != "GET")
            {
                if (!Senparc.Weixin.MP.CheckSignature.Check(item, item1, str, weixinToken))
                {
                    Log.Info("验证不通过");
                }
                XDocument xDocument = XDocument.Load(base.Request.InputStream);
                Senparc.Weixin.MP.Entities.IRequestMessageBase requestEntity = Senparc.Weixin.MP.RequestMessageFactory.GetRequestEntity(xDocument, null);
                SceneHelper    sceneHelper   = new SceneHelper();
                IWXCardService wXCardService = ServiceHelper.Create <IWXCardService>();
                if (requestEntity.MsgType == RequestMsgType.Event)
                {
                    RequestMessageEventBase requestMessageEventBase = requestEntity as RequestMessageEventBase;
                    Event @event = requestMessageEventBase.Event;
                    switch (@event)
                    {
                    case Event.subscribe:
                    {
                        RequestMessageEvent_Subscribe requestMessageEventSubscribe = requestMessageEventBase as RequestMessageEvent_Subscribe;
                        bool flag = false;
                        if (requestMessageEventSubscribe.EventKey != string.Empty)
                        {
                            string     str2  = requestMessageEventSubscribe.EventKey.Replace("qrscene_", string.Empty);
                            SceneModel model = sceneHelper.GetModel(str2);
                            if (model != null)
                            {
                                if (model.SceneType == QR_SCENE_Type.WithDraw)
                                {
                                    flag = true;
                                    str1 = ProcessWithDrawScene(requestMessageEventSubscribe, str2, model);
                                    user = base.Content(str1);
                                }
                                else if (model.SceneType == QR_SCENE_Type.Bonus)
                                {
                                    flag = true;
                                    user = SendActivityToUser(sceneHelper.GetModel(str2).Object, requestEntity);
                                }
                            }
                        }
                        if (!flag)
                        {
                            user = SendAttentionToUser(requestEntity);
                        }
                        Subscribe(requestEntity.FromUserName);
                        break;
                    }

                    case Event.unsubscribe:
                    {
                        UnSubscribe(requestMessageEventBase.FromUserName);
                        break;
                    }

                    case Event.CLICK:
                    {
                        break;
                    }

                    case Event.scan:
                    {
                        RequestMessageEvent_Scan requestMessageEventScan = requestMessageEventBase as RequestMessageEvent_Scan;
                        if (string.IsNullOrWhiteSpace(requestMessageEventScan.EventKey))
                        {
                            break;
                        }
                        SceneModel sceneModel = sceneHelper.GetModel(requestMessageEventScan.EventKey);
                        if (sceneModel == null || sceneModel.SceneType != QR_SCENE_Type.WithDraw)
                        {
                            break;
                        }
                        str1 = ProcessWithDrawScene(requestMessageEventScan, requestMessageEventScan.EventKey, sceneModel);
                        user = base.Content(str1);
                        break;
                    }

                    default:
                    {
                        switch (@event)
                        {
                        case Event.card_pass_check:
                        {
                            RequestMessageEvent_Card_Pass_Check requestMessageEventCardPassCheck = requestMessageEventBase as RequestMessageEvent_Card_Pass_Check;
                            if (string.IsNullOrWhiteSpace(requestMessageEventCardPassCheck.CardId))
                            {
                                return(user);
                            }
                            wXCardService.Event_Audit(requestMessageEventCardPassCheck.CardId, WXCardLogInfo.AuditStatusEnum.Audited);
                            break;
                        }

                        case Event.card_not_pass_check:
                        {
                            RequestMessageEvent_Card_Pass_Check requestMessageEventCardPassCheck1 = requestMessageEventBase as RequestMessageEvent_Card_Pass_Check;
                            if (string.IsNullOrWhiteSpace(requestMessageEventCardPassCheck1.CardId))
                            {
                                return(user);
                            }
                            wXCardService.Event_Audit(requestMessageEventCardPassCheck1.CardId, WXCardLogInfo.AuditStatusEnum.AuditNot);
                            break;
                        }

                        case Event.user_get_card:
                        {
                            RequestMessageEvent_User_Get_Card requestMessageEventUserGetCard = requestMessageEventBase as RequestMessageEvent_User_Get_Card;
                            if (string.IsNullOrWhiteSpace(requestMessageEventUserGetCard.CardId) || string.IsNullOrWhiteSpace(requestMessageEventUserGetCard.UserCardCode))
                            {
                                return(user);
                            }
                            wXCardService.Event_Send(requestMessageEventUserGetCard.CardId, requestMessageEventUserGetCard.UserCardCode, requestMessageEventUserGetCard.FromUserName, requestMessageEventUserGetCard.OuterId);
                            break;
                        }

                        case Event.user_del_card:
                        {
                            RequestMessageEvent_User_Del_Card requestMessageEventUserDelCard = requestMessageEventBase as RequestMessageEvent_User_Del_Card;
                            if (string.IsNullOrWhiteSpace(requestMessageEventUserDelCard.CardId) || string.IsNullOrWhiteSpace(requestMessageEventUserDelCard.UserCardCode))
                            {
                                return(user);
                            }
                            wXCardService.Event_Unavailable(requestMessageEventUserDelCard.CardId, requestMessageEventUserDelCard.UserCardCode);
                            break;
                        }
                        }
                        break;
                    }
                    }
                }
            }
            else if (Senparc.Weixin.MP.CheckSignature.Check(item, item1, str, weixinToken))
            {
                user = base.Content(str1);
            }
            return(user);
        }
Exemplo n.º 6
0
 public override Senparc.Weixin.MP.Entities.IResponseMessageBase DefaultResponseMessage(Senparc.Weixin.MP.Entities.IRequestMessageBase requestMessage)
 {
     return(DefautMessageHande());
 }
 public override Senparc.Weixin.MP.Entities.IResponseMessageBase DefaultResponseMessage(Senparc.Weixin.MP.Entities.IRequestMessageBase requestMessage)
 {
     _log.Info("aaaa");
     return(new SuccessResponseMessage());
 }
        public override Senparc.Weixin.MP.Entities.IResponseMessageBase DefaultResponseMessage(Senparc.Weixin.MP.Entities.IRequestMessageBase requestMessage)
        {
            var responseMessage = this.CreateResponseMessage <ResponseMessageText>();

            responseMessage.Content = "欢迎关注酷伴成长通,我们将竭诚为您服务";
            return(responseMessage);
        }
Exemplo n.º 9
0
        public override Senparc.Weixin.MP.Entities.IResponseMessageBase DefaultResponseMessage(Senparc.Weixin.MP.Entities.IRequestMessageBase requestMessage)
        {
            var responseMessage = requestMessage.CreateResponseMessage <ResponseMessageText>();

            responseMessage.Content = "默认消息";
            return(responseMessage);
        }