//获取微信config接口所需参数 public jsapi_ticket getWXconfig(string JSon, string version) { string appId = string.Empty; string timestamp = string.Empty; string nonceStr = string.Empty; string signature = string.Empty; string CompID = string.Empty; string url = string.Empty; try { JsonData JInfo = JsonMapper.ToObject(JSon); if (JInfo.Count > 0 && JInfo["CompID"].ToString() != "" && JInfo["url"].ToString() != "") { CompID = JInfo["CompID"].ToString().Trim(); url = JInfo["url"].ToString().Trim(); } //获取核心企业维护的appid和secret //List<Hi.Model.Pay_PayWxandAli> list_paywx = new Hi.BLL.Pay_PayWxandAli().GetList("", "CompID = " + CompID + " and wx_Isno = 1 ", ""); //if (list_paywx == null || list_paywx.Count <= 0 || ClsSystem.gnvl(list_paywx[0].wx_appid, "") == "" || ClsSystem.gnvl(list_paywx[0].wx_appsechet, "") == "") // return new jsapi_ticket() { Result = "F", Description = "公众号配置信息不足" }; appId = AppID; string secret = AppSecret; string token = getWXtoken(appId, secret); string ticket = getJSTicketTicket(token); int num = url.IndexOf("#"); if (num > 0) { url = url.Substring(0, num); } //url = HttpContext.Current.Request.Url.AbsoluteUri.ToString(); nonceStr = createNonceStr(); timestamp = ConvertDateTimeInt(DateTime.Now).ToString(); string[] ArrayList = { "jsapi_ticket=" + ticket, "timestamp=" + timestamp, "noncestr=" + nonceStr, "url=" + url }; Array.Sort(ArrayList); signature = string.Join("&", ArrayList); signature = FormsAuthentication.HashPasswordForStoringInConfigFile(signature, "SHA1").ToLower(); jsapi_ticket result = new jsapi_ticket(); result.Result = "T"; result.Description = "获取成功"; result.appId = appId; result.timestamp = timestamp; result.nonceStr = nonceStr; result.signature = signature; return(result); } catch (Exception ex) { Common.CatchInfo(ex.Message + ":" + ex.StackTrace, "getWXconfig:"); return(new jsapi_ticket() { Result = "F", Description = "参数异常" }); } }
protected string Get_jsapi_ticket() { string access_token = Get_token(); string url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=" + access_token; WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; wc.Encoding = Encoding.UTF8; string returnText = wc.DownloadString(url); jsapi_ticket at = JsonHelper.ParseFromJson <jsapi_ticket>(returnText); if (returnText.Contains("errcode")) { //可能发生错误 } return(at._ticket);//返回的值里面包含access_token,这个值应该每7200秒获取一次 }
protected string Get_jsapi_ticket() { // string sqlstring = "select Access_token_time,Access_token from AToken"; // DataSet tokends = SqlUtils.MSSQLHelper.Query(sqlstring); jsapi_ticket at = new jsapi_ticket(); // if (tokends.Tables[0].Rows.Count > 0) // { //string timestamp = GetTimeStamp(); //if (Convert.ToInt32(tokends.Tables[0].Rows[0][0]) - Convert.ToInt32(timestamp) > 7100) //{//更新数据库的token值,理论上不会存在在这个页面呆2个小时的,这里可以不用刷新 //} //else //{ // string access_token = Get_token(); string url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=" + Session["token"].ToString(); WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; wc.Encoding = Encoding.UTF8; string returnText = wc.DownloadString(url); at = JsonHelper.ParseFromJson <jsapi_ticket>(returnText); // } // } //else {//数据库这个字段的值为空,则新增数据。但是在api测试阶段,这个值 //} //if (returnText.Contains("errcode")) //{ // //可能发生错误 //} return(at._ticket);//返回的值里面包含access_token,这个值应该每7200秒获取一次 }