示例#1
0
    public static string ShareConfig(string shareurl)
    {
        var access_token = "";

        //if (HttpContext.Current.Cache.Get("access_token_js") == null)
        //{
        access_token = JSAPI.getToken();
        //    HttpContext.Current.Cache.Insert("access_token_js", access_token,null,DateTime.Now.AddSeconds(720),new TimeSpan(0,0,12));
        //}
        //else
        //{
        //    access_token = HttpContext.Current.Cache.Get("access_token_js").ToString();
        //}

        var ticket = JSAPI.GetTickect(access_token);

        var result = new ShareConfigContract();

        result.appid        = WxPayConfig.APPID;
        result.timestamp    = WxPayApi.GenerateTimeStamp();
        result.nonceStr     = WxPayApi.GenerateNonceStr();
        result.jsapi_ticket = ticket;
        var str = "";

        result.signture = JSAPI.GetSignature(ticket, result.nonceStr, result.timestamp, shareurl, out str);
        result.str      = str;

        return(JsonConvert.SerializeObject(result));
    }
示例#2
0
        private static void ReqWeixinToken()
        {
            var access_token = BasicAPI.GetAccessToken(AppID, AppSecret).access_token;
            var js           = JSAPI.GetTickect(access_token);
            var jssdk_ticket = js.ticket;
            var json         = DynamicJson.Serialize(new weixin_token {
                access_token = access_token, jssdk_ticket = jssdk_ticket
            });

            cache.Insert(AppID, json, null, DateTime.Now.AddSeconds(ACCESS_TOKEN_EXPIRE_SECONDS), System.Web.Caching.Cache.NoSlidingExpiration);
        }
示例#3
0
        /// <summary>
        /// 获取accountToken并缓存1小时
        /// </summary>
        /// <returns></returns>
        public string JsApiToken()
        {
            var token = "";

            try
            {
                token = CacheHelper.Get("JsApiToken") as string;
                if (string.IsNullOrEmpty(token))
                {
                    token = JSAPI.GetTickect(this.AccountToken()).ticket;
                    CacheHelper.Set("JsApiToken", token, 60 * 60);//缓存一个小时
                }
            }
            catch (Exception e)
            {
                SysExceptionTask.AddException(e, "获取JsApiToken");
            }
            return(token);
        }
示例#4
0
        // GET: api/WxConfig/5
        public WxConfig Get(int id)
        {
            string _appid     = "wx6aae9a42791c0cdf";
            string _appsecret = "71201c6d9ca47d1375ca2de8dbdf1c93";
            long   _timestamp = Util.CreateTimestamp();
            string _nonceStr  = Util.CreateNonce_str();
            string _signature = "";
            string string1    = "";
            var    ic         = Redis.Create("127.0.0.1", 7);

            ic.Log = XTrace.Log;

            var access_token = ic.Get <string>("access_token");
            var jsapi_ticket = ic.Get <string>("jsapi_ticket");


            if (access_token != null && jsapi_ticket != null)
            {
                _signature = JSAPI.GetSignature(jsapi_ticket, _nonceStr, _timestamp, "", out string1);
            }
            else
            {
                var access_token_json = BasicAPI.GetAccessToken(_appid, _appsecret);

                ic.Set("access_token", access_token_json.access_token, 7200);

                var jsapi_ticket_json = JSAPI.GetTickect(access_token_json.access_token);

                ic.Set("jsapi_ticket", jsapi_ticket_json.ticket, 7200);

                _signature = JSAPI.GetSignature(jsapi_ticket_json.ticket, _nonceStr, _timestamp, "", out string1);
            }

            return(new WxConfig
            {
                appId = _appid,
                timestamp = _timestamp,
                nonceStr = _nonceStr,
                signature = _signature
            });
        }
示例#5
0
 public string GetJsTicket(string appid, string appSecret, bool force)
 {
     try
     {
         var access_token = "";
         var jssdk_ticket = "";
         if (force && cache.Contains(appid))
         {
             cache.Remove(appid);
         }
         if (!cache.Contains(appid))
         {
             access_token = BasicAPI.GetAccessToken(appid, appSecret).access_token;
             var js = JSAPI.GetTickect(access_token);
             jssdk_ticket = js.ticket;
             var json = DynamicJson.Serialize(new weixin_token {
                 access_token = access_token, jssdk_ticket = jssdk_ticket
             });
             var policy = new CacheItemPolicy()
             {
                 AbsoluteExpiration = DateTime.Now.AddSeconds(ACCESS_TOKEN_EXPIRE_SECONDS)
             };
             cache.Set(appid, json, policy);
         }
         else
         {
             var weixin_token = DynamicJson.Parse(cache.Get(appid).ToString());
             access_token = weixin_token.access_token;
             jssdk_ticket = weixin_token.jssdk_ticket;
         }
         AppLogManager.Write(string.Format("appid:{0}, access_token: {1}, jssdk_ticket: {2}", appid, access_token, jssdk_ticket));
         return(jssdk_ticket);
     }
     catch (Exception ex)
     {
         LogWriter.Default.WriteError(ex);
         return(string.Empty);
     }
 }
示例#6
0
 private void refreshJSTickect()
 {
     if (!Status)
     {
         return;
     }
     LastRunDateTime = DateTime.Now;
     try
     {
         string newTickect = JSAPI.GetTickect(_token).ticket;
         _jsTickect = newTickect;
         if (JSTickectChangedEvent != null)
         {
             JSTickectChangedEvent(this, EventArgs.Empty);
         }
     }
     catch (Exception ex)
     {
         if (ErrorEvent != null)
         {
             ErrorEvent(this, new ThreadExceptionEventArgs(ex));
         }
     }
 }
示例#7
0
        public void Execute(IJobExecutionContext context)
        {
            var msg        = "";
            var _log       = new LogTask();
            var _wxconfig  = new WeiXinConfigTask();
            var configList = _wxconfig.GetListConfig();

            foreach (var item in configList)
            {
                var config = _wxconfig.GetConfig(item.WeiXinId);
                if (config != null)
                {
                    try
                    {
                        item.AccessToken     = BasicAPI.GetAccessToken(item.AppId, item.Appsecret).access_token;
                        item.JsApiToken      = JSAPI.GetTickect(item.AccessToken).ticket;
                        item.TokenUpdateTime = DateTime.Now;
                        msg = _wxconfig.UpdateToken(item).Msg;
                    }
                    catch (Exception e)
                    {
                        var log = new Log()
                        {
                            CreateTime = DateTime.Now, Msg = "公众号token更新错误:" + e.Message + ";时间:" + DateTime.Now, Ret = 0
                        };
                        _log.AddLog(log);
                    }
                }

                var log1 = new Log()
                {
                    CreateTime = DateTime.Now, Msg = "公众号token更新:" + item.WeiXinId + "执行:" + msg + ";时间:" + DateTime.Now, Ret = 0
                };
                _log.AddLog(log1);
            }
        }