.net 后台如何模擬http請求獲取微信接口的AccessToken(基礎支持)


1、首先你需要要公眾號的key(Appid),value(AppSecret) ,這是公眾號的唯一憑證

1)登錄公眾號(服務號)

2)開發-->基本設置-->公眾號的Appid,AppSecret信息

 

 3)Appsecret需要自己重置后記住密碼,頁面不顯示

2、由於現在微信第三方接口比較嚴格,需要在公眾號加上調用方的IP到白名單中

1)開發-->基本設置-->IP白名單

添加上調用方的IP地址(143.123.21.2),如:不加上IP地址,調用accesstoken接口會失敗

 

 3、調用獲取公眾號基礎支持的accessToken

1)添加http請求的輔助方法

        /// <summary>
        /// 后台發送POST請求
        /// </summary>
        /// <param name="url">服務器地址</param>
        /// <param name="data">發送的數據</param>
        /// <returns></returns>
        public string HttpPost(string url, string data)
        {
            try
            {
                //創建post請求
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                request.ContentType = "application/json;charset=UTF-8";
                byte[] payload = Encoding.UTF8.GetBytes(data);
                request.ContentLength = payload.Length;

                //發送post的請求
                Stream writer = request.GetRequestStream();
                writer.Write(payload, 0, payload.Length);
                writer.Close();

                //接受返回來的數據
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream stream = response.GetResponseStream();
                StreamReader reader = new StreamReader(stream, Encoding.UTF8);
                string value = reader.ReadToEnd();

                reader.Close();
                stream.Close();
                response.Close();

                return value;
            }
            catch (Exception)
            {
                return "";
            }
        }

        /// <summary>
        /// 后台發送GET請求
        /// </summary>
        /// <param name="url">服務器地址</param>
        /// <param name="data">發送的數據</param>
        /// <returns></returns>
        public string HttpGet(string url, string data)
        {
            try
            {
                //創建Get請求
                url = url + (data == "" ? "" : "?") + data;
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                request.ContentType = "text/html;charset=UTF-8";

                //接受返回來的數據
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream stream = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
                string retString = streamReader.ReadToEnd();

                streamReader.Close();
                stream.Close();
                response.Close();

                return retString;
            }
            catch (Exception)
            {
                return "";
            }
        }

2)調用獲取的后台方法

        /// <summary>
        /// 獲取基礎支持的accessToken
        /// </summary>
        /// <param name="appid">公眾號憑證ID</param>
        /// <param name="secret">公眾號憑證密碼</param>
        /// <returns></returns>
        public string GetBaseAcccessToken(string appid, string secret)
        {
            string accessToken = string.Empty;

            string reqUrl = string.Format(@"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, secret);
            string resultStr = HttpGet(reqUrl,"");
            dynamic data = JsonConvert.DeserializeObject(resultStr);
            if (data["access_token"] != null)
            {
                accessToken = data["access_token"].ToString();
            }
            else
            {
                accessToken = "";
            }
            return accessToken;
        }

3)調用后返回的結果

3.1)成功

{
    "access_token": "35_4KxKJBhXFcRI7uM6FBixvZNDP7pPQuGK-AFsydgmGR3P4z9itSLvQlNmW8tYkOoOkGB_gb2P-VekacJnoMXghUwIRWQzSDMXyiIIouBtk06zPpQ0ddJ8O-5BjLM0PZArnJjsixN2kx1gcF_iJZDaAEADTX", 
    "expires_in": 7200
}

3.2)失敗(未加入IP白名單)

{
    "errcode": 40164, 
    "errmsg": "invalid ip 113.111.4.104, not in whitelist"
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM