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); } }
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)); } }
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))); } }
public ActionResult Details(string id) { ViewBag.Perm = GetPermission(); WC_OfficalAccountsModel entity = account_BLL.GetById(id); return(View(entity)); }
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))); } }
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)); }
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))); } }
public ActionResult Index() { WC_OfficalAccountsModel model = m_BLL.GetCurrentAccount(); ViewBag.CurrentOfficalAcount = model.OfficalName; return(View()); }
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)); }
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("")); } }
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)); }
/// <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)); } }
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)); } }
/// <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)); } }
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); } }
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一致。")); } }
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)); }
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, "获取成功"))); }
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))); } }
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)); } }
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)); } }
// 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)); }
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))); }
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))); } }