public ActionResult CreateMenuQY(Senparc.Weixin.QY.GetMenuResultFull resultFull)
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            string token = model.AccessToken;

            try
            {
                QyJsonResult result = null;
                //普通接口
                Senparc.Weixin.QY.Entities.Menu.ButtonGroup buttonGroup = Senparc.Weixin.QY.CommonAPIs.CommonApi.GetMenuFromJsonResult(resultFull).menu;
                result = Senparc.Weixin.QY.CommonAPIs.CommonApi.CreateMenu(token, Convert.ToInt32(model.OfficalId), buttonGroup);

                var json = new
                {
                    Success = result.errmsg == "ok",
                    Message = "菜单更新成功。普通自定义菜单接口"
                };
                return(Json(json));
            }
            catch (Exception ex)
            {
                var json = new { Success = false, Message = string.Format("更新失败:{0}。普通自定义菜单接口", ex.Message) };
                return(Json(json));
            }
        }
        public virtual WC_OfficalAccountsModel GetById(string id)
        {
            if (IsExists(id))
            {
                WC_OfficalAccounts      entity = m_Rep.GetById(id);
                WC_OfficalAccountsModel model  = new WC_OfficalAccountsModel();
                model.Id           = entity.Id;
                model.OfficalId    = entity.OfficalId;
                model.OfficalName  = entity.OfficalName;
                model.OfficalCode  = entity.OfficalCode;
                model.OfficalPhoto = entity.OfficalPhoto;
                model.OfficalKey   = entity.OfficalKey;
                model.ApiUrl       = entity.ApiUrl;
                model.Token        = entity.Token;
                model.AppId        = entity.AppId;
                model.AppSecret    = entity.AppSecret;
                model.AccessToken  = entity.AccessToken;
                model.Remark       = entity.Remark;
                model.Enable       = entity.Enable;
                model.IsDefault    = entity.IsDefault;
                model.Category     = entity.Category;
                model.CreateTime   = entity.CreateTime;
                model.CreateBy     = entity.CreateBy;
                model.ModifyTime   = entity.ModifyTime;
                model.ModifyBy     = entity.ModifyBy;

                return(model);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 3
0
        public WC_OfficalAccountsModel GetCurrentAccount()
        {
            WC_OfficalAccounts entity = m_Rep.GetCurrentAccount();

            if (entity == null)
            {
                return(new WC_OfficalAccountsModel());
            }

            WC_OfficalAccountsModel model = new WC_OfficalAccountsModel();

            model.Id           = entity.Id;
            model.OfficalName  = entity.OfficalName;
            model.OfficalCode  = entity.OfficalCode;
            model.OfficalPhoto = entity.OfficalPhoto;
            model.ApiUrl       = entity.ApiUrl;
            model.Token        = entity.Token;
            model.AppId        = entity.AppId;
            model.AppSecret    = entity.AppSecret;
            model.AccessToken  = entity.AccessToken;
            model.Remark       = entity.Remark;
            model.Enable       = entity.Enable;
            model.IsDefault    = entity.IsDefault;
            model.Category     = entity.Category;
            model.CreateTime   = entity.CreateTime;
            model.CreateBy     = entity.CreateBy;
            model.ModifyTime   = entity.ModifyTime;
            model.ModifyBy     = entity.ModifyBy;
            return(model);
        }
        /// <summary>
        /// 获得自动回复的列表
        /// </summary>
        /// <param name="pager">分页</param>
        /// <param name="queryStr">查询条件</param>
        /// <param name="messageRule">类型</param>
        /// <param name="matchKey">关键字</param>
        /// <param name="category">规则</param>
        /// <returns></returns>
        public JsonResult GetList(GridPager pager, string queryStr, int messageRule, string matchKey, int?category = 0)
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            //组合查询条件
            var predicate = PredicateBuilder.True <WC_MessageResponse>();

            predicate = predicate.And(x => string.Equals(x.OfficalAccountId, model.Id, StringComparison.OrdinalIgnoreCase));
            predicate = predicate.And(x => x.MessageRule == messageRule);

            if (category != 0)
            {
                predicate = predicate.And(x => x.Category == category);
            }

            if (!string.IsNullOrEmpty(matchKey))
            {
                predicate = predicate.And(x => x.MatchKey == matchKey);
            }

            List <WC_MessageResponseModel>     list = m_BLL.GetList(ref pager, predicate, queryStr);
            GridRows <WC_MessageResponseModel> grs  = new GridRows <WC_MessageResponseModel>();

            grs.rows  = list;
            grs.total = pager.totalRows;
            return(Json(grs));
        }
 public ActionResult DeleteMenu()
 {
     try
     {
         WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
         string token = model.AccessToken;
         if (model.Category != (int)WeChatSubscriberEnum.EnterpriseSubscriber)
         {
             var result = Senparc.Weixin.MP.CommonAPIs.CommonApi.DeleteMenu(token);
             var json   = new
             {
                 Success = result.errmsg == "ok",
                 Message = result.errmsg
             };
             return(Json(json, JsonRequestBehavior.AllowGet));
         }
         else
         {
             var result = Senparc.Weixin.QY.CommonAPIs.CommonApi.DeleteMenu(token, Convert.ToInt32(model.OfficalId));
             var json   = new
             {
                 Success = result.errmsg == "ok",
                 Message = result.errmsg
             };
             return(Json(json, JsonRequestBehavior.AllowGet));
         }
     }
     catch (Exception ex)
     {
         var json = new { Success = false, Message = ex.Message };
         return(Json(json, JsonRequestBehavior.AllowGet));
     }
 }
Esempio n. 6
0
        public JsonResult Delete(string id)
        {
            if (!string.IsNullOrWhiteSpace(id))
            {
                WC_OfficalAccountsModel model = m_BLL.GetById(id);
                if (model.IsDefault)
                {
                    LogHandler.WriteServiceLog(GetUserId(), "Id" + id + "删除失败,因为当前公众号为默认公众号", "失败", "删除", "WC_OfficalAccounts");
                    return(Json(JsonHandler.CreateMessage(0, Resource.DeleteFail + ",因为当前公众号为默认公众号")));
                }

                if (m_BLL.Delete(ref errors, id))
                {
                    LogHandler.WriteServiceLog(GetUserId(), "Id:" + id, "成功", "删除", "WC_OfficalAccounts");
                    return(Json(JsonHandler.CreateMessage(1, Resource.DeleteSucceed)));
                }
                else
                {
                    string ErrorCol = errors.Error;
                    LogHandler.WriteServiceLog(GetUserId(), "Id" + id + "," + ErrorCol, "失败", "删除", "WC_OfficalAccounts");
                    return(Json(JsonHandler.CreateMessage(0, Resource.DeleteFail + ErrorCol)));
                }
            }
            else
            {
                return(Json(JsonHandler.CreateMessage(0, Resource.DeleteFail)));
            }
        }
Esempio n. 7
0
        public ActionResult Details(string id)
        {
            ViewBag.Perm = GetPermission();
            WC_OfficalAccountsModel entity = account_BLL.GetById(id);

            return(View(entity));
        }
Esempio n. 8
0
 public JsonResult Edit(WC_OfficalAccountsModel model)
 {
     if (model != null && ModelState.IsValid)
     {
         model.ModifyTime = ResultHelper.NowTime;
         model.ModifyBy   = GetUserId();
         model.ApiUrl     = WebConfigPara.SiteConfig.WeChatApiUrl + model.Id;
         if (m_BLL.Edit(ref errors, model))
         {
             if (model.IsDefault)
             {
                 m_BLL.SetDefault(model.Id);
             }
             LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalName" + model.OfficalName, "成功", "修改", "WC_OfficalAccounts");
             return(Json(JsonHandler.CreateMessage(1, Resource.EditSucceed)));
         }
         else
         {
             string ErrorCol = errors.Error;
             LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalName" + model.OfficalName + "," + ErrorCol, "失败", "修改", "WC_OfficalAccounts");
             return(Json(JsonHandler.CreateMessage(0, Resource.EditFail + ErrorCol)));
         }
     }
     else
     {
         return(Json(JsonHandler.CreateMessage(0, Resource.EditFail)));
     }
 }
Esempio n. 9
0
        public Task <ActionResult> Post(PostModel postModel)
        {
            return(Task.Factory.StartNew <ActionResult>(() =>
            {
                WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
                //没有参数
                if (string.IsNullOrEmpty(Request["id"]))
                {
                    return new WeixinResult("非法路径请求");
                }
                if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, model.Token))
                {
                    return new WeixinResult("参数错误!");
                }

                postModel.Token = Token;
                postModel.EncodingAESKey = EncodingAESKey; //根据自己后台的设置保持一致
                postModel.AppId = model.AppId;             //根据自己后台的设置保持一致

                var messageHandler = new CustomMessageHandler(Request.InputStream, postModel, 10);
                messageHandler.Execute(); //执行微信处理过程

                return new FixWeixinBugWeixinResult(messageHandler);
            }).ContinueWith <ActionResult>(task => task.Result));
        }
Esempio n. 10
0
        public JsonResult Create(WC_GroupModel model)
        {
            WC_OfficalAccountsModel wcmodel = account_BLL.GetCurrentAccount();

            model.OfficalAccountId = wcmodel.Id;
            model.Id    = System.Guid.NewGuid().ToString();
            model.Count = 0;
            if (model != null && ModelState.IsValid)
            {
                if (m_BLL.Create(ref errors, model))
                {
                    LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",Name" + model.Name, "成功", "添加", "WC_Group");
                    return(Json(JsonHandler.CreateMessage(1, Resource.Create)));
                }
                else
                {
                    string ErrorCol = errors.Error;
                    LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",Name" + model.Name + "," + ErrorCol, "失败", "添加", "WC_Group");
                    return(Json(JsonHandler.CreateMessage(0, Resource.Create + ErrorCol)));
                }
            }
            else
            {
                return(Json(JsonHandler.CreateMessage(0, Resource.Create)));
            }
        }
        public JsonResult PostData(WC_MessageResponseModel model)
        {
            WC_OfficalAccountsModel accountModel = account_BLL.GetCurrentAccount();

            if (string.IsNullOrEmpty(model.Id))
            {
                model.Id = ResultHelper.NewId;
            }

            model.CreateBy         = GetUserId();
            model.CreateTime       = ResultHelper.NowTime;
            model.ModifyBy         = GetUserId();
            model.ModifyTime       = ResultHelper.NowTime;
            model.OfficalAccountId = accountModel.Id;
            model.Enable           = true;
            model.IsDefault        = true;
            if (m_BLL.PostData(ref errors, model))
            {
                LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalAccountId" + model.OfficalAccountId, "成功", "保存", "WC_MessageResponse");
                return(Json(JsonHandler.CreateMessage(1, Resource.SaveSucceed)));
            }
            else
            {
                string ErrorCol = errors.Error;
                LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalAccountId" + model.OfficalAccountId + "," + ErrorCol, "失败", "保存", "WC_MessageResponse");
                return(Json(JsonHandler.CreateMessage(0, Resource.SaveFail + ErrorCol)));
            }
        }
Esempio n. 12
0
        public ActionResult Index()
        {
            WC_OfficalAccountsModel model = m_BLL.GetCurrentAccount();

            ViewBag.CurrentOfficalAcount = model.OfficalName;
            return(View());
        }
Esempio n. 13
0
        public ActionResult MoveUser(string id)
        {
            ViewBag.UserIds = id.ToString();
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            List <WC_GroupModel>    list  = group_BLL.GetList(model.Id);

            return(View(list));
        }
Esempio n. 14
0
        public ActionResult Post(PostModel postModel)
        {
            //没有参数,带有id才能知道是访问哪个公众号
            if (string.IsNullOrEmpty(Request["id"]))
            {
                return(new WeixinResult("非法路径请求!"));
            }

            var maxRecordCount = 10;

            WC_OfficalAccountsModel model = account_BLL.GetById(Request["id"]);

            postModel.CorpId         = model.AppId;
            postModel.EncodingAESKey = model.OfficalKey;
            postModel.Token          = model.Token;
            //自定义MessageHandler,对微信请求的详细判断操作都在这里面。
            var messageHandler = new QyCustomMessageHandler(Request.InputStream, postModel, model.Id, maxRecordCount);

            if (messageHandler.RequestMessage == null)
            {
                //验证不通过或接受信息有错误
            }

            try
            {
                //测试时可开启此记录,帮助跟踪数据,使用前请确保App_Data文件夹存在,且有读写权限。
                messageHandler.RequestDocument.Save(Server.MapPath("~/App_Data/Qy/" + DateTime.Now.Ticks + "_Request_" + messageHandler.RequestMessage.FromUserName + ".txt"));
                //执行微信处理过程
                messageHandler.Execute();
                //测试时可开启,帮助跟踪数据
                messageHandler.ResponseDocument.Save(Server.MapPath("~/App_Data/Qy/" + DateTime.Now.Ticks + "_Response_" + messageHandler.ResponseMessage.ToUserName + ".txt"));
                messageHandler.FinalResponseDocument.Save(Server.MapPath("~/App_Data/Qy/" + DateTime.Now.Ticks + "_FinalResponse_" + messageHandler.ResponseMessage.ToUserName + ".txt"));

                //自动返回加密后结果
                return(new FixWeixinBugWeixinResult(messageHandler));//为了解决官方微信5.0软件换行bug暂时添加的方法,平时用下面一个方法即可
            }
            catch (Exception ex)
            {
                using (TextWriter tw = new StreamWriter(Server.MapPath("~/App_Data/Qy_Error_" + DateTime.Now.Ticks + ".txt")))
                {
                    tw.WriteLine("ExecptionMessage:" + ex.Message);
                    tw.WriteLine(ex.Source);
                    tw.WriteLine(ex.StackTrace);
                    //tw.WriteLine("InnerExecptionMessage:" + ex.InnerException.Message);

                    if (messageHandler.FinalResponseDocument != null)
                    {
                        tw.WriteLine(messageHandler.FinalResponseDocument.ToString());
                    }
                    tw.Flush();
                    tw.Close();
                }
                return(Content(""));
            }
        }
Esempio n. 15
0
        public ActionResult GetMenu()
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            string token  = model.AccessToken;
            var    result = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetMenu(token);

            if (result == null)
            {
                return(Json(new { error = "菜单不存在或验证失败!" }, JsonRequestBehavior.AllowGet));
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Esempio n. 16
0
        /// <summary>
        /// OAuthScope.snsapi_base方式回调
        /// </summary>
        /// <param name="code"></param>
        /// <param name="state"></param>
        /// <param name="returnUrl">用户最初尝试进入的页面</param>
        /// <returns></returns>
        public ActionResult BaseCallback(string code, string state, string returnUrl)
        {
            if (string.IsNullOrEmpty(code))
            {
                return(Content("您拒绝了授权!"));
            }

            if (state != Session["State"] as string)
            {
                //这里的state其实是会暴露给客户端的,验证能力很弱,这里只是演示一下,
                //建议用完之后就清空,将其一次性使用
                //实际上可以存任何想传递的数据,比如用户ID,并且需要结合例如下面的Session["OAuthAccessToken"]进行验证
                return(Content("验证失败!请从正规途径进入!"));
            }
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            //通过,用code换取access_token
            var result = OAuthApi.GetAccessToken(model.AppId, model.AppSecret, code);

            if (result.errcode != ReturnCode.请求成功)
            {
                return(Content("错误:" + result.errmsg));
            }

            //下面2个数据也可以自己封装成一个类,储存在数据库中(建议结合缓存)
            //如果可以确保安全,可以将access_token存入用户的cookie中,每一个人的access_token是不一样的
            Session["OAuthAccessTokenStartTime"] = DateTime.Now;
            Session["OAuthAccessToken"]          = result;

            //因为这里还不确定用户是否关注本微信,所以只能试探性地获取一下
            OAuthUserInfo userInfo = null;

            try
            {
                //已关注,可以得到详细信息
                userInfo = OAuthApi.GetUserInfo(result.access_token, result.openid);

                if (!string.IsNullOrEmpty(returnUrl))
                {
                    return(Redirect(returnUrl));
                }


                ViewData["ByBase"] = true;
                return(View("UserInfoCallback", userInfo));
            }
            catch (ErrorJsonResultException ex)
            {
                //未关注,只能授权,无法得到详细信息
                //这里的 ex.JsonResult 可能为:"{\"errcode\":40003,\"errmsg\":\"invalid openid\"}"
                return(Content("用户已授权,授权Token:" + result));
            }
        }
Esempio n. 17
0
        public virtual async Task <Tuple <ValidationErrors, bool> > CreateAsync(WC_OfficalAccountsModel model)
        {
            ValidationErrors errors = new ValidationErrors();

            try
            {
                WC_OfficalAccounts entity = await m_Rep.GetByIdAsync(model.Id);

                if (entity != null)
                {
                    errors.Add(Resource.PrimaryRepeat);
                    return(new Tuple <ValidationErrors, bool>(errors, false));
                }
                entity              = new WC_OfficalAccounts();
                entity.Id           = model.Id;
                entity.OfficalId    = model.OfficalId;
                entity.OfficalName  = model.OfficalName;
                entity.OfficalCode  = model.OfficalCode;
                entity.OfficalPhoto = model.OfficalPhoto;
                entity.OfficalKey   = model.OfficalKey;
                entity.ApiUrl       = model.ApiUrl;
                entity.Token        = model.Token;
                entity.AppId        = model.AppId;
                entity.AppSecret    = model.AppSecret;
                entity.AccessToken  = model.AccessToken;
                entity.Remark       = model.Remark;
                entity.Enable       = model.Enable;
                entity.IsDefault    = model.IsDefault;
                entity.Category     = model.Category;
                entity.CreateTime   = model.CreateTime;
                entity.CreateBy     = model.CreateBy;
                entity.ModifyTime   = model.ModifyTime;
                entity.ModifyBy     = model.ModifyBy;


                if (await m_Rep.CreateAsync(entity))
                {
                    return(new Tuple <ValidationErrors, bool>(errors, true));
                }
                else
                {
                    errors.Add(Resource.InsertFail);
                    return(new Tuple <ValidationErrors, bool>(errors, false));
                }
            }
            catch (Exception ex)
            {
                errors.Add(ex.Message);
                ExceptionHander.WriteException(ex);
                return(new Tuple <ValidationErrors, bool>(errors, false));
            }
        }
Esempio n. 18
0
        /// <summary>
        /// OAuthScope.snsapi_userinfo方式回调
        /// </summary>
        /// <param name="code"></param>
        /// <param name="state"></param>
        /// <param name="returnUrl">用户最初尝试进入的页面</param>
        /// <returns></returns>
        public ActionResult UserInfoCallback(string code, string state, string returnUrl)
        {
            if (string.IsNullOrEmpty(code))
            {
                return(Content("您拒绝了授权!"));
            }

            if (state != Session["State"] as string)
            {
                //这里的state其实是会暴露给客户端的,验证能力很弱,这里只是演示一下,
                //建议用完之后就清空,将其一次性使用
                //实际上可以存任何想传递的数据,比如用户ID,并且需要结合例如下面的Session["OAuthAccessToken"]进行验证
                return(Content("验证失败!请从正规途径进入!"));
            }

            OAuthAccessTokenResult result = null;

            //通过,用code换取access_token
            try
            {
                WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
                result = OAuthApi.GetAccessToken(model.AppId, model.AppSecret, code);
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
            if (result.errcode != ReturnCode.请求成功)
            {
                return(Content("错误:" + result.errmsg));
            }
            //下面2个数据也可以自己封装成一个类,储存在数据库中(建议结合缓存)
            //如果可以确保安全,可以将access_token存入用户的cookie中,每一个人的access_token是不一样的
            Session["OAuthAccessTokenStartTime"] = DateTime.Now;
            Session["OAuthAccessToken"]          = result;

            //因为第一步选择的是OAuthScope.snsapi_userinfo,这里可以进一步获取用户详细信息
            try
            {
                if (!string.IsNullOrEmpty(returnUrl))
                {
                    return(Redirect(returnUrl));
                }

                OAuthUserInfo userInfo = OAuthApi.GetUserInfo(result.access_token, result.openid);
                return(View(userInfo));
            }
            catch (ErrorJsonResultException ex)
            {
                return(Content(ex.Message));
            }
        }
Esempio n. 19
0
        public JsonResult GetCurrentAcountState()
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();

            if (string.IsNullOrEmpty(model.AppId) || string.IsNullOrEmpty(model.AppSecret) || string.IsNullOrEmpty(model.AccessToken))
            {
                return(Json(JsonHandler.CreateMessage(0, "当前公众号没有编辑按钮功能!")));
            }
            else
            {
                return(Json(JsonHandler.CreateMessage(1, model.AccessToken)));
            }
        }
        public virtual bool Edit(ref ValidationErrors errors, WC_OfficalAccountsModel model)
        {
            try
            {
                WC_OfficalAccounts entity = m_Rep.GetById(model.Id);
                if (entity == null)
                {
                    errors.Add(Resource.Disable);
                    return(false);
                }
                entity.Id           = model.Id;
                entity.OfficalId    = model.OfficalId;
                entity.OfficalName  = model.OfficalName;
                entity.OfficalCode  = model.OfficalCode;
                entity.OfficalPhoto = model.OfficalPhoto;
                entity.OfficalKey   = model.OfficalKey;
                entity.ApiUrl       = model.ApiUrl;
                entity.Token        = model.Token;
                entity.AppId        = model.AppId;
                entity.AppSecret    = model.AppSecret;
                entity.AccessToken  = model.AccessToken;
                entity.Remark       = model.Remark;
                entity.Enable       = model.Enable;
                entity.IsDefault    = model.IsDefault;
                entity.Category     = model.Category;
                entity.CreateTime   = model.CreateTime;
                entity.CreateBy     = model.CreateBy;
                entity.ModifyTime   = model.ModifyTime;
                entity.ModifyBy     = model.ModifyBy;



                if (m_Rep.Edit(entity))
                {
                    return(true);
                }
                else
                {
                    errors.Add(Resource.NoDataChange);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                errors.Add(ex.Message);
                ExceptionHander.WriteException(ex);
                return(false);
            }
        }
Esempio n. 21
0
        public ActionResult Get(string msg_signature = "", string timestamp = "", string nonce = "", string echostr = "")
        {
            WC_OfficalAccountsModel model = account_BLL.GetById(Request["id"]);
            //return Content(echostr); //返回随机字符串则表示验证通过
            var verifyUrl = Senparc.Weixin.QY.Signature.VerifyURL(model.Token, model.OfficalKey, model.AppId, msg_signature, timestamp, nonce,
                                                                  echostr);

            if (verifyUrl != null)
            {
                return(Content(verifyUrl)); //返回解密后的随机字符串则表示验证通过
            }
            else
            {
                return(Content("如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。"));
            }
        }
Esempio n. 22
0
 public bool Create(ref ValidationErrors errors, WC_OfficalAccountsModel model)
 {
     try
     {
         WC_OfficalAccounts entity = m_Rep.GetById(model.Id);
         if (entity != null)
         {
             errors.Add(Suggestion.PrimaryRepeat);
             return(false);
         }
         entity              = new WC_OfficalAccounts();
         entity.AccessToken  = model.AccessToken;
         entity.ApiUrl       = model.ApiUrl;
         entity.AppId        = model.AppId;
         entity.AppSecret    = model.AppSecret;
         entity.Category     = model.Category;
         entity.CreateBy     = model.CreateBy;
         entity.CreateTime   = model.CreateTime;
         entity.Enable       = model.Enable;
         entity.Id           = model.Id;
         entity.IsDefault    = model.IsDefault;
         entity.ModifyBy     = model.ModifyBy;
         entity.ModifyTime   = model.ModifyTime;
         entity.OfficalCode  = model.OfficalCode;
         entity.OfficalId    = model.OfficalId;
         entity.OfficalKey   = model.OfficalKey;
         entity.OfficalName  = model.OfficalName;
         entity.OfficalPhoto = model.OfficalPhoto;
         entity.Remark       = model.Remark;
         entity.Token        = model.Token;
         if (m_Rep.Create(entity) == 1)
         {
             return(true);
         }
         else
         {
             errors.Add(Suggestion.InsertFail);
             return(false);
         }
     }
     catch (Exception ex)
     {
         errors.Add(ex.Message);
         ExceptionHander.WriteException(ex);
         return(false);
     }
 }
        public JsonResult GetListProperty(GridPager pager, int messageRule)
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            //组合查询条件
            var predicate = PredicateBuilder.True <WC_MessageResponse>();

            predicate = predicate.And(x => string.Equals(x.OfficalAccountId, model.Id, StringComparison.OrdinalIgnoreCase));
            predicate = predicate.And(x => x.MessageRule == messageRule);


            List <WC_MessageResponseModel>     list = m_BLL.GetListProperty(ref pager, predicate);
            GridRows <WC_MessageResponseModel> grs  = new GridRows <WC_MessageResponseModel>();

            grs.rows  = list;
            grs.total = pager.totalRows;
            return(Json(grs));
        }
Esempio n. 24
0
        public JsonResult GetNetList()
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            GroupsJson groupjson          = GroupsApi.Get(model.AccessToken);

            foreach (var item in groupjson.groups)
            {
                WC_GroupModel entity = new WC_GroupModel();
                if (m_BLL.GetById(item.id.ToString()) == null)
                {
                    entity.Id               = item.id.ToString();
                    entity.Name             = item.name;
                    entity.Count            = item.count;
                    entity.OfficalAccountId = model.Id;
                    m_BLL.Create(ref errors, entity);
                }
            }
            return(Json(JsonHandler.CreateMessage(1, "获取成功")));
        }
Esempio n. 25
0
        public JsonResult SyncUser(string id, string officeId)
        {
            if (!string.IsNullOrWhiteSpace(id))
            {
                //填充数据
                string[] arrs = id.Split(',');
                List <BatchGetUserInfoData> list = new List <BatchGetUserInfoData>();
                foreach (var m in arrs)
                {
                    list.Add(new BatchGetUserInfoData()
                    {
                        openid = m
                    });
                }

                //批量同步数据
                WC_OfficalAccountsModel accountModel = account_BLL.GetById(officeId);
                var batchList = Senparc.Weixin.MP.AdvancedAPIs.UserApi.BatchGetUserInfo(accountModel.AccessToken, list);
                foreach (var info in batchList.user_info_list)
                {
                    WC_UserModel userModel = m_BLL.GetById(info.openid);
                    if (userModel != null)
                    {
                        userModel.City       = info.city;
                        userModel.OpenId     = info.openid;
                        userModel.Id         = info.openid;
                        userModel.HeadImgUrl = info.headimgurl;
                        userModel.Language   = info.language;
                        userModel.NickName   = info.nickname;
                        userModel.Province   = info.province;
                        userModel.Sex        = info.sex;
                        m_BLL.Edit(ref errors, userModel);
                    }
                }

                LogHandler.WriteServiceLog(GetUserId(), "Ids:" + id, "成功", "删除", "WC_User");
                return(Json(JsonHandler.CreateMessage(1, Resource.SaveSucceed)));
            }
            else
            {
                return(Json(JsonHandler.CreateMessage(0, Resource.SaveFail)));
            }
        }
Esempio n. 26
0
        public ActionResult CreateMenu(GetMenuResultFull resultFull, MenuMatchRule menuMatchRule)
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
            string token = model.AccessToken;
            var    useAddCondidionalApi = menuMatchRule != null && !menuMatchRule.CheckAllNull();
            var    apiName = string.Format("使用接口:{0}。", (useAddCondidionalApi ? "个性化菜单接口" : "普通自定义菜单接口"));

            try
            {
                //重新整理按钮信息
                WxJsonResult     result      = null;
                IButtonGroupBase buttonGroup = null;
                if (useAddCondidionalApi)
                {
                    //个性化接口
                    buttonGroup = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetMenuFromJsonResult(resultFull, new ConditionalButtonGroup()).menu;

                    var addConditionalButtonGroup = buttonGroup as ConditionalButtonGroup;
                    addConditionalButtonGroup.matchrule = menuMatchRule;
                    result   = Senparc.Weixin.MP.CommonAPIs.CommonApi.CreateMenuConditional(token, addConditionalButtonGroup);
                    apiName += string.Format("menuid:{0}。", (result as CreateMenuConditionalResult).menuid);
                }
                else
                {
                    //普通接口
                    buttonGroup = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetMenuFromJsonResult(resultFull, new ButtonGroup()).menu;
                    result      = Senparc.Weixin.MP.CommonAPIs.CommonApi.CreateMenu(token, buttonGroup);
                }

                var json = new
                {
                    Success = result.errmsg == "ok",
                    Message = "菜单更新成功。" + apiName
                };
                return(Json(json));
            }
            catch (Exception ex)
            {
                var json = new { Success = false, Message = string.Format("更新失败:{0}。{1}", ex.Message, apiName) };
                return(Json(json));
            }
        }
Esempio n. 27
0
 public ActionResult DeleteMenu()
 {
     try
     {
         WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();
         string token  = model.AccessToken;
         var    result = Senparc.Weixin.MP.CommonAPIs.CommonApi.DeleteMenu(token);
         var    json   = new
         {
             Success = result.errmsg == "ok",
             Message = result.errmsg
         };
         return(Json(json, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         var json = new { Success = false, Message = ex.Message };
         return(Json(json, JsonRequestBehavior.AllowGet));
     }
 }
Esempio n. 28
0
        // GET: WC/MenuSetting
        public ActionResult Index()
        {
            WC_OfficalAccountsModel model = account_BLL.GetCurrentAccount();

            ViewBag.CurrentOfficalAcount = model;
            GetMenuResult result = new GetMenuResult(new ButtonGroup());

            //初始化
            for (int i = 0; i < 3; i++)
            {
                var subButton = new SubButton();
                for (int j = 0; j < 5; j++)
                {
                    var singleButton = new SingleClickButton();
                    subButton.sub_button.Add(singleButton);
                }
            }

            return(View(result));
        }
Esempio n. 29
0
 public Task <ActionResult> Get(string signature, string timestamp, string nonce, string echostr)
 {
     return(Task.Factory.StartNew(() =>
     {
         if (string.IsNullOrEmpty(Request["id"]))
         {
             return "非法路径请求!";
         }
         WC_OfficalAccountsModel model = account_BLL.GetById(Request["id"]);
         if (CheckSignature.Check(signature, timestamp, nonce, model.Token))
         {
             return echostr; //返回随机字符串则表示验证通过
         }
         else
         {
             return "failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, model.Token) + "。" +
             "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。";
         }
     }).ContinueWith <ActionResult>(task => Content(task.Result)));
 }
Esempio n. 30
0
 public JsonResult Edit(WC_OfficalAccountsModel model)
 {
     if (model != null && ModelState.IsValid)
     {
         if (account_BLL.Edit(ref errors, model))
         {
             LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalId" + model.OfficalName, "成功", "修改", "WC_OfficalAccounts");
             return(Json(JsonHandler.CreateMessage(1, Suggestion.EditSucceed)));
         }
         else
         {
             string ErrorCol = errors.Error;
             LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",OfficalId" + model.OfficalName + "," + ErrorCol, "失败", "修改", "WC_OfficalAccounts");
             return(Json(JsonHandler.CreateMessage(0, Suggestion.EditFail + ErrorCol)));
         }
     }
     else
     {
         return(Json(JsonHandler.CreateMessage(0, Suggestion.EditFail)));
     }
 }