/// <summary> /// 根据当前日期 判断Access_Token 是否超期 如果超期返回新的Access_Token 否则返回之前的Access_Token /// </summary> /// <param name="datetime"></param> /// <returns></returns> //public string IsExistAccess_Token() //{ // string AccessToken = ""; // object Access_Token = CacheHelper.GetCache("Access_Token");//设置主菜单缓存 防止多次访问数据库V1003_TODAY_MUSIC // if (Access_Token != null) // { // AccessToken = Access_Token.ToString(); // } // else // { // AccessToken = AccessTokenContainer.GetToken(AppId, false);//重新获取Access_Token // CacheHelper.SetCache("Access_Token", AccessToken, TimeSpan.FromMinutes(120)); // } // return AccessToken; //} public static string IsExistAccess_Token2() { string AccessToken = ""; BrnMall.Core.WeiXinConfig wxconfig = BrnMall.Core.BMAConfig.WeiXinConfig; object Access_Token = BrnMall.Core.Common.CacheHelper.GetCache("Access_Token");//设置主菜单缓存 防止多次访问数据库V1003_TODAY_MUSIC if (Access_Token != null) { //DateTime Tim = DateTime.Now; //string getsql = "select count(1) from TokenConfig where Id=1 and '" + Tim + "'>Tim"; //object o = imp.GetSqlOne(CommandType.Text, getsql); //if (o.ToString().Trim() == "0") //{ AccessToken = Access_Token.ToString(); //} //else //{ // AccessToken = FirstAccess_Token(wxconfig.AppID, wxconfig.AppID);//重新获取Access_Token // BrnMall.Core.Common.CacheHelper.SetCache("Access_Token", AccessToken, TimeSpan.FromMinutes(119)); // //string sql = "update TokenConfig set Tim='" + DateTime.Now.AddMinutes(3) + "'"; // //imp.GetSqlCount(CommandType.Text, sql); //} } else { AccessToken = FirstAccess_Token(wxconfig.AppID, wxconfig.AppID);//重新获取Access_Token BrnMall.Core.Common.CacheHelper.SetCache("Access_Token", AccessToken, TimeSpan.FromMinutes(120)); //string sql = "update TokenConfig set Tim='" + DateTime.Now.AddMinutes(45) + "'"; //imp.GetSqlCount(CommandType.Text, sql); } BrnMall.Core.Common.LogHelper.WriteLog("最新的TOKEN:" + AccessToken); return(AccessToken); }
/** * @生成签名,详见签名生成算法 * @return 签名, sign字段不参加签名 */ public string MakeSign() { BrnMall.Core.WeiXinConfig wxconfig = BrnMall.Core.BMAConfig.WeiXinConfig; //转url格式 string str = ToUrl(); //在string后加入API KEY str += "&key=" + wxconfig.PartnerKey; //MD5加密 var md5 = MD5.Create(); var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); var sb = new StringBuilder(); foreach (byte b in bs) { sb.Append(b.ToString("x2")); } //所有字符转为大写 return(sb.ToString().ToUpper()); }