Exemplo n.º 1
0
        /// <summary>
        /// 网页授权的回调函数
        /// </summary>
        /// <param name="ret">传入的为跳转链接</param>
        public void Authorize(string ret)
        {
            string code = Request.QueryString["code"];

            //LogHelper.WriteLog("wechat:" + code + "|" + ret);
            if (string.IsNullOrEmpty(code))
            {
                Response.Write("未获取到code");
            }
            else
            {
                //调用微信API获取当前用户信息
                var user = BasicApi.GetUserInfo(code);
                if (user != null)
                {
                    LogHelper.WriteLog("wechat openid:" + user.openid + "NickName:" + user.nickname);
                    HttpCookie cookie = new HttpCookie("WeiXinUser");

                    cookie.Values["UserId"]     = "0";
                    cookie.Values["UserType"]   = "0";
                    cookie.Values["Openid"]     = user.openid;
                    cookie.Values["Nickname"]   = Server.UrlEncode(user.nickname);
                    cookie.Values["Sex"]        = user.sex;
                    cookie.Values["Province"]   = Server.UrlEncode(user.province);
                    cookie.Values["City"]       = Server.UrlEncode(user.city);
                    cookie.Values["Country"]    = Server.UrlEncode(user.country);
                    cookie.Values["Headimgurl"] = user.headimgurl;

                    //把用户的微信信息(openid)存入cookie
                    Response.AppendCookie(cookie);
                    Response.Redirect(ret);
                }
            }
        }
Exemplo n.º 2
0
        public string SaveWeChatImage(string serverId)
        {
            var url = "http://api.weixin.qq.com/cgi-bin/media/get?access_token=" + BasicApi.GetAccessToken() + "&media_id=" + serverId;

            try
            {
                var    filename   = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".png";
                string uploadPath = System.Web.HttpContext.Current.Server.MapPath("/Upload/WeChatImage");

                if (!Directory.Exists(uploadPath))
                {
                    Directory.CreateDirectory(uploadPath);
                }
                FileStream file = new FileStream(uploadPath + "/" + filename, FileMode.Create, FileAccess.Write);//创建写入文件
                file.Close();

                var path = uploadPath + "/" + filename;

                var result = SaveImage(url, path);

                S3Unit.UploadFile("WeChatImage", path);
                if (result == "success")
                {
                    return("/WeChatImage/" + filename);
                }
                else
                {
                    return("Excute Error");
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
Exemplo n.º 3
0
        public string GetJsapiTicketSignature(string noncestr, string timestamp, string url)
        {
            LogHelper.WriteLog("传递过来的参数:" + noncestr + "|" + timestamp + "|" + url);
            string result = BasicApi.GetJsapiTicketSignature(noncestr, timestamp, url);

            LogHelper.WriteLog("返回的签名:" + result);
            return(result);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 发布菜单
        /// </summary>
        /// <param name="MenuJson">配置的菜单json数据</param>
        /// <param name="AppID">AppID</param>
        /// <param name="AppSecret">AppSecret</param>
        /// <returns>返回0成功否则错误码</returns>
        public string MenuCreate(string MenuJson, string AppID, string AppSecret)
        {
            string setMenuUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}";

            setMenuUrl = string.Format(setMenuUrl, BasicApi.GetTokenSession(AppID, AppSecret));//获取token、拼凑url
            string respText = common.CommonMethod.WebRequestPostOrGet(setMenuUrl, MenuJson);
            Dictionary <string, object> respDic = (Dictionary <string, object>)Jss.DeserializeObject(respText);

            return(respDic["errcode"].ToString());//返回0发布成功
        }
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            string url = httpContext.Request.Url.ToString().ToLower();

            if (httpContext.Request.Cookies["WeiXinUser"] == null)
            {
                if (!httpContext.Request.IsLocal)
                {
                    returnUrl = BasicApi.Authorize(url);
                }
                else
                {
                    HttpCookie cookie = new HttpCookie("WeiXinUser"); //初使化并设置Cookie的名称
                    DateTime   dt     = DateTime.Now;
                    TimeSpan   ts     = new TimeSpan(0, 15, 0, 0, 0); //过期时间为1分钟
                    cookie.Expires = dt.Add(ts);                      //设置过期时间
                    //cookie.Values["UserId"] = "30425";
                    //cookie.Values["UserType"] = "1";
                    cookie.Values["UserId"]   = "31142";
                    cookie.Values["UserType"] = "2";
                    //cookie.Values["PositionId"] = "4";
                    cookie.Values["Openid"]     = "o11Z-jte0u1RkdzEnXJee6OAp_CM";//"o11Z-jqJhjDeu5xjW7dzaBfzloZQ2";
                    cookie.Values["Nickname"]   = httpContext.Server.UrlEncode("小三");
                    cookie.Values["Sex"]        = "1";
                    cookie.Values["Province"]   = httpContext.Server.UrlEncode("山东");
                    cookie.Values["City"]       = httpContext.Server.UrlEncode("烟台");
                    cookie.Values["Country"]    = httpContext.Server.UrlEncode("中国");
                    cookie.Values["Headimgurl"] = "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46";
                    httpContext.Response.AppendCookie(cookie);
                }
            }
            else
            {
                try
                {
                    var cookies = httpContext.Request.Cookies["WeiXinUser"];
                    //CreditSys.Core.Common.LogHelper.WriteLog("UserId:" + cookies["UserId"] + ",UserType:" + cookies["UserType"] + ",Openid:" + cookies["Openid"] + ",Nickname:" + cookies["Nickname"] + ",url:" + url);//日志

                    //openid丢失
                    if (string.IsNullOrEmpty(cookies["Openid"]))
                    {
                        returnUrl = BasicApi.Authorize(url);
                    }
                }
                catch (Exception e)
                {
                    LogHelper.WriteLog(e.Message);
                }
            }
            return(true);
        }
Exemplo n.º 6
0
        public void Invoke(string signature, string timestamp, string nonce, string echostr)
        {
            string token = ConfigurationManager.AppSettings["WeiXinToken"];

            LogHelper.WriteLog("post结果:" + echostr);
            if (BasicApi.CheckSignature(token, signature, timestamp, nonce))
            {
                LogHelper.WriteLog("post结果:" + echostr);
                if (!string.IsNullOrEmpty(echostr))
                {
                    Response.Write(echostr);
                    Response.End();
                }
            }
        }
Exemplo n.º 7
0
 public SystemUserController(
     IMapper map,
     ISystemUserDAL systemUserDAL,
     ISugarSystemUserDAL sUser,
     BasicApi basicApi,
     RedisManager redisManager,
     CoreMemoryCache cache
     ) : base(map)
 {
     _user     = systemUserDAL;
     _sUser    = sUser;
     _basicApi = basicApi;
     //redisManager.DbNum = 2;设置当前页面的默认数据库
     _redisManager = redisManager;
     _cache        = cache;
 }
Exemplo n.º 8
0
        /// <summary>
        /// 微信接入的测试
        /// </summary>
        private void ResponseServer()
        {
            string myToken = CommonHelper.GetAppValue("myToken");

            if (string.IsNullOrEmpty(myToken))
            {
                File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "error.txt", "token节点没有配置");
            }

            string echoString = HttpContext.Current.Request.QueryString["echoStr"];
            string signature  = HttpContext.Current.Request.QueryString["signature"];
            string timestamp  = HttpContext.Current.Request.QueryString["timestamp"];
            string nonce      = HttpContext.Current.Request.QueryString["nonce"];

            if (BasicApi.CheckSignature(myToken, signature, timestamp, nonce))
            {
                if (!string.IsNullOrEmpty(echoString))
                {
                    HttpContext.Current.Response.Write(echoString);
                    HttpContext.Current.Response.End();
                }
            }
        }
Exemplo n.º 9
0
 public string GetAuthorizeUrl(string ret)
 {
     return(BasicApi.Authorize(ret));
 }
Exemplo n.º 10
0
        public string GetAccessToken()
        {
            var a = BasicApi.GetAccessToken();

            return(a);
        }
Exemplo n.º 11
0
 public void Invoke()
 {
     BasicApi.ReceviceMain(Request, Response);
 }
Exemplo n.º 12
0
        /// <summary>
        /// 推送消息
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="openId"></param>
        /// <returns></returns>
        public string SendWeChatMsg(string name, string openId)
        {
            var json = "{\"touser\":\"" + openId + "\"," +
                       "\"template_id\":\"b0-aVm0y5Urmbup-cnCykHlYWHiuaGYy9DabB-ePetU\"," +
                       "\"url\":\"http://jifenweixin.shinho.net.cn/#/component/recommendstart\"," +
                       "\"data\":{" +
                       "\"first\": {" +
                       "\"value\":\"您推荐的" + name + "已注册成功,并成功为您增加20积分,点击我的账户可查看积分明细。\"," +
                       "\"color\":\"#173177\"" +
                       "}," +
                       "\"keyword1\":{" +
                       "\"value\":\"推荐同行注册\"," +
                       "\"color\":\"#173177\"" +
                       "}," +
                       "\"keyword2\":{" +
                       "\"value\":\"" + DateTime.Now + "\"," +
                       "\"color\":\"#173177\"" +
                       "}," +
                       "\"remark\":{" +
                       "\"value\":\"点击详情,分享给同行好友一起来赚积分吧\"," +
                       "\"color\":\"#173177\"" +
                       "}" +
                       "}" +
                       "}";

            PostUrl.PostJson("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + BasicApi.GetAccessToken(), json);

            return("success");
        }
Exemplo n.º 13
0
        public string GetRecommendPic(int MemberId = 0)
        {
            if (MemberId <= 0)
            {
                return("-1");
            }
            string appid  = ConfigurationManager.AppSettings["WeiXinAppid"];
            string secret = ConfigurationManager.AppSettings["WeiXinSecret"];

            string postData = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"A" + MemberId.ToString() + "\"}}}";
            string ret      = PostUrl.PostJson("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + BasicApi.GetAccessToken(), postData);
            var    result   = JsonHelper.JsonToObject <QRcode>(ret);

            return(result.ticket);
        }
Exemplo n.º 14
0
        public string CreateCode_Simple(int activityId = 0)
        {
            if (activityId <= 0)
            {
                return("-1");
            }

            string appid  = System.Configuration.ConfigurationManager.AppSettings["WeiXinAppid"];
            string secret = System.Configuration.ConfigurationManager.AppSettings["WeiXinSecret"];

            string postData = "{\"action_name\": \"QR_LIMIT_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": " + activityId + "}}}";
            string ret      = PostUrl.PostJson("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + BasicApi.GetAccessToken(), postData);
            var    result   = JsonHelper.JsonToObject <QRcode>(ret);

            return(result.ticket);
        }
Exemplo n.º 15
0
        public string GetUserInfo()
        {
            var user = BasicApi.GetUserInfo("client_credential");

            return(JsonConvert.SerializeObject(user));
        }
Exemplo n.º 16
0
 /// <summary>
 /// Register an invitation delegate to be
 /// notified when a multiplayer invitation arrives
 /// </summary>
 public void RegisterInvitationDelegate(BasicApi.InvitationReceivedDelegate deleg)
 {
     mClient.RegisterInvitationDelegate(deleg);
 }
 /// <summary>
 /// 1注册成功给1发模板消息
 /// </summary>
 /// <param name="Response"></param>
 /// <param name="msg"></param>
 public void SendMuBanMsg(string json)
 {
     PostJson("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + BasicApi.GetAccessToken(), json);
 }