Access_token es el boleto único a nivel mundial de la cuenta oficial. Access_Token es necesario al llamar a cada interfaz de la cuenta oficial. Los desarrolladores deben guardarlo correctamente. El almacenamiento de Access_Token debe retener al menos 512 espacio de caracteres. El período de validez de Access_Token es actualmente 2 horas y debe actualizarse regularmente. La adquisición repetida hará que el Access_Token que haya obtenido la última vez no sea válida.
Descripción del método de uso y generación de Access_Token requerido para las llamadas API de las plataformas públicas:
1. Para mantener la confidencialidad de la aplicación APPSECT, los terceros necesitan un Access_Token para obtener y actualizar el servidor de control central. El access_token utilizado por otros servidores lógicos comerciales proviene del servidor de control central y no debe actualizarse por separado, de lo contrario hará que Access_Token cubra y afecte el negocio;
2. El período de validez actual de Access_Token se transmite a través del expire_in devuelto, y actualmente es un valor dentro de los 7200 segundos. El servidor de control central debe actualizar el nuevo Access_Token de antemano en función de este tiempo válido. Durante el proceso de actualización, el servidor de control central todavía genera el accesorio anterior al exterior. En este momento, el fondo de la plataforma pública asegurará que tanto el Access_Tokens nuevo y antiguo esté disponible en el corto período de refrescante, lo que garantiza una transición sin problemas de los servicios de terceros;
3. El tiempo válido de Access_Token se puede ajustar en el futuro. Por lo tanto, el servidor de control central no solo necesita ser actualizado internamente regularmente, sino que también debe proporcionar una interfaz para la actualización pasiva de Access_Token, que facilita al servidor comercial para que active el proceso de actualización de Access_Token cuando la llamada API sabe que Access_Token se ha agotado.
Si el tercero no usa el servidor de control central, sino que selecciona cada punto de lógica comercial para actualizar el access_token, entonces pueden surgir conflictos, lo que resulta en un servicio inestable.
La cuenta oficial puede usar APPID y AppSecret para llamar a esta interfaz para obtener access_token. APPID y APPSECRET se pueden obtener en el sitio web oficial de WeChat Public Platform - Página del Centro de desarrolladores (debe convertirse en un desarrollador y la cuenta no tiene un estado anormal). Tenga en cuenta que al llamar a todas las interfaces WeChat, debe usar el protocolo HTTPS.
Descripción de la solicitud de llamada de interfaz
Método de solicitud HTTP: Obtener
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=appsecret
Descripción del parámetro
Volver a la descripción
En circunstancias normales, WeChat devolverá el siguiente paquete JSON a la cuenta oficial:
{"access_token": "access_token", "expires_in": 7200}
Cuando se produce un error, WeChat devolverá los códigos de error y otra información. El ejemplo del paquete JSON es el siguiente (este ejemplo es un error de APPID no válido):
{"Errcode": 40013, "Errmsg": "no válido appid"}
2. Implementación del código
APPID, AppSecret se puede verificar en cuentas públicas
paquete com.zhrd.bussinss.platform.scheduled; import java.io.inputstream; import java.net.httpurlconnection; import java.net.url; import org.springframework.beans.factory.Annotation.autowired; import Org.springFrameWork.context.annotation.lazy; org.springframework.scheduling.annotation.scheduled; import org.springframework.stereotype.component; import net.sf.json.jsonObject; @component @lazy (falso) clase pública getWeixInAccessTokensCheduled { / ** * get access_token * * @title: getAccess_token * @Description: get access_token * @return setting archivo * @return type * @throws) @Scheduled (fiedratestring = "$ {weixin.token.fixedrate.in.milliseconds}", initialDelayString = "$ {weixin.token.initialdelay.in.milliseconds}") público void getaccesstoken () {) System.out.println ("===================== 获取 Token 开始 ==============================="); String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + weixinid.appid + "& secret =" + weixinid.appsecret; String accessToken = null; Cadena expiresin = null; intente {url urlget = new URL (URL); Httpurlconnection http = (httpurlconnection) urlget.openconnection (); http.setRequestMethod ("get"); // debe solicitar http.setRequestProperty ("Content-type", "Application/x-www-form-urlencoded"); http.setDooutput (verdadero); http.setDoInput (verdadero); http.connect (); InputStream es = http.getInputStream (); int size = is.available (); byte [] jsonbytes = new Byte [size]; IS.Read (jsonbytes); String Message = new String (JSONBytes, "UTF-8"); JsonObject DemOJson = jsonObject.FromObject (mensaje); accessToken = DemoJson.getString ("access_token"); expiresIn = DemoJson.getString ("expires_in"); System.out.println ("AccessToken ===="+AccessToken); System.out.println ("expiresin ==="+expiresin); AccessTokenServiceImpl.AddToken (AccessToken, expiratesin); System.out.println ("=============================================================================================================================================================================================================================== S System.out.printstackTrace (); Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.