Access_Token ist das global einzigartige Ticket des offiziellen Kontos. Access_Token ist erforderlich, wenn jede Schnittstelle des offiziellen Kontos aufgerufen wird. Entwickler müssen es richtig sparen. Die Speicherung von Access_Token muss mindestens 512 Zeichenraum behalten. Die Gültigkeitsdauer von Access_Token beträgt derzeit 2 Stunden und muss regelmäßig aktualisiert werden. Die wiederholte Erfassung führt dazu, dass das, das Sie beim letzten Mal erhalten haben, ungültig ist.
Beschreibung der Verbrauchs- und Generierungsmethode von Access_Token, die für API -Anrufe von öffentlichen Plattformen erforderlich ist:
1. Um AppSeCrekt vertraulich zu halten, benötigen Dritte einen Access_Token, um den zentralen Steuerserver zu erhalten und zu aktualisieren. Die von anderen Geschäftslogik -Servern verwendeten Access_Token stammen alle aus dem zentralen Steuerserver und sollten nicht separat aktualisiert werden, da es ansonsten das Geschäft mit Access_Token bewirkt und das Geschäft beeinflusst.
2. Die aktuelle Gültigkeitsdauer von Access_Token wird über den zurückgegebenen Expire_in vermittelt und ist derzeit innerhalb von 7200 Sekunden ein Wert. Der Central Control Server muss den neuen Access_Token basierend auf dieser gültigen Zeit aktualisiert. Während des Aktualisierungsprozesses gibt der Central Control Server weiterhin die alte access_token nach außen aus. Zu diesem Zeitpunkt stellt der Hintergrund der öffentlichen Plattform sicher, dass sowohl neue als auch alte Access_Tokens in der kurzen Zeit des Auffrischens verfügbar sind, was einen reibungslosen Übergang von Diensten von Drittanbietern gewährleistet.
3. Die gültige Zeit von Access_Token kann in Zukunft angepasst werden. Daher muss der Central Control Server nicht nur intern regelmäßig aktualisiert werden, sondern auch eine Schnittstelle für die passive Aktualisierung von Access_Token bereitstellen, was den Business -Server erleichtert, um den Aktualisierungsprozess von Access_Token auszulösen, wenn der API -Aufruf weiß, dass Access_Token abgelaufen ist.
Wenn der Dritte den zentralen Steuerserver nicht verwendet, sondern den einzelnen Geschäftslogikpunkt auswählt, um die Access_Token zu aktualisieren, können Konflikte auftreten, was zu einem instabilen Service führt.
Das offizielle Konto kann Appid und AppSecret verwenden, um diese Schnittstelle aufzurufen, um Access_Token zu erhalten. Appid und AppSecret können auf der offiziellen Website der WeChat Public Platform - Developer Center (müssen Entwickler geworden sein und das Konto hat keinen abnormalen Status). Beachten Sie , dass Sie beim Aufrufen aller WeChat -Schnittstellen das HTTPS -Protokoll verwenden müssen.
Schnittstellenanforderungsanforderung Beschreibung
HTTP -Anforderungsmethode: Get
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=appsecret
Parameterbeschreibung
Kehren Sie zur Beschreibung zurück
Unter normalen Umständen wird WeChat das folgende JSON -Paket auf das offizielle Konto zurückgeben:
{"Access_token": "Access_Token", "expires_in": 7200}
Wenn ein Fehler auftritt, gibt WeChat Fehlercodes und andere Informationen zurück. Das Beispiel des JSON -Pakets lautet wie folgt (dieses Beispiel ist ein ungültiger Anhängerfehler):
{"Errcode": 40013, "errmsg": "Ungültiges Appid"}
2. Code -Implementierung
Appid, AppSecret können in öffentlichen Konten überprüft werden
Paket com.zhrd.bussinss.Platform.Scheduled; import Java.io.inputStream; Import Java.net.httpurlConnection; import Java.net.url; org.springframework.Scheduling.Annotation.Scheduled; import org.springframework.stereotype.comPonent; Import com.zhrd.bussinss.platform.constants.Weixinid; Import Com.zhrd.bussins.Platform.service.service.service.service.service.service.service.service.service net.sf.json.JSONObject;@Component@Lazy(false)public class GetWeiXinAccessTokenScheduled { /** * Get ACCESS_TOKEN * * @Title: getAccess_token * @Description: Get ACCESS_TOKEN * @param @return Setting File* @return String Return Type* @throws */ @Autowired private AccessTokenService accessTokenServiceImpl; @Scheduled(fixedRateString = "${weixin.token.fixedRate.in.milliseconds}" , initialDelayString = "${weixin.token.initialDelay.in.milliseconds}") public void getAccessToken() { System.out.println ("==================== 获取 Token 开始 ============================="); String url = "https://api.weixin.qq.com/cgi-ner/token?grant_type=client_credential&appid=" + wixinid.appid + "& secret =" + weixinid.appsecret; String accessToken = null; String abläuft = null; try {url urlget = new URL (URL); HttpurlConnection http = (httpurlConnection) urlget.openconnection (); http.setRequestMethod ("get"); // Sie müssen http.setRequestProperty ("Content-Typ", "Application/X-Www-Form-Urlencoded") anfordern; http.setDooutput (true); http.setDoInput (true); http.connect (); InputStream ist = http.getInputStream (); int size = is.Available (); byte [] jsonBytes = neues Byte [Größe]; is.read (jsonBytes); String message = new String (jsonBytes, "utf-8"); JsonObject Demojson = jsonObject.fromObject (Nachricht); AccessToken = Demojson.getString ("Access_Token"); expiresin = Demojson.getString ("expires_in"); System.out.println ("AccessToken ==="+AccessToken); System.out.println ("letztendlich ==="+läuft); AccessToKenServiceImpl.AddToken (AccessToken, Ablauf); System.out.println("========================================================================================================== System.out.printstacktrace (); Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.