Ejemplo n.º 1
0
        public static string get_pre_auth_code()
        {
            //刷新获取预授权码pre_auth_code
            TokenResult trp = refresh_pre_auth_code(get_component_access_token());

            return(trp.pre_auth_code);
        }
Ejemplo n.º 2
0
        private static string get_component_access_token()
        {
            WeserviceEntities entity = new WeserviceEntities();
            var list = entity.dt_wx_token.Where(s => s.info_type == "component_verify_ticket").ToList();

            if (list.Count == 0)
            {
                return("");
            }
            var ticket_item = list[0];

            //刷新获取第三方平台component_access_token
            list = entity.dt_wx_token.Where(s => s.info_type == "component_access_token").ToList();
            string component_access_token = "";

            if (list.Count > 0)
            {
                var    token = list[0];
                double ts    = DateTime.Now.Subtract((DateTime)token.last_time).TotalSeconds;
                if (ts > (token.expires_in - 600) || token.token == null)//已过期
                {
                    //刷新token
                    TokenResult tr = refresh_component_access_token(ticket_item.token);
                    if (tr != null)
                    {
                        token.last_time  = DateTime.Now;
                        token.token      = tr.component_access_token;
                        token.expires_in = tr.expires_in;
                        token.appid      = ticket_item.appid;
                    }
                }
                component_access_token = token.token;
            }
            else
            {
                TokenResult tr = refresh_component_access_token(ticket_item.token);
                if (tr != null)
                {
                    var new_token = new dt_wx_token
                    {
                        info_type  = "component_access_token",
                        last_time  = DateTime.Now,
                        token      = tr.component_access_token,
                        expires_in = tr.expires_in,
                        appid      = ticket_item.appid
                    };
                    component_access_token = new_token.token;
                    entity.dt_wx_token.Add(new_token);
                }
            }
            int count = entity.SaveChanges();

            LogHelper.WriteInfo("update_ticket => count2 : " + count);
            return(component_access_token);
        }
Ejemplo n.º 3
0
 private static TokenResult refresh_pre_auth_code(string component_access_token)
 {
     try
     {
         string      url  = "https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=" + component_access_token;
         string      json = "{\"component_appid\":\"wx24f0419c030f897a\"}";
         TokenResult tr   = Post.PostGetJson <TokenResult>(url, null, new MemoryStream(System.Text.Encoding.Default.GetBytes(json)));
         return(tr);
     }
     catch (Exception e)
     {
         LogHelper.WriteException(e);
     }
     return(null);
 }
Ejemplo n.º 4
0
 private static TokenResult refresh_component_access_token(string ticket)
 {
     try
     {
         string url  = "https://api.weixin.qq.com/cgi-bin/component/api_component_token";
         string json = "{\"component_appid\":\"wx24f0419c030f897a\",\"component_appsecret\":" +
                       "\"6fba5eb2c4f3f118478608e7d854bace\",\"component_verify_ticket\":" +
                       "\"" + ticket + "\"}";
         TokenResult tr = Post.PostGetJson <TokenResult>(url, null, new MemoryStream(System.Text.Encoding.Default.GetBytes(json)));
         return(tr);
     }
     catch (Exception e)
     {
         LogHelper.WriteException(e);
     }
     return(null);
 }