国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim WeChat-Applet WeChat-Entwicklung C# WeChat ?ffentliche Plattformentwicklung, Erwerb, Speicherung und Aktualisierung von access_token

C# WeChat ?ffentliche Plattformentwicklung, Erwerb, Speicherung und Aktualisierung von access_token

Jan 17, 2017 am 10:46 AM

1. Was ist access_token?

access_token ist das global eindeutige Ticket des ?ffentlichen Kontos. Das ?ffentliche Konto muss beim Aufruf jeder Schnittstelle access_token verwenden. Unter normalen Umst?nden ist das access_token 7200 Sekunden lang gültig. Eine wiederholte Erfassung führt dazu, dass das letzte access_token ungültig wird. Da die Anzahl der API-Aufrufe zum Abrufen von access_token sehr begrenzt ist, wird empfohlen, dass Entwickler access_token global speichern und aktualisieren. Eine h?ufige Aktualisierung von access_token schr?nkt API-Aufrufe ein und beeintr?chtigt ihr eigenes Gesch?ft.

2. Zu l?sende Probleme

1. So erhalten Sie access_token.

2. Da die Gültigkeitsdauer von access_token 7200 Sekunden, also 2 Stunden, betr?gt und eine wiederholte Erfassung dazu führt, dass das letzte access_token ungültig wird, ist die Anzahl der API-Aufrufe zum Abrufen von access_token sehr begrenzt ist notwendig, um zu l?sen, wie access_token global gespeichert und aktualisiert wird.

3. Ideen

1. Access_token in der Datenbank speichern.

2. Wann wird das access_token aktualisiert? Aktualisieren, wenn access_token abl?uft. Wie kann man also feststellen, ob access_token abgelaufen ist? Verwenden Sie das aktuelle access_token, um die WeChat-Schnittstelle zum Abrufen des benutzerdefinierten Menüs anzufordern. Wenn der zurückgegebene Fehlercode 42001 ist, bedeutet dies, dass das access_token abgelaufen ist. Rufen Sie zu diesem Zeitpunkt erneut das access_token ab.

Datenbankdesign (Tabellenname SWX_Config):

C# WeChat ?ffentliche Plattformentwicklung, Erwerb, Speicherung und Aktualisierung von access_token

4. Code:

1. HTTP-Anfragecode (HttpRequestUtil-Klasse):

#region 請求Url,不發(fā)送數(shù)據(jù)
/// <summary>
/// 請求Url,不發(fā)送數(shù)據(jù)
/// </summary>
public static string RequestUrl(string url)
{
 return RequestUrl(url, "POST");
}
#endregion
 
#region 請求Url,不發(fā)送數(shù)據(jù)
/// <summary>
/// 請求Url,不發(fā)送數(shù)據(jù)
/// </summary>
public static string RequestUrl(string url, string method)
{
 // 設(shè)置參數(shù)
 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");
 
 //發(fā)送請求并獲取相應(yīng)回應(yīng)數(shù)據(jù)
 HttpWebResponse response = request.GetResponse() as HttpWebResponse;
 //直到request.GetResponse()程序才開始向目標(biāo)網(wǎng)頁發(fā)送Post請求
 Stream responseStream = response.GetResponseStream();
 StreamReader sr = new StreamReader(responseStream, Encoding.UTF8);
 //返回結(jié)果網(wǎng)頁(html)代碼
 string content = sr.ReadToEnd();
 return content;
}
#endregion

2. Hilfsmethode (Tools-Klasse):

namespace SWX.Utils
{
 /// <summary>
 /// 工具類
 /// </summary>
 public class Tools
 {
  #region 獲取Json字符串某節(jié)點的值
  /// <summary>
  /// 獲取Json字符串某節(jié)點的值
  /// </summary>
  public static string GetJsonValue(string jsonStr, string key)
  {
   string result = string.Empty;
   if (!string.IsNullOrEmpty(jsonStr))
   {
    key = "\"" + key.Trim(&#39;"&#39;) + "\"";
    int index = jsonStr.IndexOf(key) + key.Length + 1;
    if (index > key.Length + 1)
    {
     //先截逗號,若是最后一個,截“}”號,取最小值
     int end = jsonStr.IndexOf(&#39;,&#39;, index);
     if (end == -1)
     {
      end = jsonStr.IndexOf(&#39;}&#39;, index);
     }
 
     result = jsonStr.Substring(index, end - index);
     result = result.Trim(new char[] { &#39;"&#39;, &#39; &#39;, &#39;\&#39;&#39; }); //過濾引號或空格
    }
   }
   return result;
  }
  #endregion
 
 }
}

3. Bestimmen Sie, ob das access_token abgelaufen ist (WXApi-Klasse):

#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. Fordern Sie die WeChat-Schnittstelle an, erhalten Sie access_token (WXApi-Klasse):

#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. Globaler Speicher und aktualisieren Sie access_token (AdminUtil-Klasse):

#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=&#39;{0}&#39; where UserName=&#39;{1}&#39;", access_token, user.UserName));
 }
 
 return access_token;
}
#endregion

Das Obige ist der gesamte Inhalt dieses Artikels , Ich hoffe, es wird für alle hilfreich sein, die bei der Entwicklung der ?ffentlichen WeChat-Plattform helfen.

Weitere Artikel zum Erwerb, zur Speicherung und Aktualisierung von access_token in der Entwicklung ?ffentlicher C#-WeChat-Plattformen finden Sie auf der chinesischen PHP-Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276