예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
        }
예제 #6
0
        /// <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);
        }
예제 #7
0
 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 ();
 }
예제 #8
0
        /// <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);
        }
예제 #9
0
 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 ("回复成功");
 }
예제 #10
0
 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 ();
 }
예제 #11
0
 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");
 }
예제 #12
0
        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"));
        }
예제 #13
0
        protected override object msg_text(LogicData arg)
        {
            var userinfo = Weixin.GetUserInfo(Weixin.FromUserName);

            return(Weixin.GenResponseText($@"本公众号目前仅针对公司内部员工开放,目前开发功能如下:
1.进行各种后台消息通知"));
        }
예제 #14
0
        /// <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);
        }
예제 #15
0
        /// <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);
        }
예제 #16
0
 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);
 }
예제 #17
0
 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 ("删除成功");
     }
 }
예제 #18
0
 /// <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 ();
 }
예제 #19
0
 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 ();
 }
예제 #20
0
 /// <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("接收到一条小视频消息"));
 }
예제 #21
0
        /// <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);
        }
예제 #22
0
 /// <summary>
 /// 事件-点击菜单
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 protected virtual object event_click(LogicData arg)
 {
     return(Weixin.GenResponseText($"点击了菜单{Weixin.EventKey}"));
 }
예제 #23
0
 /// <summary>
 /// 事件-点击菜单跳转链接时
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 protected virtual object event_view(LogicData arg)
 {
     return(Weixin.GenResponseText($"点击了菜单的跳转链接{Weixin.EventKey}"));
 }
예제 #24
0
 /// <summary>
 /// 事件- 用户取消关注
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 protected virtual object event_unsubscribe(LogicData arg)
 {
     return(Weixin.GenResponseText("用户取消关注"));
 }
예제 #25
0
 /// <summary>
 /// /事件-上报地理位置
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 protected virtual object event_location(LogicData arg)
 {
     return(Weixin.GenResponseText("上报地理位置"));
 }
예제 #26
0
        /// <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}\"关注"));
        }
예제 #27
0
 /// <summary>
 /// 事件- 用户已关注时,进行关注后
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 protected virtual object event_scan(LogicData arg)
 {
     return(Weixin.GenResponseText($"老用户\"{Weixin.FromUserName}\"关注"));
 }
예제 #28
0
 protected virtual object event_templatesendjobfinish(LogicData arg)
 {
     return(Weixin.GenResponseText($""));
 }
예제 #29
0
        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);
        }
예제 #30
0
 /// <summary>
 /// 事件-点击菜单扫描一个二维码
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 protected virtual object event_scancode_waitmsg(LogicData arg)
 {
     return(Weixin.GenResponseText($"点击菜单扫描了某个二维码{Weixin.EventKey}"));
 }
예제 #31
0
 /// <summary>
 /// 修改
 /// </summary>
 public void UpdateWeixin(Weixin weixin)
 {
     ExecuteUpdate("UpdateWeixin", weixin);
 }
예제 #32
0
 /// <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 ();
 }
예제 #33
0
        /// <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;
        }
예제 #34
0
 /// <summary>
 /// 新建
 /// </summary>
 public void AddWeixin(Weixin weixin)
 {
     ExecuteInsert("InsertWeixin", weixin);
 }
예제 #35
0
 /// <summary>
 /// 事件-扫码推事件且弹出“消息接收中”提示框的事件推送
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 protected virtual object event_scancode_push(LogicData arg)
 {
     return(Weixin.GenResponseText($"点击菜单扫码推事件且弹出“消息接收中”提示框的事件推送{Weixin.EventKey}"));
 }
예제 #36
0
 /// <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}"));
 }
예제 #37
0
        protected override object msg_text(LogicData arg)
        {
            return(Weixin.GenResponseText($@"本公众号目前仅针对公司内部员工开放,目前开发功能如下:
1.进行各种后台消息通知"));
        }
예제 #38
0
 /// <summary>
 /// 接受消息-链接
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 protected virtual object msg_link(LogicData arg)
 {
     return(Weixin.GenResponseText("接收到一条链接消息"));
 }