Exemple #1
0
        public ActionResult GetWeiXinInfo(string id)
        {
            OpenweixinService service = new OpenweixinService();
            string            res     = OpenWeiXinTools.getWeiXinInfo(id, service.getAccessToken());

            return(Content(res));
        }
Exemple #2
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext.HttpContext.Request["appid"] == ConfigurationManager.ConnectionStrings["weixin.AppID"].ConnectionString)
            {
                OpenweixinService service = new OpenweixinService();
                string            openid  = OpenWeiXinTools.getOpenIDByCode(filterContext.HttpContext.Request["code"], filterContext.HttpContext.Request["appid"], service.getAccessToken());
                filterContext.HttpContext.Session["openid"] = openid;
                //UserInfoService userInfoService = new UserInfoService();
                //userInfoService.UpdateByOpenid(openid);
            }
#if DEBUG
            string openID = "o9UKvwwuAHNg7nsO8JSLyz00tQ_4";
            filterContext.HttpContext.Session["openid"] = openID;
#endif
            if (WeiXinVerification)
            {
                if (filterContext.HttpContext.Session["openid"] == null)
                {
                    if (filterContext.HttpContext.Request.HttpMethod.ToUpper().Equals("GET"))
                    {
                        filterContext.HttpContext.Response.Write("<h1>非法访问。</h1>");
                        filterContext.HttpContext.Response.End();
                    }
                    else
                    {
                        filterContext.HttpContext.Response.Write("{\"success\":false,\"message\":\"用户授权失败,请退出后重试!\"}");
                        filterContext.HttpContext.Response.End();
                    }
                }
            }
        }
Exemple #3
0
        public void AddbyCode(string auth_code)
        {
            OpenweixinService service = new OpenweixinService();

            Services.Tools.WeiXin.OpenWeiXinTools.Authorization_Info info = OpenWeiXinTools.GetAuthorizer_access_token(service.getAccessToken(), auth_code);
            if (info != null)
            {
                if (db.Publicnumber.Any(x => x.AppID == info.authorizer_appid))
                {
                    Publicnumber number = db.Publicnumber.FirstOrDefault(x => x.AppID == info.authorizer_appid);
                    number.access_token  = info.authorizer_access_token;
                    number.refresh_token = info.authorizer_refresh_token;
                    number.refreshdate   = DateTime.Now;
                    this.Update(number);
                }
                else
                {
                    Publicnumber number = new Publicnumber();
                    number.AppID         = info.authorizer_appid;
                    number.access_token  = info.authorizer_access_token;
                    number.refresh_token = info.authorizer_refresh_token;
                    number.refreshdate   = DateTime.Now;
                    this.Insert(number);
                }
            }
        }
Exemple #4
0
        public ActionResult OpenAuthorization()
        {
            OpenweixinService service = new OpenweixinService();

            ViewBag.redirect_uri = OpenWeiXinTools.getOpenWeiXinURL(OpenWeiXinTools.GetPreAuthCode(service.getAccessToken()), System.Configuration.ConfigurationManager.ConnectionStrings["Host"].ConnectionString + "/Authorization/CallBack");
            return(View());
        }
Exemple #5
0
        public void MyMeetingSchedule(int id)
        {
            if (Session["openid"] == null)
            {
                Response.Redirect(OpenWeiXinTools.getWebAuthUrl(System.Configuration.ConfigurationManager.ConnectionStrings["weixin.AppID"].ConnectionString, Request.Url.ToString(), ""));
                return;
            }
            else
            {
                string url = System.Configuration.ConfigurationManager.ConnectionStrings["url"].ConnectionString;

                UserInfoService userInfoService = new UserInfoService();
                UserInfo        userInfo        = new UserInfo();
                try
                {
                    userInfo = userInfoService.SelectByOpenid(Session["openid"].ToString());
                }
                catch (Exception ex)
                {
                    log.Info("获取用户信息失败!");
                    log.Error(ex);
                    Response.Redirect(url + "/portal/wechat/login");
                    Response.End();
                    return;
                }
                if (userInfo == null)//未获取到用户信息
                {
                    Response.Redirect("/IO/WeiXin/Error/获取用户信息错误!");
                    Response.End();
                    return;
                }
                if (string.IsNullOrWhiteSpace(userInfo.statusCode))
                {
                    Response.Redirect(url + "/portal/wechat/login");
                    Response.End();
                }
                if (userInfo.statusCode.Equals("Accepted"))//已认证跳转到我的会议页面
                {
                    Response.Redirect("/IO/Meeting/MeetingSchedule?id=" + id);
                    Response.End();
                }
                else if (userInfo.statusCode.Equals("Undetermined"))
                {
                    Response.Redirect("/IO/Meeting/MeetingSchedule?id=" + id);
                    Response.End();
                }
                else if (userInfo.statusCode.Equals("Registed"))//已注册的如果有会议可以进我的会议列表
                {
                    Response.Redirect("/IO/Meeting/MeetingSchedule?id=" + id);
                    Response.End();
                }
                else//未认证跳转到登录页面
                {
                    Response.Redirect(url + "/portal/wechat/login");
                    Response.End();
                }
            }
        }
Exemple #6
0
        public void refresh_token(string message)
        {
            try
            {
                new Thread(new mdSeminarMeetingMainService().Task)
                {
                    IsBackground = true
                }.Start();
                //new Thread(new mdSeminarMeetingMainService().PushMessageToDoctor) { IsBackground = true }.Start();
                //DateTime start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 11:56:00"));
                //DateTime end = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 12:12:00"));
                //if (DateTime.Now>start && DateTime.Now<end)
                //{
                //    new Thread(new mdSeminarMeetingMainService().Task) { IsBackground = true }.Start();
                //}
            }
            catch (Exception ex) { }
            string VerifyTicket           = OpenWeiXinTools.GetComponentVerifyTicket(message);
            string Component_access_token = OpenWeiXinTools.GetComponent_access_token(VerifyTicket);

            if (db.Openweixin.Any(x => x.AppID == OpenWeiXinTools.AppID))
            {
                Openweixin openweixin = db.Openweixin.FirstOrDefault(x => x.AppID == OpenWeiXinTools.AppID);
                openweixin.component_access_token     = Component_access_token;
                openweixin.component_access_tokendate = DateTime.Now;
                this.Update(openweixin);
            }
            else
            {
                Openweixin openweixin = new Openweixin();
                openweixin.AppID     = OpenWeiXinTools.AppID;
                openweixin.AppSecret = OpenWeiXinTools.AppSecret;
                openweixin.Key       = OpenWeiXinTools.key;
                openweixin.component_access_token     = Component_access_token;
                openweixin.component_access_tokendate = DateTime.Now;
                this.Insert(openweixin);
            }
            PublicnumberService publicnumberService = new PublicnumberService();

            publicnumberService.GetAccessToken(System.Configuration.ConfigurationManager.ConnectionStrings["weixin.AppID"].ConnectionString);
            try
            {
                DateTime start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 01:56:00"));
                DateTime end   = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 02:12:00"));
                if (DateTime.Now > start && DateTime.Now < end)
                {
                    new Thread(new mdSeminarMeetingMainService().UpdateSFE)
                    {
                        IsBackground = true
                    }.Start();
                }
                //new Thread(new mdSeminarMeetingMainService().UpdateSFE) { IsBackground = true }.Start();
            }
            catch (Exception ex) { }
        }
Exemple #7
0
 public void SurveyData(int id)
 {
     if (Session["openid"] == null)
     {
         Response.Redirect(OpenWeiXinTools.getWebAuthUrl(System.Configuration.ConfigurationManager.ConnectionStrings["weixin.AppID"].ConnectionString, Request.Url.ToString(), ""));
         return;
     }
     else
     {
         Response.Redirect("/IO/Survey/Index?id=" + id);
     }
 }
Exemple #8
0
 public string GetAccessToken(string AppID)
 {
     if (db.Publicnumber.Any(x => x.AppID == AppID))
     {
         Publicnumber number = db.Publicnumber.FirstOrDefault(x => x.AppID == AppID);
         if (number.refreshdate < DateTime.Now.AddMinutes(20))
         {
             OpenweixinService service = new OpenweixinService();
             Services.Tools.WeiXin.OpenWeiXinTools.Authorization_Info info = OpenWeiXinTools.Getauthorizer_refresh_token(service.getAccessToken(), number.refresh_token, AppID);
             number.access_token  = info.authorizer_access_token;
             number.refresh_token = info.authorizer_refresh_token;
             number.refreshdate   = DateTime.Now.AddSeconds(info.expires_in);
             this.Update(number);
             return(number.access_token);
         }
         else
         {
             return(number.access_token);
         }
     }
     return("");
 }
Exemple #9
0
 public void SignSuccess(int id)
 {
     if (Session["openid"] == null)
     {
         Response.Redirect(OpenWeiXinTools.getWebAuthUrl(System.Configuration.ConfigurationManager.ConnectionStrings["weixin.AppID"].ConnectionString, Request.Url.ToString(), ""));
         return;
     }
     try
     {
         QRCodeService qrCodeService = new QRCodeService();
         QRCode        qrCode        = qrCodeService.Select(id);
         string        openid        = Session["openid"].ToString();
         using (DBContext db = new DBContext())
         {
             if (db.MeetingSign.Any(x => x.meetingid == qrCode.meetingid && x.openid == openid))
             {
             }
             else
             {
                 db.MeetingSign.Add(new MeetingSign()
                 {
                     createTime = DateTime.Now,
                     meetingid  = qrCode.meetingid.Value,
                     openid     = openid
                 });
                 db.Commit();
             }
         }
         Response.Redirect("/IO/Sign/Success/" + qrCode.meetingid);
         Response.End();
     }
     catch (Exception ex)
     {
         Response.Redirect("/IO/Sign/Index/" + id);
         Response.End();
     }
 }
Exemple #10
0
        public void QR(int id)
        {
            if (Session["openid"] == null)
            {
                Response.Redirect(OpenWeiXinTools.getWebAuthUrl(System.Configuration.ConfigurationManager.ConnectionStrings["weixin.AppID"].ConnectionString, Request.Url.ToString(), ""));
                return;
            }
            else
            {
                string url = System.Configuration.ConfigurationManager.ConnectionStrings["url"].ConnectionString;

                UserInfoService             userInfoService             = new UserInfoService();
                mdSeminarMeetingMainService mdseminarMeetingMainService = new mdSeminarMeetingMainService();
                UserInfo userInfo = new UserInfo();
                try
                {
                    userInfo = userInfoService.SelectByOpenid(Session["openid"].ToString());
                }
                catch (Exception ex)
                {
                    log.Info("获取用户信息失败!");
                    log.Error(ex);
                    Response.Redirect(url + "/portal/wechat/login");
                    Response.End();
                    return;
                }
                QRCodeService qrCodeService = new QRCodeService();
                QRCode        qrCode        = qrCodeService.Select(id);


                if (userInfo == null)//未获取到用户信息
                {
                    Response.Redirect("/IO/WeiXin/Error/获取用户信息错误!");
                    Response.End();
                    return;
                }
                if (qrCode == null)
                {
                    if (string.IsNullOrWhiteSpace(userInfo.statusCode))
                    {
                        Response.Redirect(url + "/portal/wechat/login");
                        Response.End();
                    }
                    else if (userInfo.statusCode.Equals("Accepted") || userInfo.statusCode.Equals("Undetermined") || userInfo.statusCode.Equals("Rejected"))//已认证跳转到我的会议页面
                    {
                        Response.Redirect("/IO/Meeting/Index");
                        Response.End();
                    }
                    else//未认证跳转到登录页面
                    {
                        Response.Redirect(url + "/portal/wechat/login");
                        Response.End();
                    }
                }
                else
                {
                    if (string.IsNullOrWhiteSpace(userInfo.statusCode) && qrCode.type != 2)
                    {
                        Response.Redirect(url + "/portal/wechat/login");
                        Response.End();
                    }
                    else
                    {
                        md_seminar_meeting_main meeting = mdseminarMeetingMainService.GetMeetingById(qrCode.meetingid.Value);
                        if (qrCode.type == 5)
                        {
                            Response.Redirect("/IO/Sign/Index?id=" + id);
                            Response.End();
                            return;
                        }
                        else if (qrCode.type == 3)                      //医生认证
                        {
                            if (userInfo.statusCode.Equals("Accepted")) //已认证跳转到认证成功页面
                            {
                                Response.Redirect("/IO/Notice/AuthenticationSuccess");
                                Response.End();
                            }
                            else//未认证跳转到登录页面
                            {
                                Response.Redirect(url + "/portal/wechat/login");
                                Response.End();
                            }
                        }
                        else
                        {
                            if (meeting == null || meeting.Type == 1)//会议不存在
                            {
                                //if (userInfo.statusCode.Equals("Accepted"))//已认证跳转到我的会议页面
                                //{
                                //    Response.Redirect("/IO/Meeting/Index");
                                //    Response.End();
                                //}
                                //else//未认证跳转到登录页面
                                //{
                                //    Response.Redirect(url + "/portal/wechat/login");
                                //    Response.End();
                                //}
                                Response.Redirect("/IO/Error/Index");
                                Response.End();
                                return;
                            }
                            if (qrCode.type == 2)//会议互动,只要没有过期都可以进去
                            {
                                if (meeting.mendtime < DateTime.Now)
                                {
                                    Response.Redirect("/IO/WeiXin/Error/会议已过期!");
                                    Response.End();
                                    return;
                                }
                                else
                                {
                                    Response.Redirect("/IO/Vote/Index/" + qrCode.meetingid);
                                    Response.End();
                                }
                            }
                            else//会议邀请函或医生会议邀请函
                            {
                                //认证的用户跳转到会议邀请函,已注册的跳转到会议邀请码页面
                                if (userInfo.statusCode.Equals("Accepted"))//认证的用户跳转到会议邀请函
                                {
                                    Response.Redirect("/IO/Meeting/MeetingSchedule/" + qrCode.meetingid);
                                    Response.End();
                                }
                                else if (userInfo.statusCode.Equals("Rejected") || userInfo.statusCode.Equals("Undetermined"))//已注册的跳转到会议邀请码页面
                                {
                                    if (meeting.meetingmode == (int)MeetingModeTypeEnum.LargeUnderLine && (userInfo.statusCode.Equals("Undetermined") || (userInfo.statusCode.Equals("Rejected"))) && (qrCode.type == 4 || qrCode.type == 1))
                                    {
                                        Response.Redirect("/IO/Meeting/MeetingSchedule/" + qrCode.meetingid);
                                        Response.End();
                                    }
                                    else
                                    {
                                        if (userInfo.statusCode.Equals("Undetermined") && (qrCode.type == 4 || qrCode.type == 1))
                                        {
                                            using (var context = new DBContext())
                                            {
                                                if (!string.IsNullOrEmpty(userInfo.doctorCode))
                                                {
                                                    var sfe = context.sfe_register.FirstOrDefault(s => s.doc_code == userInfo.doctorCode);
                                                    if (sfe != null)
                                                    {
                                                        Response.Redirect("/IO/Meeting/MeetingSchedule/" + qrCode.meetingid);
                                                        Response.End();
                                                    }
                                                    else
                                                    {
                                                        Response.Redirect("/IO/Meeting/MeetingCode/" + qrCode.meetingid);
                                                        //Response.Redirect("/Notice/NOPermission");
                                                        Response.End();
                                                    }
                                                }
                                                else
                                                {
                                                    Response.Redirect("/IO/Meeting/MeetingCode/" + qrCode.meetingid);
                                                    //Response.Redirect("/Notice/NOPermission");
                                                    Response.End();
                                                }
                                            }
                                        }
                                        else
                                        {
                                            Response.Redirect("/IO/Meeting/MeetingCode/" + qrCode.meetingid);
                                            //Response.Redirect("/Notice/NOPermission");
                                            Response.End();
                                        }
                                    }
                                }
                                else//未认证跳转到登录页面
                                {
                                    Response.Redirect(url + "/portal/wechat/login");
                                    Response.End();
                                }
                            }
                        }
                    }
                }
            }
        }
Exemple #11
0
        public void MeetingSurvey(int id)
        {
            if (Session["openid"] == null)
            {
                Response.Redirect(OpenWeiXinTools.getWebAuthUrl(System.Configuration.ConfigurationManager.ConnectionStrings["weixin.AppID"].ConnectionString, Request.Url.ToString(), ""));
                return;
            }
            else
            {
                string url = System.Configuration.ConfigurationManager.ConnectionStrings["url"].ConnectionString;

                UserInfoService             userInfoService             = new UserInfoService();
                mdSeminarMeetingMainService mdseminarMeetingMainService = new mdSeminarMeetingMainService();
                UserInfo userInfo = new UserInfo();
                try
                {
                    userInfo = userInfoService.SelectByOpenid(Session["openid"].ToString());
                }
                catch (Exception ex)
                {
                    log.Info("获取用户信息失败!");
                    log.Error(ex);
                    Response.Redirect(url + "/portal/wechat/login");
                    Response.End();
                    return;
                }
                if (userInfo == null)//未获取到用户信息
                {
                    Response.Redirect("/IO/WeiXin/Error/获取用户信息错误!");
                    Response.End();
                    return;
                }
                if (string.IsNullOrWhiteSpace(userInfo.statusCode))
                {
                    Response.Redirect(url + "/portal/wechat/login");
                    Response.End();
                }
                else if (userInfo.statusCode.Equals("Accepted") || userInfo.statusCode.Equals("Undetermined") || userInfo.statusCode.Equals("Rejected"))
                {
                    using (DBContext db = new DBContext())
                    {
                        var meeting = db.md_seminar_meeting_main.FirstOrDefault(m => m.mid == id);
                        if (meeting == null || meeting.Type == 1)
                        {
                            Response.Redirect("/IO/Error/Index");
                            Response.End();
                        }
                        var survayIdList     = db.md_seminar_survey.Where(s => s.mid == id).Select(s => s.sid).ToList();
                        var session          = Session["openid"].ToString();
                        var survayResultList = db.td_seminar_survey_result.FirstOrDefault(sr => survayIdList.Contains(sr.sid) && sr.uid == session);
                        if (survayResultList != null)
                        {
                            Response.Redirect("/IO/Survey/AlreadySurveyPrompt");
                            Response.End();
                        }
                        else
                        {
                            Response.Redirect("/IO/Survey/Index?id=" + id);
                            Response.End();
                        }
                    }
                }
                else//未认证跳转到登录页面
                {
                    Response.Redirect(url + "/portal/wechat/login");
                    Response.End();
                }
            }
        }