/// <summary> /// 接受事件—[进入应用],复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_enter_agent(LogicData arg) { var rtn = Weixin.GenResponseText("接收到[进入应用]事件"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是[event_enter_agent]:" + rtn.ToJSONString()); return(rtn); }
/// <summary> /// 接受事件—[上报地理位置],复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_location(LogicData arg) { var rtn = Weixin.GenResponseText("接收到[上报地理位置]事件"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是[event_location]:" + rtn.ToJSONString()); return(rtn); }
/// <summary> /// 接受事件—[扫码推事件且弹出“消息接收中”提示框的事件推送],复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_scancode_waitmsg(LogicData arg) { var rtn = Weixin.GenResponseText("接收到[扫码推事件且弹出“消息接收中”提示框的事件推送]事件"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是[event_scancode_waitmsg]:" + rtn.ToJSONString()); return(rtn); }
/// <summary> /// 接受事件—[弹出微信相册发图器的事件推送],复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_pic_weixin(LogicData arg) { var rtn = Weixin.GenResponseText("接收到[弹出拍照或者相册发图的事件推送]事件"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是[event_pic_weixin]:" + rtn.ToJSONString()); return(rtn); }
/// <summary> /// 接受事件—[取消订阅],复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_unsubscribe(LogicData arg) { var rtn = Weixin.GenResponseText("接收到[取消订阅]事件"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是[event_unsubscribe]:" + rtn.ToJSONString()); return(rtn); }
/// <summary> /// 接受事件—[点击菜单跳转链接的事件推送],复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_view(LogicData arg) { var rtn = Weixin.GenResponseText("接收到[点击菜单跳转链接的事件推送]事件"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是[event_view]:" + rtn.ToJSONString()); return(rtn); }
public void add(JabinfoContext context) { bool istemp = true; Weixin wx = new Weixin (); JavaScriptSerializer serializer = new JavaScriptSerializer (); if (!context.IsPost) { return; } int sceneId = Convert.ToInt32(context.Post ["sceneId"]); string action = context.Post ["action"]; if (action == "false") istemp = false; string resutl= wx.QRCodeTicket (istemp, sceneId); if (resutl == "0") { context.Alert ("添加失败"); return; } string seconds = istemp ? wx.GetJsonValue (resutl, "expire_seconds") : "0"; //如果用为用二维码;则二维码时间为 100000000; TicketVO tk= serializer.Deserialize<TicketVO> (resutl); context.Post ["createtime"] = Jabinfo.Help.Date.Now.ToString(); context.Post ["ticket"] = tk.ticket; context.Post ["url"] = tk.url; context.Post ["expireSeconds"] = seconds; TicketMapper.I.Insert(context.Post); context.Refresh (); }
/// <summary> /// 接受消息—链接消息,复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object msg_link(LogicData arg) { var rtn = Weixin.GenResponseText("接收到一条链接消息"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是msg_link" + rtn.ToJSONString()); return(rtn); }
public void msg(JabinfoContext context,string requestId) { if (!context.IsPost) { context.Variable ["requestId"] = requestId; return; } Weixin wx = new Weixin (); StringBuilder str=new StringBuilder("{ \r\n"); StringBuilder con = new StringBuilder (); string msg = context.Post ["context"]; str.Append(" \"touser\":[ \r\n"); con.Append (string.Format ("\"{0}\",\r\n", context.Post["openId"])); string main = con.ToString (); string text = main.Substring (0, main.Length - 3); str.Append (text); str.Append(" ], \r\n"); str.Append ("\"msgtype\": \"text\", \r\n"); //您好,宾弗科技微信公众号推出两款新功能,关键字搜索文章查看,资讯推送,感谢你的关注! str.Append (" \"text\": { \"content\": \""+msg+"\"}"); str.Append("} \r\n"); string result = wx.Sendmsg (str.ToString ()); context.Post ["status"] = "1"; RequestMapper.I.UpdateByPrimary (context.Post); context.Alert ("回复成功"); }
public void add(JabinfoContext context) { Weixin weixin = new Weixin (); Utils util = new Utils (); if (!context.IsPost) { return; } context.Post ["uploadId"] = Jabinfo.Help.Basic.JabId; string type = context.Post ["type"]; string fileName = context.Files ["afile"].FileName; string model=fileName.Substring(fileName.LastIndexOf('.') + 1); Jabinfo.Help.Upload.Save (context.Post ["uploadId"], context.Files["afile"],model); string file = Jabinfo.Help.Upload.PysPath (context.Post ["uploadId"],model); string url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token="+weixin.GetAccessToken(); url = url + "&type=" + type; string json = util.HttpUpload (url, file); context.Post ["mediaId"] = weixin.GetJsonValue (json,"media_id"); context.Post ["createdAt"] = weixin.GetJsonValue(json,"created_at"); if (!string.IsNullOrEmpty (weixin.GetJsonValue (json, "errcode"))) { context.Jump ("/article/upload/home","无效媒体类型,请重新上传"); return; } UploadMapper.I.Insert(context.Post); context.Refresh (); }
public string info(object[] args) { Weixin weixin = new Weixin (); string openId = Convert.ToString (args [0]); string json= weixin.GetInfo (weixin.GetAccessToken(), openId); return weixin.GetJsonValue (json, "nickname"); }
object SendMsg(LogicData arg) { var touser = ComFunc.nvl(arg.GetValue("to")); var content = ComFunc.IsBase64Then(ComFunc.nvl(arg.GetValue("content")).Replace(" ", "+")); return(Weixin.SendTextCardMsg(touser, "", "", "本月薪资", $"{DateTime.Now.ToString("yyyy年MM月")}工作单", "http://www.baidu.com")); }
protected override object msg_text(LogicData arg) { var userinfo = Weixin.GetUserInfo(Weixin.FromUserName); return(Weixin.GenResponseText($@"本公众号目前仅针对公司内部员工开放,目前开发功能如下: 1.进行各种后台消息通知")); }
/// <summary> /// 接受事件—[异步任务完成事件推送],复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_batch_job_result(LogicData arg) { //这里要看JobType,目前分别有:sync_user(增量更新成员)、 replace_user(全量覆盖成员)、invite_user(邀请成员关注)、replace_party(全量覆盖部门) var rtn = Weixin.GenResponseText("接收到[异步任务完成事件推送]事件"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是[event_batch_job_result]:" + rtn.ToJSONString()); return(rtn); }
/// <summary> /// 接受事件—[通讯录变更]或[更新成员事件],复写它以实现自己逻辑 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_change_contact(LogicData arg) { //这里具体要看ChangeType,可能会是create_user,update_user,delete_user,create_party,update_party,delete_party,update_tag var rtn = Weixin.GenResponseText("接收到[通讯录变更]事件"); GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "这里是[event_change_contact]:" + rtn.ToJSONString()); return(rtn); }
public void home(JabinfoContext context, int index) { int size = 30; Weixin weixin = new Weixin (); context.Variable ["total"] = UploadMapper.I.CountAll (); context.Variable ["size"] = size; context.Variable ["index"] = index; context.Variable ["access_token"] = weixin.GetAccessToken (); context.Variable ["uploadList"] = UploadMapper.I.SelectByPage (index, size); }
public void remove(JabinfoContext context, String msgId) { Weixin wx = new Weixin (); string url = "https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=" + wx.GetAccessToken (); string con = "{\n \"msg_id\":" + msgId + "\n}"; string json = Jabinfo.Help.Http.PostHttps (url, con); if (wx.GetJsonValue (json, "errcode") == "0") { MsglogMapper.I.DeleteByPrimary (msgId); context.Alert ("删除成功"); } }
/// <summary> /// 微信添加用户分组 /// </summary> /// <param name="">.</param> public void addGroup(JabinfoContext context) { if (!context.IsPost) return; Weixin wx = new Weixin (); string url = "https://api.weixin.qq.com/cgi-bin/groups/create?access_token=" + wx.GetAccessToken (); string groupname = "{\"group\":{\"name\":\"" + context.Post["title"] + "\"}}"; string json = Jabinfo.Help.Http.PostHttps (url, groupname); context.Post ["categoryId"] = wx.GetJsonValue (json, "id"); context.Post ["name"] = wx.GetJsonValue (json, "name"); context.Post ["parentId"]="8"; CategoryMapper.I.Insert (context.Post); context.Refresh (); }
public void group(JabinfoContext context, string openid) { Weixin wx = new Weixin (); if (!context.IsPost) { context.Variable ["openid"] = openid; context.Variable ["categoryList"] = CategoryMapper.I.Select1 ("8"); return; } string url = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=" + wx.GetAccessToken (); string json = "{\"openid\":\"" + openid + "\",\"to_groupid\":" + context.Post ["group"] + "}"; Jabinfo.Help.Http.PostHttps (url, json); FollowMapper.I.UpdateByPrimary (context.Post); context.Refresh (); }
/// <summary> /// 接受消息—小视频消息 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object msg_hortvideo(LogicData arg) { /*以下代码用于作为多媒体资料获取的sample代码 * var re = Weixin.DownloadMedia(Weixin.MediaId); * if (re.issuccess) * { * if(!Directory.Exists( ServerInfo.ServerRootPath + "/Weixin_files/")) * { * Directory.CreateDirectory(ServerInfo.ServerRootPath + "/Weixin_files/"); * } * File.WriteAllBytes(ServerInfo.ServerRootPath + "/Weixin_files/" + re.filename, re.content); * } */ return(Weixin.GenResponseText("接收到一条小视频消息")); }
/// <summary> /// 通过这个方法.传入当前URL可以得到jsdk所需的config /// </summary> /// <param name="arg"> url参数 是必须的</param> /// <returns></returns> protected virtual object GetJsdkInfo(LogicData arg) { var url = ComFunc.UrlDecode(ComFunc.nvl(arg["url"])).Replace(" ", "+"); var nonstr = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 16); var timestamp = Weixin.NewTimsStamp; var sign = Weixin.GenJSAPISignKey(nonstr, timestamp, url, Weixin.Jsapi_ticket); var rtn = FrameDLRObject.CreateInstance(true, ""); rtn.appId = Weixin.AppID; rtn.timestamp = timestamp; rtn.nonceStr = nonstr; rtn.signature = sign; rtn.jsapi_ticket = Weixin.Jsapi_ticket; // 应该没用 return(rtn); }
/// <summary> /// 事件-点击菜单 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_click(LogicData arg) { return(Weixin.GenResponseText($"点击了菜单{Weixin.EventKey}")); }
/// <summary> /// 事件-点击菜单跳转链接时 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_view(LogicData arg) { return(Weixin.GenResponseText($"点击了菜单的跳转链接{Weixin.EventKey}")); }
/// <summary> /// 事件- 用户取消关注 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_unsubscribe(LogicData arg) { return(Weixin.GenResponseText("用户取消关注")); }
/// <summary> /// /事件-上报地理位置 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_location(LogicData arg) { return(Weixin.GenResponseText("上报地理位置")); }
/// <summary> /// 事件-用户未关注时,进行关注后 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_subscribe(LogicData arg) { dynamic re = Weixin.GetUserInfo(Weixin.FromUserName); return(Weixin.GenResponseText($"新用户<img src='{re.headurl}'/>\"{re.nickname}\"关注")); }
/// <summary> /// 事件- 用户已关注时,进行关注后 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_scan(LogicData arg) { return(Weixin.GenResponseText($"老用户\"{Weixin.FromUserName}\"关注")); }
protected virtual object event_templatesendjobfinish(LogicData arg) { return(Weixin.GenResponseText($"")); }
protected override void OnInit(EventArgs e) { //启用微信打开控制 var openIdCookie = HttpContext.Current.Request.Cookies[BaseClass.OpenId_Cookie]; var openId = openIdCookie == null ? "" : openIdCookie.Value; var uIdCookie = HttpContext.Current.Request.Cookies[BaseClass.Uid_Cookie]; uId = uIdCookie == null ? 0: BitAuto.Utils.ConvertHelper.GetInteger(uIdCookie.Value); LogHandler.Info("uid:" + uId); //if (string.IsNullOrEmpty(openId)) if (uId == 0) { if (BaseClass.IsNeedWeiXin) { string returnurl = "/"; returnurl = Request.Url?.ToString(); string code = RequestHelper.GetQueryString("code"); string state = RequestHelper.GetQueryString("state"); string redirect_uri = RequestHelper.GetQueryString("redirect_uri"); #region MyRegion //021QRK2o05U3Lr1f2tZn0Tdt2o0QRK26 //http://sfl.sanfengli.cn/home/votelist.aspx?vote_id=8&code=021QRK2o05U3Lr1f2tZn0Tdt2o0QRK26&state=http:%2F%2Fsfl.sanfengli.cn%2Fhome%2Fvotelist.aspx%3Fvote_id%3D8&from=groupmessage&isappinstalled=0,api //https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6c4c8bb521e45019&redirect_uri=http%3A%2F%2Fsfl.sanfengli.cn%2Fhome%2Fvotelist.aspx%3Fvote_id%3D8%26from%3Dgroupmessage&response_type=code&scope=snsapi_userinfo&state=http%3A%2F%2Fsfl.sanfengli.cn%2Fhome%2Fvotelist.aspx%3Fvote_id%3D8%26from%3Dgroupmessage&connect_redirect=1#wechat_redirect //http://sfl.sanfengli.cn/home/votelist.aspx?vote_id=8&code=021QRK2o05U3Lr1f2tZn0Tdt2o0QRK26&state=http:%2F%2Fsfl.sanfengli.cn%2Fhome%2Fvotelist.aspx%3Fvote_id%3D8&from=groupmessage&isappinstalled=0,code=021QRK2o05U3Lr1f2tZn0Tdt2o0QRK26,state=http://sfl.sanfengli.cn/home/votelist.aspx?vote_id=8 //string from = RequestHelper.GetQueryString("from"); //if (!string.IsNullOrEmpty(code)&&string.Equals(code, "021QRK2o05U3Lr1f2tZn0Tdt2o0QRK26", StringComparison.InvariantCultureIgnoreCase) && !string.IsNullOrEmpty(state)) //{ // OAuthScope scope; // if (IsNeedUserInfo) // { // scope = OAuthScope.snsapi_userinfo; // } // else // { // scope = OAuthScope.snsapi_base; // } // string oauthUrl = Weixin.OauthUrl(state, state, scope); // LogHandler.Info($"from:{from},code:{code},statue:{state},oauthUrl:{oauthUrl}" ); // Response.Redirect(oauthUrl); //} #endregion if (string.IsNullOrWhiteSpace(code)) { OAuthScope scope; if (IsNeedUserInfo) { scope = OAuthScope.snsapi_userinfo; } else { scope = OAuthScope.snsapi_base; } string oauthUrl = Weixin.OauthUrl(Request.Url?.ToString(), "", scope); LogHandler.Info("code为空,oauthUrl:" + oauthUrl); Response.Redirect(oauthUrl); } else { OAuthAccessTokenResult oAuthAccessTokenResult = null; try { //通过,用code换取access_token var isSecondRequest = false; lock (OAuthCodeCollectionLock) { isSecondRequest = OAuthCodeCollection.ContainsKey(code); } if (!isSecondRequest) { //第一次请求 LogHandler.Info($"第一次微信OAuth到达,code:{code}"); lock (OAuthCodeCollectionLock) { OAuthCodeCollection[code] = null; } } else { //第二次请求 LogHandler.Info($"第二次微信OAuth到达,code:{code}"); lock (OAuthCodeCollectionLock) { oAuthAccessTokenResult = OAuthCodeCollection[code]; } } try { oAuthAccessTokenResult = oAuthAccessTokenResult ?? OAuthApi.GetAccessToken(BaseClass.AppId, BaseClass.Secret, code); } catch (Exception ex) { LogHandler.Info($"微信网页授权api信息:{ex.Message}。请求Url:{Request.Url},api参数:url={returnurl},code={code},state={state}"); } if (oAuthAccessTokenResult != null) { lock (OAuthCodeCollectionLock) { OAuthCodeCollection[code] = oAuthAccessTokenResult; } } else { var url = Request.Url.ToString(); url = WebTools.BuildUrl(url, "code", ""); LogHandler.Info($"code:{code} 已经使用.redirect_uri:{url}"); Response.Redirect(url); } //var oAuthAccessTokenResult = OAuthApi.GetAccessToken(BaseClass.AppId, BaseClass.Secret, code); if (oAuthAccessTokenResult.errcode != 0) { Response.Write("您拒绝了授权"); LogHandler.Info($"您拒绝了授权,code:{code }"); } LogHandler.Info(oAuthAccessTokenResult.access_token + oAuthAccessTokenResult.openid); var oAuthUserInfo = OAuthApi.GetUserInfo(oAuthAccessTokenResult.access_token, oAuthAccessTokenResult.openid); this.openId = oAuthAccessTokenResult.openid; HttpCookie cookie = new HttpCookie(BaseClass.OpenId_Cookie); cookie.Value = this.openId; cookie.Expires = DateTime.Now.AddDays(1); HttpContext.Current.Response.Cookies.Add(cookie); var userModel = new wp_userbll().SaveUserInfo(oAuthUserInfo); LogHandler.Info("oAuthUserInfo:" + JsonHelper.Serialize(oAuthUserInfo) + "|uid:" + userModel); this.uId = userModel; HttpCookie cookieUid = new HttpCookie(BaseClass.Uid_Cookie); cookieUid.Value = this.uId.ToString(); cookieUid.Expires = DateTime.Now.AddDays(1); HttpContext.Current.Response.Cookies.Add(cookieUid); string token = new LoginTokenID(userModel).ToString(); WebTools.WriteCookie(WebTools.ych_weixintoken, token, 1); //Response.Redirect("test.aspx"); //Redirect(url); //if (!string.IsNullOrEmpty(code)) //{ OAuthCodeCollection.Remove(code); //} } catch (Exception ex) { LogHandler.Info($"微信网页授权api信息:{ex.Message}。请求Url:{Request.Url},api参数:url={returnurl},code={code},state={state}"); //Response.Write("授权失败"); } } } else { openId = "o_7F30X3iijkdt0zsNQrxuGpOL8U";//测试环境账号 } } if (this.uId > 0) { this.currentUser = new Bll.WeChat.wp_userbll().GetUserInfoByUId(this.uId); this.openId = this.currentUser == null ? "" : currentUser.openid; LogHandler.Info("currentUser:"******"uid:" + this.uId.ToString()); } if (currentUser == null && !string.IsNullOrEmpty(this.openId)) { this.currentUser = new Bll.WeChat.wp_userbll().GetUserInfoByOpenId(this.openId); this.openId = this.currentUser == null ? "" : currentUser.openid; LogHandler.Info("currentUser:"******"openId:" + this.openId.ToString()); } base.OnInit(e); }
/// <summary> /// 事件-点击菜单扫描一个二维码 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_scancode_waitmsg(LogicData arg) { return(Weixin.GenResponseText($"点击菜单扫描了某个二维码{Weixin.EventKey}")); }
/// <summary> /// 修改 /// </summary> public void UpdateWeixin(Weixin weixin) { ExecuteUpdate("UpdateWeixin", weixin); }
/// <summary> /// 上传媒体文件 /// </summary> /// <param name="context">Context.</param> /// <param name="articles">Articles.</param> public void upload(JabinfoContext context,string articles) { if (!context.IsPost) { context.Variable ["articles"] = articles; return; } Weixin wx = new Weixin (); Utils util = new Utils (); string[] article =context.Post["articles"].Split (','); StringBuilder str = new StringBuilder ("{ \r\n"); StringBuilder con = new StringBuilder (); str.Append (" \"articles\": [ \r\n"); for (int i = 0; i < article.Length - 1; i++) { ArticleVO ar = ArticleMapper.I.Create (article [i]); ArticleDetailVO d = ArticleDetailMapper.I.Create (article [i]); con.Append("{ \r\n"); Regex reg = new Regex(@"(?i)</?a\b[^>]*>"); //去掉字符串的<a>标签 Regex reg1=new Regex(@"<img[^>]*?/>"); //去掉img标签 Regex reg2=new Regex(@"style=""[^""]*"""); //去掉style标签 string result = reg.Replace(d.content, ""); result = reg1.Replace (result, ""); result = reg2.Replace (result, ""); string file = Jabinfo.Help.Upload.PysPath (ar.articleId,"jpg"); string url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token="+wx.GetAccessToken(); url = url + "&type=image"; string json = util.HttpUpload (url, file); con.Append (string.Format(" \"thumb_media_id\":\"{0}\", \r\n",wx.GetJsonValue (json,"media_id"))); con.Append("\"author\":\"" + ar.author.ToString() + "\","); con.Append("\"title\":\"" + ar.title.ToString() + "\","); con.Append(string.Format(" \"content_source_url\":\"{0}\", \r\n","http://wx.zento.me/article/home/detail/"+ ar.articleId)); con.Append("\"content\":\"" + Jabinfo.Help.Formate.ClearSpace(result) + "\","); con.Append("\"digest\":\"" + Jabinfo.Help.Formate.ClearSpace(ar.summary) + "\","); con.Append (" \"show_cover_pic\":\"0\" \r\n"); con.Append (" },"); } string mian = con.ToString (); string text = mian.Substring (0, mian.Length - 1); str.Append (text); str.Append (" ] \r\n"); str.Append ("} \r\n"); wx.UpNews (str.ToString (),context.Post["title"]); context.Refresh (); }
/// <summary> /// 查看分组 /// </summary> /// <param name="context">Context.</param> public void Getgroup(JabinfoContext context) { Weixin wx = new Weixin (); Utils Util = new Utils (); string url = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token="+wx.GetAccessToken(); string json = Jabinfo.Help.Http.GetHttps(url); var dict = Util.JsonTo<Dictionary<string, List<Dictionary<string, object>>>>(json); var gs = new Groups(); var gilist = dict["groups"]; foreach (var gidict in gilist) { var gi = new GroupVO(); gi.name = gidict["name"].ToString(); gi.id = Convert.ToInt32(gidict["id"]); gi.count = Convert.ToInt32(gidict["count"]); gs.Add(gi); } context.Variable ["groupList"] = gs; }
/// <summary> /// 新建 /// </summary> public void AddWeixin(Weixin weixin) { ExecuteInsert("InsertWeixin", weixin); }
/// <summary> /// 事件-扫码推事件且弹出“消息接收中”提示框的事件推送 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object event_scancode_push(LogicData arg) { return(Weixin.GenResponseText($"点击菜单扫码推事件且弹出“消息接收中”提示框的事件推送{Weixin.EventKey}")); }
/// <summary> /// 接受消息—地理位置 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object msg_location(LogicData arg) { return(Weixin.GenResponseText($"接收到一条地理位置消息:经度{Weixin.Location_X},纬度{Weixin.Location_Y},地图缩放{Weixin.Scale},位置{Weixin.Label}")); }
protected override object msg_text(LogicData arg) { return(Weixin.GenResponseText($@"本公众号目前仅针对公司内部员工开放,目前开发功能如下: 1.进行各种后台消息通知")); }
/// <summary> /// 接受消息-链接 /// </summary> /// <param name="arg"></param> /// <returns></returns> protected virtual object msg_link(LogicData arg) { return(Weixin.GenResponseText("接收到一条链接消息")); }