1. 程式人生 > 其它 >入坑微信小程式必經之路(八)服務模板通知——WebService介面獲取AccessToken

入坑微信小程式必經之路(八)服務模板通知——WebService介面獲取AccessToken

     #region 模板訊息推送
        public string fw_appid = System.Configuration.ConfigurationManager.AppSettings["appid"].ToString();
        public string fw_secret = System.Configuration.ConfigurationManager.AppSettings["secret"].ToString();


        /// <summary>
        /// 獲取AccessToken
        /// </summary>
        /// <returns></returns>
        [WebMethod(Description = "獲取AccessToken")]
        public string GetAccessToken()
        {
            string appid = fw_appid;
            string secret = fw_secret;
            string strJson =wb163Cms.BLL.BLL_Weixin_Config.RequestUrl(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, secret), "Get");
            //Session["AccessToken"] = wb163Cms.BLL.BLL_Weixin_Config.GetJsonValue(strJson, "access_token");
            return wb163Cms.BLL.BLL_Weixin_Config.GetJsonValue(strJson, "access_token"); 
        }


      
        #endregion

  

     public class BLL_Weixin_Config
    {

        //公共方法,request網路獲取
        public static string RequestUrl(string url, string method)
        {
            // 設定引數
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            CookieContainer cookieContainer = new CookieContainer();
            request.CookieContainer = cookieContainer;
            request.AllowAutoRedirect = true;
            request.Method = method;
            request.ContentType = "text/html";
            request.Headers.Add("charset", "utf-8");

            //傳送請求並獲取相應迴應資料
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            //直到request.GetResponse()程式才開始向目標網頁傳送Post請求
            Stream responseStream = response.GetResponseStream();
            StreamReader sr = new StreamReader(responseStream, Encoding.UTF8);
            //返回結果網頁(html)程式碼
            string content = sr.ReadToEnd();
            return content;
        }


        //公共方法,獲取Json
        public static string GetJsonValue(string jsonStr, string key)
        {
            string result = string.Empty;
            if (!string.IsNullOrEmpty(jsonStr))
            {
                key = "\"" + key.Trim('"') + "\"";
                int index = jsonStr.IndexOf(key) + key.Length + 1;
                if (index > key.Length + 1)
                {
                    //先截逗號,若是最後一個,截“}”號,取最小值
                    int end = jsonStr.IndexOf(',', index);
                    if (end == -1)
                    {
                        end = jsonStr.IndexOf('}', index);
                    }

                    result = jsonStr.Substring(index, end - index);
                    result = result.Trim(new char[] { '"', ' ', '\'' }); //過濾引號或空格
                }
            }
            return result;
        }
    }