Access_token est le billet globalement unique du compte officiel. Access_token est requis lors de l'appel de chaque interface du compte officiel. Les développeurs doivent le sauver correctement. Le stockage d'accès_token doit conserver au moins 512 espaces de caractères. La période de validité de Access_token est actuellement de 2 heures et doit être rafraîchie régulièrement. L'acquisition répétée provoquera l'accès à l'accès_token que vous avez obtenu la dernière fois invalide.
Description de la méthode d'utilisation et de génération d'accès_token requise pour les appels API des plates-formes publiques:
1. Afin de garder AppSecrect confidentiel, des tiers ont besoin d'un Access_token pour obtenir et actualiser le serveur de contrôle central. L'accès_token utilisé par d'autres serveurs de logique métier provient tous du serveur de contrôle central et ne doit pas être actualisé séparément, sinon il amènera Access_token à couvrir et à affecter l'entreprise;
2. La période de validité actuelle d'accès_token est véhiculée via l'expiration retournée, et est actuellement une valeur dans les 7200 secondes. Le serveur de contrôle central doit actualiser le nouvel Access_token à l'avance en fonction de cette période valide. Pendant le processus d'actualisation, le serveur de contrôle central publie toujours l'ancien Access_token à l'extérieur. À l'heure actuelle, le contexte de la plate-forme publique garantira que les nouveaux et les anciens Access_tokens sont disponibles dans la courte période de rafraîchissement, ce qui garantit une transition en douceur des services tiers;
3. L'heure valide d'accès_token peut être ajustée à l'avenir. Par conséquent, le serveur de contrôle central doit non seulement être actualisé régulièrement en interne, mais doit également fournir une interface pour actualiser passive Access_token, ce qui facilite le serveur commercial pour déclencher le processus d'actualisation de Access_token lorsque l'appel API sait que Access_token a chronométré.
Si le tiers n'utilise pas le serveur de contrôle central, mais sélectionne à la place chaque point de logique métier pour actualiser l'accès_token, des conflits peuvent survenir, ce qui entraîne un service instable.
Le compte officiel peut utiliser AppID et AppSecret pour appeler cette interface pour obtenir Access_token. AppID et AppSecret peuvent être obtenus dans le site Web officiel de la plate-forme publique de WeChat - Developer Center Page (besoin d'être devenu un développeur et le compte n'a pas de statut anormal). Notez que lorsque vous appelez toutes les interfaces WeChat, vous devez utiliser le protocole HTTPS.
Description de la demande d'appel d'interface
Méthode de demande HTTP: obtenir
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=AppSecret
Description du paramètre
Retourner à la description
Dans des circonstances normales, WeChat renverra le paquet JSON suivant sur le compte officiel:
{"Access_token": "Access_token", "expires_in": 7200}
Lorsque l'erreur se produit, WeChat renvoie les codes d'erreur et autres informations. L'exemple du paquet JSON est le suivant (cet exemple est une erreur AppID non valide):
{"errcode": 40013, "errmsg": "invalid appid"}
2. Implémentation du code
AppID, AppSecret peut être vérifié dans les comptes publics
package com.zhrd.bussins.platform.scheduled; import java.io.inputstream; import java.net.httpurlconnection; import java.net.url; import org.springframework.beans.factory.annotation.lazy; import org.springframework.scheduling.annotation.scheduled; import org.springframework.sterreotype. net.sf.json.jsonObject; @ composant @ lazy (false) classe publique getweixinaccesstokenscheduled {/ ** * get access_token * * @title: getACCESS_TOKK * @description: get access_token * @param @return setting fichier * @return string type * @throws * / @Autowired private accessTokenService AccessService Type * @Throws * / @Autowired Private AccessTokenService AccessService ACCESSTERVICEIM; @Scheduled (fixeRateString = "$ {weixin.token.fixedrate.in.milliseconds}", initialdelaystring = "$ {weixin.token.initialdelay.in.milliseconds}") public void getAccessStOken () {{ System.out.println ("=================== 获取 Token 开始 ==========================. String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=Client_credential&appid=" + weixinid.appid + "& secret =" + weixinid.appret; String AccessToken = null; String expiresIn = null; essayez {url urlGet = new URL (URL); HttpurlConnection http = (httpurlconnection) urlGet.OpenConnection (); http.setRequestMethod ("get"); // Vous devez demander http.setRequestProperty ("contenu-type", "application / x-www-form-urlencoded"); http.setDoOutput (true); http.setDoInput (true); http.connect (); InputStream est = http.getInputStream (); int size = is.Available (); octet [] jsonBytes = nouveau octet [taille]; is.read (jsonbytes); String Message = new String (JSONBYTES, "UTF-8"); JSONObject Demojson = jsonObject.FromObject (message); AccessToken = Demojson.getString ("Access_token"); expiresIn = DeMojson.getString ("Expires_in"); System.out.println ("AccessToken ====" + AccessToken); System.out.println ("Expiresin ===" + Expiresin); AccessTokenServiceImpl.AddToken (AccessToken, expiresin); System.out.println ("====================================================================================================================================================================================================================. System.out.PrintStackTrace ();} // return AccessToken; Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.