/// <summary> /// 单击同步门店按钮事件 /// </summary> protected void btnSyncPoiInfos_Click(object sender, EventArgs e) { try { //获取access_token string token = Access_token.GetAccess_token(Access_token.Access_Type.weixin, true); //门店列表接口提交url string url = "https://api.weixin.qq.com/cgi-bin/poi/getpoilist?access_token=" + token; //提交json串,门店列表索引开始:begin,门店列表返回数量限制:limit string json = @"{""begin"":0,""limit"":10}"; //调用post提交方法 string strPOIList = new Hishop.Weixin.MP.Util.WebUtils().DoPost(url, json); //将传回的json字符串转换为json对象 JObject obj3 = JsonConvert.DeserializeObject(strPOIList) as JObject; //将json对象转换为实体类对象 List <PoiInfoList> poiInfoList = JsonHelper.JsonToList <PoiInfoList>(obj3["business_list"].ToString()); if (poiInfoList.Count <= 0) { this.ShowMsg("尚未添加微信门店", false); return; } if (WxPoiHelper.SyncPoiListInfo(poiInfoList)) { this.ShowMsgAndReUrl("同步成功!", true, Request.Url.AbsoluteUri); } else { this.ShowMsg("同步失败", false); } } catch (Exception ex) { this.ShowMsg(ex.Message, false); } }
/// <summary> /// 获取Access_token /// </summary> /// <returns></returns> public static Access_token GetAccess_token() { string appid = "wxc625758e50b5ced1"; //微信公众号appid string secret = "k5XpFWoq9YbqGNEWUK_fiDYoS6UJLu-YlFqMAUOOF4s"; //微信公众号appsecret string strUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + appid + "&corpsecret=" + secret; Access_token mode = new Access_token(); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl); //用GET形式请求指定的地址 req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { //HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(wr.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd(); reader.Close(); reader.Dispose(); //在这里对Access_token 赋值 Access_token token = new Access_token(); token = JsonConvert.DeserializeObject <Access_token>(content); mode.access_token = token.access_token; mode.expires_in = token.expires_in; } return(mode); }
/// <summary> /// 根据当前日期判断是否在有效期内 /// </summary> /// <returns></returns> public static string IsExistAccess_Token() { string Token = string.Empty; DateTime YouXRQ; // 读取XML文件中的数据,并显示出来 ,注意文件路径 Token = AppConfig.Access_Token; log.AppenLog("Token:" + Token); log.AppenLog("Access_YouXRQ:" + AppConfig.Access_YouXRQ); YouXRQ = Convert.ToDateTime(AppConfig.Access_YouXRQ); log.AppenLog("YouXRQ:" + YouXRQ); if (DateTime.Now > YouXRQ) { try { DateTime _youxrq = DateTime.Now; Access_token mode = GetAccess_token(); _youxrq = _youxrq.AddSeconds(int.Parse(mode.expires_in)); Token = mode.access_token; } catch (Exception ex) { WriteLog(ex.Message); } } return(Token); }
/// <summary> /// 获取Access_token值 /// </summary> /// <returns></returns> public static string IsExistAccess_Token() { string Token = string.Empty; DateTime YouXRQ; // 读取XML文件中的数据,并显示出来 ,注意文件路径 string filepath = System.Web.HttpContext.Current.Server.MapPath("access_token.xml"); StreamReader str = new StreamReader(filepath, System.Text.Encoding.UTF8); XmlDocument xml = new XmlDocument(); xml.Load(str); str.Close(); str.Dispose(); Token = xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText; YouXRQ = Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText); if (DateTime.Now > YouXRQ)//当Access_token失效时,才重新获取 { DateTime _youxrq = DateTime.Now; Access_token mode = GetAccess_token(); xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText = mode.access_token; _youxrq = _youxrq.AddSeconds(int.Parse(mode.expires_in)); xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText = _youxrq.ToString(); xml.Save(filepath); Token = mode.access_token; } return(Token); }
////返回字符串调用方法: //public static HttpResponseMessage ToHttpMsgForWeChat(string strMsg) { HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(strMsg, Encoding.GetEncoding("UTF-8"), "application/x-www-form-urlencoded") }; return result; } public static Access_token GetAccess_token() { Access_token mode = new Access_token(); string appid = mode.appid; string secret = mode.app_secret; loghelper.WriteLine(logFile, "appid:" + appid + "secret:" + secret); string strUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl); loghelper.WriteLine(logFile, "请求URL:" + strUrl); req.Method = "GET"; loghelper.WriteLine(logFile, "请求方式为:" + req.Method); using (WebResponse wr = req.GetResponse()) { HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); loghelper.WriteLine(logFile, "myResponse"); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd(); loghelper.WriteLine(logFile, "content=" + content); //Response.Write(content); //在这里对Access_token 赋值 Access_token token = new Access_token(); token = JsonHelper.ParseFromJson <Access_token>(content); mode.access_token = token.access_token; mode.expires_in = token.expires_in; loghelper.WriteLine(logFile, "返回值为 access_token=" + mode.access_token + "expires_in=" + mode.expires_in); } return(mode); }
private static Access_token GetAccess_token() { string AppId = "wxa76dfc44f4141c4c"; string AppSecret = "e23771971d294d4403ece898138cc01f"; string strUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + AppId + "&secret=" + AppSecret; Access_token mode = new Access_token(); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl); //用GET形式请求指定的地址 req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { //HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(wr.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd(); reader.Close(); reader.Dispose(); //在这里对Access_token 赋值 Access_token token = new Access_token(); token = JsonConvert.DeserializeObject <Access_token>(content); mode.access_token = token.access_token; mode.expires_in = token.expires_in; } return(mode); }
public static Access_token GetAccess_token() { string appid = "wx3fd9b86495ce9609"; string secret = "6f6a79781e36f7c69e48533f209bc226"; string strUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret; Access_token mode = new Access_token(); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl); req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd(); //Response.Write(content); //在这里对Access_token 赋值 Access_token token = new Access_token(); token = JsonHelper.ParseFromJson <Access_token>(content); mode.access_token = token.access_token; mode.expires_in = token.expires_in; } return(mode); }
/// <summary> /// 根据当前日期 判断Access_Token 是否超期 如果超期返回新的Access_Token 否则返回之前的Access_Token /// </summary> /// <param name="datetime"></param> /// <returns></returns> public static string IsExistAccess_Token() { string Token = string.Empty; DateTime YouXRQ; // 读取XML文件中的数据,并显示出来 ,注意文件路径 //string filepath = HttpContext.Current.Server.MapPath("\\Resource\\WeChat\\AccessToken.xml"); //微信需要可信域名,默认80端口,使用别名登陆,相对路径会变成iis的根目录,所以写成绝对路径 string filepath = string.Format(@"D:\LeaRun\Resource\WeChat\AccessToken.xml"); StreamReader str = new StreamReader(filepath, Encoding.UTF8); XmlDocument xml = new XmlDocument(); xml.Load(str); str.Close(); str.Dispose(); Token = xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText; YouXRQ = Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText); //TimeSpan st1 = new TimeSpan(YouXRQ.Ticks); //最后刷新的时间 //TimeSpan st2 = new TimeSpan(DateTime.Now.Ticks); //当前时间 //TimeSpan st = st2 - st1; //两者相差时间 if (DateTime.Now > YouXRQ) { DateTime _youxrq = DateTime.Now; Access_token mode = GetAccess_token(); xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText = mode.access_token; _youxrq = _youxrq.AddSeconds(int.Parse(mode.expires_in)); xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText = _youxrq.ToString(); xml.Save(filepath); Token = mode.access_token; } return(Token); }
/// <summary> /// 获取jsapi_ticket /// </summary> /// <returns></returns> //public string wx_jsapi_ticket() //{ // Access_token access_tokens = GetAccess_token(); // string url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=wx_card"+ access_tokens.access_token; // HttpClient httpClient = new HttpClient(); // var ticket=httpClient.GetAsync(url); // return ticket.ToString(); //} private static wx_ticket GetTicket() { Access_token token = GetAccess_token(); //string jsapi_ticket = "";//唯一凭证 string jsurl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + token.access_token + "&type=jsapi"; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(jsurl); //用GET形式请求指定的地址 req.Method = "GET"; wx_ticket wx_ = new wx_ticket(); using (WebResponse wr = req.GetResponse()) { //HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(wr.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd(); //jsapi_ticket = content; reader.Close(); reader.Dispose(); wx_ticket wx_Ticket = new wx_ticket(); wx_Ticket = JsonConvert.DeserializeObject <wx_ticket>(content); wx_.ticket = wx_Ticket.ticket; } //WriteLogs("piaoju", "ticket", jsapi_ticket); return(wx_); }
private static Access_token GetsuiteAccess_token(string corId, string Corpsecret, string SuiteTicket) { Access_token mode = new Access_token(); try { //1.获取第三方应用凭证(suite_access_token) string suitUrl = $"https://qyapi.weixin.qq.com/cgi-bin/service/get_suite_token"; string suitpost = "{ \"suite_id\": \"" + corId + "\",\"suite_secret\":\"" + Corpsecret + "\",\"suite_ticket\":\"" + SuiteTicket + "\"}"; log.AppenLog("获取第三方应用凭证:" + suitpost); string suitResult = httpHelp.PostWebRequest(suitUrl, suitpost, Encoding.UTF8); log.AppenLog("获取第三方应用凭证返回:" + suitResult); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(JsonDes)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(suitResult)); JsonDes obj = (JsonDes)ser.ReadObject(ms); string suite_access_token = obj.suite_access_token; mode.access_token = suite_access_token; mode.expires_in = obj.expires_in; AppConfig.suite_access_token = suite_access_token; AppConfig.suiteAccess_YouXRQ = DateTime.Now.AddSeconds(int.Parse(mode.expires_in)).ToString("yyyy-MM-dd HH:mm:ss"); } catch (Exception ex) { log.AppenLog("获取第三方应用凭证失败"); } return(mode); }
/// <summary> /// 根据当前日期获取第三方应用凭证 /// </summary> /// <returns></returns> public static string IssuitResult(string corId, string Corpsecret, string SuiteTicket) { log.AppenLog("根据日期获取第三方应用凭证"); string token = string.Empty; try { DateTime YouXRQ; token = BonusHelper.AppConfig.suite_access_token; YouXRQ = Convert.ToDateTime(BonusHelper.AppConfig.suiteAccess_YouXRQ); if (DateTime.Now > YouXRQ) { DateTime _youxrq = DateTime.Now; Access_token mode = GetsuiteAccess_token(corId, Corpsecret, SuiteTicket); _youxrq = _youxrq.AddSeconds(int.Parse(mode.expires_in)); token = mode.access_token; } } catch (Exception ex) { log.AppenLog("第三方授权失败"); } log.AppenLog("页面:" + token); return(token); }
protected override void AttachChildControls() { SiteSettings masterSettings = SettingsManager.GetMasterSettings(false); //if (MemberProcessor.GetCurrentMember().UserId != 215) // GotoResourceNotFound("前方高能预警,非测试人员请回避!"); hidAccess_token = (HtmlInputHidden)this.FindControl("hidAccess_token"); isSanZuo = (HtmlInputHidden)this.FindControl("isSanZuo"); isClose = (HtmlInputHidden)this.FindControl("isClose"); litStoreName = (Literal)this.FindControl("litStoreName"); litBuildings = (Literal)this.FindControl("litBuildings"); hidAccess_token.Value = Access_token.GetAccess_token(); isClose.Value = masterSettings.isCloseStore.ToString(); litStoreName.Text = CustomConfigHelper.Instance.BusinessName; isSanZuo.Value = CustomConfigHelper.Instance.IsSanzuo ? "1" : "0"; isSanZuo.Value = CustomConfigHelper.Instance.IsProLa ? "2" : "0"; /* * <li> * <a>取水楼</a> * <span>环亚大厦</span> * <span>民生银行大厦</span> * <span>浦发银行大厦</span> * <span>伟业大厦</span> * <span>庭瑞大厦</span> * <span>IFC国际金融中心</span> * <span>登月大厦</span> * <span>良友大厦</span> * <span>福星国际商会大厦</span> * <span>银湖大厦</span> * </li> */ string buildingHtml = string.Empty; DataTable dtAllStreets = SalesHelper.GetStreetsInfo(); if (CustomConfigHelper.Instance.IsSanzuo) { buildingHtml += "<li><a>武汉市 武昌区 水岸国际F6漫时区商圈</a>"; } else { buildingHtml += "<li><a>深圳宝安区</a>"; } foreach (DataRow row in dtAllStreets.Rows) { buildingHtml += "<span role='btnStreet' distributorId='" + row["clientUserId"].ToString() + "'>" + row["StreetName"].ToString() + "</span>"; } buildingHtml += "</li>"; litBuildings.Text = buildingHtml; }
/// <summary> /// 获取access_token的方法 /// </summary> /// <param name="corpid">企业ID</param> /// <param name="secret">应用的凭证密钥</param> /// <returns></returns> public static string GetAccessToken(string corpid, string secret) { //先判断配置文件web.config中是否已经有了Access_Token信息,并且判断距离上次获取的时间是否超过了2小时 //没有超过的话,不需要获取,直接使用。超出的话,重新获取,并修改web.config中的配置信息。 //先读取时间信息 //最后一次获取Access_Token的时间 string dllPath = string.Format( "{0}\\{1}.dll", AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory, "wx_api"); Configuration config = ConfigurationManager.OpenExeConfiguration(dllPath); AppSettingsSection oSection = null; oSection = config.GetSection("appSettings") as AppSettingsSection; string dt = oSection.Settings["Access_Token_3_Time"].Value.ToString(); DateTime token_dt = Convert.ToDateTime(oSection.Settings["Access_Token_3_Time"].Value.ToString()); //现在的时间 DateTime now_dt = DateTime.Now; //获取两个时间相差的秒数 TimeSpan timeSpan = now_dt - token_dt; double c = timeSpan.TotalSeconds; //如果相差大于7200秒的话,重新获取,否则直接使用上次获取的Access_Token值 if (c > 7200.00) { string strJson = HttpRequestUtil.RequestUrl(string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}", corpid, secret)); //反序列化json,把json串序列化成model包,使用了json.net工具包。 Access_token access_Token = JsonConvert.DeserializeObject <Access_token>(strJson); if (access_Token.errcode == 0) { //修改配置文件中的节点为新的数据 oSection.Settings["Access_Token_3_Time"].Value = now_dt.ToString("yyy-MM-dd HH:mm:ss"); oSection.Settings["Access_Token_3"].Value = access_Token.access_token; config.Save(ConfigurationSaveMode.Modified); return(access_Token.access_token); } else { return(access_Token.errmsg); } } else { return(oSection.Settings["Access_Token_3"].Value.ToString()); } }
/// <summary> /// 菜单项目 /// </summary> public void MyMenu() { string weixin1 = ""; weixin1 = @" { ""button"":[ { ""type"":""click"", ""name"":""你好!"", ""key"":""HELLO"" }, { ""type"":""click"", ""name"":""谁简介"", ""key"":""myprofile"" }, { ""name"":""测试菜单"", ""sub_button"":[ { ""type"":""view"", ""name"":""全程陪诊"", ""url"":""http://543av8.natappfree.cc/WebUI/Index.aspx"" }, { ""type"":""view"", ""name"":""全程陪诊H5"", ""url"":""" + GetCodeUrl("http://543av8.natappfree.cc/vip-c/index.html") + @""" }, { ""type"":""click"", ""name"":""疾控中心"", ""key"":""jkzx"" } }] }"; //string filepath = HttpContext.Current.Server.MapPath("menu.txt"); //StreamReader sr = new StreamReader(filepath, Encoding.Default); //string line = sr.ReadToEnd(); Access_token model = new Access_token(); model.access_token = HttpRequestUtil.GetAccessToken();//将access_token进行缓存 //model = GetAccess_token(); //GetPage("https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + model.access_token + "", ""); //删除菜单 GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + model.access_token + "", weixin1); }
protected string Get_token() { string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwf427ba730248b6c9&corpsecret=Oc7XJ3G4DJmTVwey8srmVfSazk8ic2Ebk1VRRStFFL0"; WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; wc.Encoding = Encoding.UTF8; string returnText = wc.DownloadString(url); Access_token at = JsonHelper.ParseFromJson <Access_token>(returnText); if (returnText.Contains("errcode")) { //可能发生错误 } return(at._access_token);//返回的值里面包含access_token,这个值应该每7200秒获取一次 }
protected string Get_token() { //string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxde814da6ae102dd9&corpsecret=irAgDRT7BBJ-WQ7JCMnh8df9moQcp7Vv1wy6iZfHR8IPhFySoi8qKchqebr4wEdu"; string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwf427ba730248b6c9&corpsecret=fCx3vNAPMbdeonhKCPUoSN5vQPudNAObRIjIBTnoZXQ"; WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; wc.Encoding = Encoding.UTF8; string returnText = wc.DownloadString(url); Access_token at = JsonHelper.ParseFromJson <Access_token>(returnText); if (returnText.Contains("errcode")) { //可能发生错误 } return(at._access_token);//返回的值里面包含access_token,这个值应该每7200秒获取一次 }
protected string Get_token() { //string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxde814da6ae102dd9&corpsecret=irAgDRT7BBJ-WQ7JCMnh8df9moQcp7Vv1wy6iZfHR8IPhFySoi8qKchqebr4wEdu"; string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxa18c540ba64d0254&corpsecret=IjdmpjpZ8fE_JS3qh8RRfJOc0gHKpAdMmmHzVI2kPFY";//njvivo WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; wc.Encoding = Encoding.UTF8; string returnText = wc.DownloadString(url); Access_token at = JsonHelper.ParseFromJson <Access_token>(returnText); if (returnText.Contains("errcode")) { //可能发生错误 } return(at._access_token);//返回的值里面包含access_token,这个值应该每7200秒获取一次 }
protected string Get_token() { //string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxa18c540ba64d0254&corpsecret=IjdmpjpZ8fE_JS3qh8RRfJOc0gHKpAdMmmHzVI2kPFY"; string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxa18c540ba64d0254&corpsecret=IjdmpjpZ8fE_JS3qh8RRfJOc0gHKpAdMmmHzVI2kPFY"; WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; wc.Encoding = Encoding.UTF8; string returnText = wc.DownloadString(url); Access_token at = JsonHelper.ParseFromJson <Access_token>(returnText); if (returnText.Contains("errcode")) { //可能发生错误 } return(at._access_token);//返回的值里面包含access_token,这个值应该每7200秒获取一次 }
/// 根据当前日期 判断Access_Token 是否超期 如果超期返回新的Access_Token 否则返回之前的Access_Token /// </summary> /// <param name="datetime"></param> /// <returns></returns> public static string IsExistAccess_Token() { string Token = string.Empty; DateTime YouXRQ; // 读取XML文件中的数据,并显示出来 ,注意文件路径 //string filepath = System.Web.HttpContext.Current.Server.MapPath("Access_Token.xml"); string filepath = Path.Combine(HttpRuntime.AppDomainAppPath, "Access_Token.xml"); // var logFile = System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["logpath"] + DateTime.Now.ToString("/yyyyMM") + "/" + "Access_Token" + System.DateTime.Now.ToString("yyyyMM") + ".txt"); loghelper.WriteLine(logFile, "开始获取Access_Token.xml 路径:" + filepath); StreamReader str = new StreamReader(filepath, System.Text.Encoding.UTF8); loghelper.WriteLine(logFile, "Access_Token.xml 路径转UTF8:" + str); XmlDocument xml = new XmlDocument(); xml.Load(str); str.Close(); str.Dispose(); Token = xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText; loghelper.WriteLine(logFile, "token值是" + Token); YouXRQ = Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText); loghelper.WriteLine(logFile, "获取Access_YouXRQ值 " + YouXRQ); if (DateTime.Now > YouXRQ) { DateTime _youxrq = DateTime.Now; loghelper.WriteLine(logFile, "GetAccess_token 方法"); Access_token mode = GetAccess_token(); loghelper.WriteLine(logFile, "GetAccess_token 结束"); xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText = mode.access_token; loghelper.WriteLine(logFile, "Access_Token 值改变为" + mode.access_token); _youxrq = _youxrq.AddSeconds(int.Parse(mode.expires_in)); xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText = _youxrq.ToString(); loghelper.WriteLine(logFile, "Tokend保存路径" + filepath); xml.Save(filepath); Token = mode.access_token; } return(Token); }
/// <summary> /// 通过corpid和appsecret获取Access_token /// </summary> /// <returns></returns> private static Access_token GetAccess_token() { string corpid = "wxa5626fae9ab7ef5b"; string secret = "92ORkOk0y1WsoUokHp-hLRicfuxMtj9EUf4fK1KH4Yo"; string strUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + secret; Access_token mode = new Access_token(); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl); req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd();//在这里对Access_token 赋值 Access_token token = new Access_token(); token = JsonHelper.ParseFromJson <Access_token>(content); mode.access_token = token.access_token; mode.expires_in = token.expires_in; } return(mode); }
public async Task <HttpResponseMessage> accessToken([FromBody] Access_token param) { try { var temp = db.Oauths.Where(m => m.Consumer_key == param.consumer_key && m.Request_token == param.request_token && m.Verifier_token == param.verifier_token).FirstOrDefault(); if (temp == null) { return(CreateResponse(HttpStatusCode.NotFound, "Giá trị tham số bạn nhập sai")); } else { var request = HttpContext.Current.Request; var tokenServiceUrl = request.Url.GetLeftPart(UriPartial.Authority) + request.ApplicationPath + "/Token"; using (var client = new HttpClient()) { var requestParams = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("grant_type", "password"), new KeyValuePair <string, string>("username", "admin2"), new KeyValuePair <string, string>("password", "") }; var requestParamsFormUrlEncoded = new FormUrlEncodedContent(requestParams); var tokenServiceResponse = await client.PostAsync(tokenServiceUrl, requestParamsFormUrlEncoded); var responseString = await tokenServiceResponse.Content.ReadAsStringAsync(); var responseCode = tokenServiceResponse.StatusCode; var responseMsg = new HttpResponseMessage(responseCode) { Content = new StringContent(responseString, Encoding.UTF8, "application/json") }; return(responseMsg); } } } catch (Exception e) { return(CreateResponse(HttpStatusCode.NotFound, "Giá trị tham số bạn nhập sai")); } }
public void MyMenu() { string weixin1 = ""; weixin1 = @" { ""button"":[ { ""type"":""click"", ""name"":""你好!"", ""key"":""HELLO"" }, { ""type"":""click"", ""name"":""我的简介"", ""key"":""myprofile"" }, { ""name"":""二级菜单"", ""sub_button"":[ { ""type"":""view"", ""name"":""预约挂号"", ""url"":""https://www.guahao.com/"" }, { ""type"":""click"", ""name"":""疾控中心"", ""key"":""jkzx"" }] }] } "; Access_token model = new Access_token(); model = GetAccess_token(); GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + model.access_token + "", weixin1); //LogHelper.WriteLog("菜单下面这个i的值" + i); }
/// <summary> /// 根据当前日期 判断Access_Token 是否超期 如果超期返回新的Access_Token 否则返回之前的Access_Token /// </summary> /// <param name="datetime"></param> /// <returns></returns> public static string IsExistAccess_Token() { string Token = string.Empty; //if (System.Web.HttpContext.Current.Session["accessToken"].ToString()!= "") //{ // Token = System.Web.HttpContext.Current.Session["accessToken"].ToString(); //} if (HttpRequestUtil.TokenExpired(System.Web.HttpContext.Current.Session["accessToken"].ToString()) == true) { Token = System.Web.HttpContext.Current.Session["accessToken"].ToString(); } else { Access_token mode = GetAccessToken(); Token = mode.access_token; } return(Token); }
public static Access_token GetAccess_token() { log.AppenLog("获取普通token"); string strUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + AppConfig.sCorpID + "&corpsecret=" + AppConfig.Corpsecret; log.AppenLog("获取普通token_URl:" + strUrl); Access_token mode = new Access_token(); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl); req.Method = "GET"; try { WebResponse wr = req.GetResponse(); HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd(); //TextHelper.Fun_WriteTxt("GetAccess_token:" + content); //Response.Write(content); //在这里对Access_token 赋值 WriteLog("content" + content); Access_token token = new Access_token(); // token =Sunpn.Json.JsonHelper.DeserializeJsonToObject<Access_token>(content); token = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType <Access_token>(content, token); WriteLog("json"); mode.access_token = token.access_token; mode.expires_in = token.expires_in; AppConfig.Access_Token = mode.access_token; AppConfig.Access_YouXRQ = DateTime.Now.AddSeconds(int.Parse(mode.expires_in)).ToString("yyyy-MM-dd HH:mm:ss"); } catch (Exception ex) { WriteLog("GetAccess_token is error:" + ex.Message); } //TextHelper.Fun_WriteTxt(string.Format("GetAccess_token is Return, Access_Token:{0} Expires_In:{1}", mode.access_token, mode.expires_in)); return(mode); }
/// <summary> /// 获取access_token /// </summary> public static string GetAccessToken() { string access_token = string.Empty; Access_token token = new Access_token(); token.access_token = ConfigurationManager.AppSettings["access_token"]; if (TokenExpired(token.access_token)) //access_token过期 { access_token = GetToken(AppIDCode.Appid, AppIDCode.Appsecret); Configuration config = WebConfigurationManager.OpenWebConfiguration("~"); AppSettingsSection app = config.AppSettings; app.Settings["access_token"].Value = access_token; config.Save(ConfigurationSaveMode.Modified); } else { return(token.access_token); } return(access_token); }
// /// <summary> /// 获取AccessToken /// http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96access_token /// </summary> /// <param name="grant_type"></param> /// <param name="appid"></param> /// <param name="secrect"></param> /// <returns>access_toke</returns> public static dynamic GetAccessToken() { string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + AppIDCode.Appid + "&secret=" + AppIDCode.Appsecret + ""; Access_token mode = new Access_token(); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd(); //Response.Write(content); //在这里对Access_token 赋值 Access_token token = new Access_token(); token = JsonHelper.ParseFromJson <Access_token>(content); mode.access_token = token.access_token; mode.expires_in = token.expires_in; } return(mode); }
public Access_token GetAccess_token() { string strUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret; Access_token mode = new Access_token(); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl); req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string content = reader.ReadToEnd(); Util.Debuglog("content=" + content, "content.txt"); //Response.Write(content); //在这里对Access_token 赋值 Access_token token = new Access_token(); JsonHelper jh = new JsonHelper(); token = jh.ParseFromJson <Access_token>(content); mode.access_token = token.access_token; mode.expires_in = token.expires_in; } return(mode); }
/// <summary> /// 获取凭证 /// </summary> /// <returns></returns> //protected static string Get_token() //{ // string appid = "wx88ac3e6ab868f62f"; // string secret = "bfbf498ac439cf67b39d13f600fe378d"; // string Str = ""; // Access_token access_token = new Access_token(); // Str = GetJson("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret).ToString(); // access_token = JsonHelper.ParseFromJson<Access_token>(Str); // return access_token.access_token; //} /// <summary> /// 得到accesstoken 如果文件里时间 超时则重新获取 /// </summary> /// <returns></returns> private string Get_token() { // access_token 应该全局存储与更新,以下代码以写入到文件中做示例 string appid = "wx88ac3e6ab868f62f"; string secret = "bfbf498ac439cf67b39d13f600fe378d"; string access_token = ""; string path = HttpContext.Current.Server.MapPath(@"/weixin/"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path = path + "access_token.json"; if (!File.Exists(path)) { string Str = ""; Access_token token = new Access_token(); Str = GetJson("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret).ToString(); token = JsonHelper.ParseFromJson <Access_token>(Str); access_token = token.access_token; //Log.WriteDebugLog("\t" + "access_token_1:" + access_token); if (access_token != "") { token.expires_in = (ConvertDateTimeInt(DateTime.Now) + 7000).ToString(); token.access_token = access_token; string json = JsonHelper.GetJson <Access_token>(token); StreamWriterMetod(json, path); } } else { FileStream file = new FileStream(path, FileMode.Open); try { var serializer = new DataContractJsonSerializer(typeof(AccToken)); //Log.WriteLog("access_token_2:" + access_token); AccToken readJSTicket = (AccToken)serializer.ReadObject(file); //Log.WriteLog("access_token_3:" + access_token); file.Close(); if (readJSTicket.expires_in < ConvertDateTimeInt(DateTime.Now)) { string Str = ""; Access_token token = new Access_token(); Str = GetJson("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret).ToString(); token = JsonHelper.ParseFromJson <Access_token>(Str); access_token = token.access_token; if (access_token != "") { token.expires_in = (ConvertDateTimeInt(DateTime.Now) + 7000).ToString(); token.access_token = access_token; string json = JsonHelper.GetJson <Access_token>(token); StreamWriterMetod(json, path); } } else { access_token = readJSTicket.access_token; //Log.WriteLog("\t" + "token_3:" + access_token); } } catch (Exception ex) { file.Dispose(); file.Close(); Log.WriteLog("error:" + ex.Message); try { File.Delete(path); Log.WriteLog("result:" + "删除成功!"); } catch (Exception exc) { Log.WriteLog("error...:" + exc.Message); } } } return(access_token); }
private void btnAddCoupons_Click(object sender, System.EventArgs e) { string msg = string.Empty; decimal?nullable; decimal num; int num2; if (this.ValidateValues(out nullable, out num, out num2)) { if (!this.calendarStartDate.SelectedDate.HasValue) { this.ShowMsg("请选择开始日期!", false); } else { if (!this.calendarEndDate.SelectedDate.HasValue) { this.ShowMsg("请选择结束日期!", false); } else { if (this.calendarStartDate.SelectedDate.Value.CompareTo(this.calendarEndDate.SelectedDate.Value) >= 0) { this.ShowMsg("开始日期不能晚于结束日期!", false); } else { CouponInfo target = new CouponInfo(); if (CustomConfigHelper.Instance.IsSanzuo || (CustomConfigHelper.Instance.AutoShipping && CustomConfigHelper.Instance.AnonymousOrder)) { target.Name = this.txtCouponName.Text; target.ClosingTime = this.calendarEndDate.SelectedDate.Value; target.StartTime = this.calendarStartDate.SelectedDate.Value; if (this.DDLservice.SelectedValue != "未选择") { target.SenderId = Convert.ToInt32(this.DDLservice.SelectedValue); } else { target.SenderId = 0; } if (this.DDLcategory.SelectedValue != "未选择") { target.CategoryId = Convert.ToInt32(this.DDLcategory.SelectedValue); } else { target.CategoryId = 0; } target.Amount = nullable; target.DiscountValue = num; target.NeedPoint = num2; } else { target.Name = this.txtCouponName.Text; target.ClosingTime = this.calendarEndDate.SelectedDate.Value; target.StartTime = this.calendarStartDate.SelectedDate.Value; target.Amount = nullable; target.DiscountValue = num; target.NeedPoint = num2; } ValidationResults results = Validation.Validate <CouponInfo>(target, new string[] { "ValCoupon" }); if (!results.IsValid) { using (System.Collections.Generic.IEnumerator <ValidationResult> enumerator = ((System.Collections.Generic.IEnumerable <ValidationResult>)results).GetEnumerator()) { if (enumerator.MoveNext()) { ValidationResult result = enumerator.Current; msg += Formatter.FormatErrorMessage(result.Message); this.ShowMsg(msg, false); return; } } } string lotNumber = string.Empty; //创建优惠券 CouponActionStatus status = CouponHelper.CreateCoupon(target, 0, out lotNumber); //创建微信卡包优惠券 //读取配置信息 if (false) //是否同时将生成的优惠券创建到到微信卡券内 { Hidistro.Membership.Context.SiteSettings masterSettings = Hidistro.Membership.Context.SettingsManager.GetMasterSettings(false); //CouponInfo coupon1 = CouponHelper.GetCoupon(couponId); WXCouponInfo wxCoupon = new WXCouponInfo(); wxCoupon.card.card_type = "GENERAL_COUPON"; wxCoupon.card.general_coupon.base_info.code_type = "CODE_TYPE_TEXT"; //wxCoupon.logo_url = Globals.DomainName + masterSettings.DistributorLogoPic; wxCoupon.card.general_coupon.base_info.logo_url = "http://yihui.ewaywin.com/Storage/data/DistributorLogoPic/20151125173959_6308.jpg"; wxCoupon.card.general_coupon.base_info.brand_name = masterSettings.SiteName; wxCoupon.card.general_coupon.base_info.title = "满" + target.Amount.ToString() + "减" + target.DiscountValue.ToString("0.00"); wxCoupon.card.general_coupon.base_info.sub_title = this.txtCouponName.Text; wxCoupon.card.general_coupon.base_info.color = "Color100"; wxCoupon.card.general_coupon.base_info.notice = "购买商品时使用"; wxCoupon.card.general_coupon.base_info.description = target.Description; wxCoupon.card.general_coupon.base_info.sku.quantity = 200; wxCoupon.card.general_coupon.base_info.date_info.type = "DATE_TYPE_FIX_TIME_RANGE"; wxCoupon.card.general_coupon.base_info.date_info.begin_timestamp = DateTimeToUnixTimestamp(target.StartTime); wxCoupon.card.general_coupon.base_info.date_info.end_timestamp = DateTimeToUnixTimestamp(target.ClosingTime); wxCoupon.card.general_coupon.base_info.use_custom_code = false; wxCoupon.card.general_coupon.default_detail = target.Name; string json = Newtonsoft.Json.JsonConvert.SerializeObject(wxCoupon, Newtonsoft.Json.Formatting.Indented); string access_token = Access_token.GetAccess_token(); //string access_token = "12j5h9jB21EEtpBkJKCtG3K10pZFXKAjDuM_CXJmvea6TdU_0YGCEaumhkClH0Wd3sq12901e6hqoA9VvTxemCSNUxtSoCwXSHrZ1Elb_v0CSQcAAAXNL"; Hidistro.UI.Web.API.wx.Post("https://api.weixin.qq.com/card/create?access_token=" + access_token, json); } if (status != CouponActionStatus.UnknowError) { CouponActionStatus couponActionStatus = status; if (couponActionStatus != CouponActionStatus.DuplicateName) { if (couponActionStatus != CouponActionStatus.CreateClaimCodeError) { this.ShowMsg("添加优惠券成功", true); this.RestCoupon(); } else { this.ShowMsg("生成优惠券号码错误", false); } } else { this.ShowMsg("已经存在相同的优惠券名称", false); } } else { this.ShowMsg("未知错误", false); } } } } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Access_token mode = FunctionAll.GetAccessToken(); Session["accessToken"] = mode.access_token; Session.Timeout = 120; } Valid(); wxmessage wxGlobal = new wxmessage(); FunctionAll fuc = new FunctionAll(); XmlDocument doc = new XmlDocument(); try { fuc.MyMenu(); string postXmlStr = PostInput(); if (!string.IsNullOrEmpty(postXmlStr)) { doc.LoadXml(postXmlStr); XmlElement root = doc.DocumentElement; wxGlobal = fuc.GetWxMessage(doc); string result = ""; string requestContent = ""; //var rootElement = doc.DocumentElement; if (wxGlobal.MsgType == null) { return; } else { //获取用户发来的信息 switch (wxGlobal.MsgType) { case "text": //文本 requestContent = WeiXinXML.CreateTextMsg(doc, wxGlobal.Content); if (wxGlobal.Content.Contains("¥")) { decimal req = Convert.ToDecimal(wxGlobal.Content.Replace("¥", "")); result = WeiXinXML.CreateTextMsg(doc, fuc.ConvertToChinese(req)); } else { result = WeiXinXML.CreateTextMsg(doc, TuLing.GetTulingMsg(wxGlobal.Content)); LogHelper.WriteLog(requestContent); LogHelper.WriteLog(result); } break; case "location": //文本 result = WeiXinXML.ReArticle(wxGlobal.FromUserName, wxGlobal.ToUserName, "您附近的XXX", "XXXXXXXX", "http://119.29.20.29/image/test.jpg", FunctionAll.GetCodeUrl(Server.UrlEncode("http://q4chvj.natappfree.cc/index.aspx"))); break; case "event": switch (wxGlobal.EventName) { case "subscribe": //订阅 result = WeiXinXML.subscribeRes(doc); break; case "unsubscribe": //取消订阅 break; case "CLICK": if (wxGlobal.EventKey == "myprofile") { result = WeiXinXML.CreateTextMsg(doc, "微医app - 原名 挂号网,用手机挂号,十分方便!更有医生咨询、智能分诊、院外候诊、病历管理等强大功能。\r\n" + "预约挂号 聚合全国超过900家重点医院的预约挂号资源\r\n" + "咨询医生 支持医患之间随时随地图文、语音、视频方式的沟通交流\r\n" + "智能分诊 根据分诊自测系统分析疾病类型,提供就诊建议\r\n" + "院外候诊 时间自由可控,不再无谓浪费\r\n" + "病历管理 病历信息统一管理,个人健康及时监测\r\n" + "贴心服务 医疗支付、报告提取、医院地图\r\n" + "权威保障 国家卫计委(原卫生部)指定的全国健康咨询及就医指导平台\r\n" + "[微医] 目前用户量大,有些不足我们正加班加点的努力完善,希望大家用宽容的心给 [微医] 一点好评,给我们一点激励,让 [微医] 和大家的健康诊疗共成长。"); } if (wxGlobal.EventKey == "morefunction") { // result = WeiXinXML.CreateTextMsg(doc, "更多功能正在开发中,敬请期待!"); //if (wxGlobal.EventKey == "jkzx") result = WeiXinXML.ReArticle(wxGlobal.FromUserName, wxGlobal.ToUserName, "点击图片查看您附近的疾控中心", @"测试测试测试测试", "http://119.29.20.29/image/navi.jpg", ConfigurationManager.AppSettings["redirect_uri"].ToString()); } break; case "LOCATION": //获取地理位置 //string city = fuc.GetLocation(wxGlobal.Latitude,wxGlobal.Longitude); //result = WeiXinXML.CreateTextMsg(doc,city); break; } break; } //if (!string.IsNullOrWhiteSpace(sAppId)) //根据appid解密字符串 //{ // WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(sToken, AESKey, sAppId); // string signature = context.Request["msg_signature"]; // string timestamp = context.Request["timestamp"]; // string nonce = context.Request["nonce"]; // string stmp = ""; // int ret = wxcpt.DecryptMsg(signature, timestamp, nonce, postXmlStr, ref stmp); // if (ret == 0) // { // doc = new XmlDocument(); // doc.LoadXml(stmp); // } //} } Response.Write(result); } else { Valid(); return; } } //context.Response.Write(result); //context.Response.Flush(); //LogHelper.WriteLog("系统回复的明文" + result); // else // { // valid(context); // return; //} catch (Exception ex) { throw; } }