Beispiel #1
0
        public static string GetWxMessage(string fromUserName, string toUserName, string context)
        {
            ReplyWeixinNewsMessage rnm = new ReplyWeixinNewsMessage();

            rnm.FromUserName = fromUserName;
            rnm.ToUserName   = toUserName;
            rnm.CreateTime   = WeixinCoreExtension.GetTimeStamp(DateTime.Now);
            ArticleItem item = new ArticleItem();

            item.Title       = "首页";
            item.Description = "欢迎光临1";
            item.PicUrl      = "http://test.nkwang.cn/Product/Images/n1/test/9b839728-d085-468e-acb8-88eb9eb008b8.jpg";
            item.Url         = "http://test.nkwang.cn?idt=wx&sid=" + toUserName;
            rnm.Articles.Add(item);
            return(rnm.GetReplyMessage());
        }
Beispiel #2
0
        public ActionResult PostIndex(string signature, string timestamp, string nonce, string echostr)
        {
            WeixinCore wc = WeixinAdaptor.CreateWeixinCore();

            if (!wc.Check(signature, timestamp, nonce, WeixinAdaptor.Token))
            {
                return(Content("参数错误!"));
            }
            if (Request.InputStream != null)
            {
                XDocument             doc      = XDocument.Load(Request.InputStream);
                WeixinMessageBaseInfo baseinfo = WeixinMessageBaseInfo.Create(doc);
                if (baseinfo != null && baseinfo.IsEvent)
                {
                    var context = WeixinAdaptor.GetWxMessage(baseinfo.ToUserName, baseinfo.FromUserName, "");
                    baseinfo.EventKey = doc.Element("xml").Element("EventKey").Value;
                    switch (baseinfo.EventType)
                    {
                    case EventType.subscribe:
                        return(Content(context));

                    case EventType.click:
                        if (baseinfo.EventKey == "home")
                        {
                            return(Content(context));
                        }
                        else
                        {
                            ReplyWeixinNewsMessage rnm = new ReplyWeixinNewsMessage();
                            rnm.FromUserName = baseinfo.ToUserName;
                            rnm.ToUserName   = baseinfo.FromUserName;
                            rnm.CreateTime   = WeixinCoreExtension.GetTimeStamp(DateTime.Now);
                            ArticleItem item = new ArticleItem();
                            item.Title       = "支付测试";
                            item.Description = "支付测试";
                            item.PicUrl      = "http://test.nkwang.cn/Product/Images/n1/test/9b839728-d085-468e-acb8-88eb9eb008b8.jpg";
                            item.Url         = "http://test.nkwang.cn/WeixinPay/Index?orderId=100000000000000";
                            rnm.Articles.Add(item);
                            return(Content(rnm.GetReplyMessage()));
                        }

                        //var context = WeixinAdaptor.GetWxMessage(baseinfo.ToUserName,baseinfo.FromUserName,"");
                        //return Content(context);
                    }
                }
                else if (baseinfo != null && !baseinfo.IsEvent)
                {
                    switch (baseinfo.MsgType)
                    {
                    case MsgType.text:
                        var tm = (AcceptWeixinTextMessage)baseinfo.CreateAcceptMessage();
                        if (string.IsNullOrEmpty(tm.Content))
                        {
                            return(Content(""));
                        }
                        var context = WeixinAdaptor.GetWxMessage(tm.FromUserName, tm.ToUserName, tm.Content);
                        return(Content(context));

                    case MsgType.voice:
                        return(Content(""));
                    }
                }
            }
            return(Content(""));
        }