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" }