コード例 #1
0
        public ActionResult Post(string signature, string timestamp, string nonce, string echostr)
        {
            try
            {
                var appid     = "";
                var appsecret = "";
                if (CheckSignature(out appid, out appsecret))
                {
                    WeixinMessage message = null;
                    string        msgBody = "";
                    Stream        s       = System.Web.HttpContext.Current.Request.InputStream;
                    byte[]        b       = new byte[s.Length];
                    s.Read(b, 0, (int)s.Length);
                    msgBody = Encoding.UTF8.GetString(b);
                    if (string.IsNullOrWhiteSpace(msgBody))
                    {
                        _log.AddLog(new Log()
                        {
                            Msg = "lkpost过来的数据包:空" + msgBody.Length + DateTime.Now.ToString(), CreateTime = DateTime.Now, Ret = 0
                        });

                        return(null);
                    }
                    _log.AddLog(new Log()
                    {
                        Msg = "msgBody:" + msgBody.Length, CreateTime = DateTime.Now, Ret = 0
                    });

                    message = AcceptMessageAPI.Parse(msgBody);
                    WeiXinSdkTask _sdk     = new WeiXinSdkTask(appid, appsecret);
                    var           response = _sdk.Execute(message);//处理接收到的信息
                    _log.AddLog(new Log()
                    {
                        Msg = "response:" + response, CreateTime = DateTime.Now, Ret = 0
                    });
                    return(new ContentResult
                    {
                        Content = response,
                        ContentType = "text/xml",
                        ContentEncoding = System.Text.UTF8Encoding.UTF8
                    });
                }
                else
                {
                    _log.AddLog(new Log()
                    {
                        Msg = "lk消息真实性效验,不通过", CreateTime = DateTime.Now, Ret = 0
                    });
                }
            }
            catch (Exception ex)
            {
                _log.AddLog(new Log()
                {
                    Msg = "lk出错:" + ex.Message + DateTime.Now.ToString(), CreateTime = DateTime.Now, Ret = 0
                });
            }

            return(Content("")); //返回空串表示有响应
        }
コード例 #2
0
        //发布
        public ActionResult CreateMenu()
        {
            var menuList  = _task.GetList();
            var menuModel = new MenuModel()
            {
                button = new List <object>()
            };

            foreach (var itemP in menuList.Where(c => c.menuid <= 3))
            {
                var childList = menuList.Where(c => c.menuid >= itemP.menuid * 10 && c.menuid < itemP.menuid * 10 + 10).ToList().OrderByDescending(c => c.menuid);
                if (childList.Count() > 0)
                {
                    var menuChildModel = new MenuChildModel()
                    {
                        name = itemP.name, sub_button = new List <object>()
                    };
                    foreach (var itemC in childList)
                    {
                        #region 代码
                        switch (itemC.type)
                        {
                        case "click":
                        case "location_select":
                            var clickModel = new clickModel()
                            {
                                type = itemC.type,
                                key  = itemC.key,
                                name = itemC.name
                            };
                            menuChildModel.sub_button.Add(clickModel);
                            break;

                        case "view":
                            var viewModel = new viewModel()
                            {
                                type = itemC.type,
                                url  = itemC.url,
                                name = itemC.name
                            };
                            menuChildModel.sub_button.Add(viewModel);
                            break;

                        case "miniprogram":
                            var miniprogramModel = new miniprogramModel()
                            {
                                type     = itemC.type,
                                url      = itemC.url,
                                appid    = itemC.appid,
                                pagepath = itemC.pagepath,
                                name     = itemC.name
                            };
                            menuChildModel.sub_button.Add(miniprogramModel);
                            break;

                        case "scancode_waitmsg":
                        case "scancode_push":
                        case "pic_sysphoto":
                        case "pic_photo_or_album":
                        case "pic_weixin":
                            var subbuttonModel = new subbuttonModel()
                            {
                                type       = itemC.type,
                                key        = itemC.key,
                                name       = itemC.name,
                                sub_button = new List <object>(),
                            };
                            menuChildModel.sub_button.Add(subbuttonModel);
                            break;

                        case "media_id":
                        case "view_limited":
                            var mediaidModel = new mediaidModel()
                            {
                                type     = itemC.type,
                                media_id = itemC.media_id,
                                name     = itemC.name,
                            };
                            menuChildModel.sub_button.Add(mediaidModel);
                            break;
                        }
                        #endregion
                    }
                    menuModel.button.Add(menuChildModel);
                }
                else
                {
                    #region 代码
                    switch (itemP.type)
                    {
                    case "click":
                    case "location_select":
                        var clickModel = new clickModel()
                        {
                            type = itemP.type,
                            key  = itemP.key,
                            name = itemP.name
                        };
                        menuModel.button.Add(clickModel);
                        break;

                    case "view":
                        var viewModel = new viewModel()
                        {
                            type = itemP.type,
                            url  = itemP.url,
                            name = itemP.name
                        };
                        menuModel.button.Add(viewModel);
                        break;

                    case "miniprogram":
                        var miniprogramModel = new miniprogramModel()
                        {
                            type     = itemP.type,
                            url      = itemP.url,
                            appid    = itemP.appid,
                            pagepath = itemP.pagepath,
                            name     = itemP.name
                        };
                        menuModel.button.Add(miniprogramModel);
                        break;

                    case "scancode_waitmsg":
                    case "scancode_push":
                    case "pic_sysphoto":
                    case "pic_photo_or_album":
                    case "pic_weixin":
                        var subbuttonModel = new subbuttonModel()
                        {
                            type       = itemP.type,
                            key        = itemP.key,
                            name       = itemP.name,
                            sub_button = new List <object>(),
                        };
                        menuModel.button.Add(subbuttonModel);
                        break;

                    case "media_id":
                    case "view_limited":
                        var mediaidModel = new mediaidModel()
                        {
                            type     = itemP.type,
                            media_id = itemP.media_id,
                            name     = itemP.name,
                        };
                        menuModel.button.Add(mediaidModel);
                        break;
                    }
                    #endregion
                }
            }
            var sdk    = new WeiXinSdkTask("", "");
            var result = CustomMenuAPI.Create(sdk.AccountToken(), JsonConvert.SerializeObject(menuModel));
            if (result)
            {
                return(Json(new RequestResultDto()
                {
                    Msg = "发布成功", Ret = 0
                }));
            }
            return(Json(new RequestResultDto()
            {
                Msg = "发布失败", Ret = -1
            }));
        }
コード例 #3
0
        //发送小程序卡片信息
        public ActionResult RepayMiniprogrampage()
        {
            WeiXinSdkTask _sdk = new WeiXinSdkTask("wxfab14afc3ef13c1f", "fde7036077249329aece2f217677f206");

            return(Content(_sdk.RepayMiniprogrampage("o55WfjpukwCuWWo1T91uE0jN_Fhc", "点击快速进入,只需观看视频即可领奖", "wxc016b052eb75755d", "", "SnL6aGPFiEqfVD5F5o3mKhVgNkhgDvwnc_EbadS08M4")));
        }