C\#위 챗 공식 플랫폼 개발 의 accesstoken 가 져 오기 저장 및 업데이트
access_token 은 공중전화 의 전체 국면 에서 유일한 어음 으로 공중전화 가 각 인 터 페 이 스 를 호출 할 때 access 를 사용 해 야 합 니 다.token。정상 상황 에서 accesstoken 유효기간 7200 초,중복 획득 은 지난번 획득 한 accesstoken 실효.획득 으로 accesstoken 의 api 호출 횟수 가 매우 제한 되 어 있 습 니 다.개발 자 전역 저장 및 업데이트 accesstoken,자주 새로 고침 accesstoken 은 api 호출 이 제한 되 어 자신의 업무 에 영향 을 줄 수 있 습 니 다.
2.해결 해 야 할 문제
1、access 획득 방법token。
2、access 때문에token 의 유효기간 은 7200 초,즉 2 시간 이 며,중복 획득 은 지난번 에 획득 한 access 를 가 져 옵 니 다.token 실효,access 획득token 의 api 호출 횟수 가 매우 제한 되 어 있 기 때문에 전체 저장 및 업데이트 access 를 해결 해 야 합 니 다.token。
사고
1、accesstoken 은 데이터베이스 에 저 장 됩 니 다.
2,access 언제 업데이트토 큰 은 요?accesstoken 이 효력 을 잃 었 을 때 업데이트 합 니 다.access 를 어떻게 판단 합 니까?token 은 효력 을 잃 었 습 니까?현재 access 사용token 은 위 챗 인 터 페 이 스 를 요청 하여 사용자 정의 메뉴 를 가 져 옵 니 다.돌아 오 는 errcode 가 42001 이면 access 를 설명 합 니 다.token 이 이미 효력 을 잃 었 습 니 다.이 때 access 를 다시 가 져 옵 니 다.token。
데이터베이스 디자인(표 명 SWXConfig):
4.코드:
1.Http 요청 코드(HttpRequestUtil 클래스):
#region Url,
/// <summary>
/// Url,
/// </summary>
public static string RequestUrl(string url)
{
return RequestUrl(url, "POST");
}
#endregion
#region Url,
/// <summary>
/// Url,
/// </summary>
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;
}
#endregion
2.보조 방법(Tools 클래스):
namespace SWX.Utils
{
/// <summary>
///
/// </summary>
public class Tools
{
#region Json
/// <summary>
/// Json
/// </summary>
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;
}
#endregion
}
}
3,판단 accesstoken 만 료 여부(WXApi 클래스):
#region Token
/// <summary>
/// Token
/// </summary>
public static bool TokenExpired(string access_token)
{
string jsonStr = HttpRequestUtil.RequestUrl(string.Format("https://api.weixin.qq.com/cgi-bin/menu/get?access_token={0}", access_token));
if (Tools.GetJsonValue(jsonStr, "errcode") == "42001")
{
return true;
}
return false;
}
#endregion
4,위 챗 인터페이스 요청,access 획득token(WXApi 클래스):
#region Token
/// <summary>
/// Token
/// </summary>
public static string GetToken(string appid, string secret)
{
string strJson = HttpRequestUtil.RequestUrl(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, secret));
return Tools.GetJsonValue(strJson, "access_token");
}
#endregion
5.전역 저장 및 업데이트 accesstoken(AdminUtil 클래스):
#region access_token
/// <summary>
/// access_token
/// </summary>
public static string GetAccessToken(PageBase page)
{
string access_token = string.Empty;
UserInfo user = GetLoginUser(page);
if (user != null)
{
if (string.IsNullOrWhiteSpace(user.access_token)) // access_token
{
access_token = WXApi.GetToken(user.AppID, user.AppSecret);
}
else
{
if (WXApi.TokenExpired(user.access_token)) //access_token
{
access_token = WXApi.GetToken(user.AppID, user.AppSecret);
}
else
{
return user.access_token;
}
}
MSSQLHelper.ExecuteSql(string.Format("update SWX_Config set access_token='{0}' where UserName='{1}'", access_token, user.UserName));
}
return access_token;
}
#endregion
멋 진 주제 공유:ASP.NET 위 챗 개발 튜 토리 얼 집계여러분 의 공 부 를 환영 합 니 다.이상 은 본 고의 모든 내용 이 므 로 여러분 에 게 위 챗 공공 플랫폼 개발 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
위 챗 공식 플랫폼 에 대한 SDK찾 아 보 니 현재 위 챗 공식 플랫폼 은 SDK 형식의 개발 패 키 지 를 제공 하지 않 았 고 인터페이스 설명 문서 와 접 속 된 phop sample 만 있 습 니 다.현재 인터넷 상에 서 이른바 '위 챗 퍼 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.