Access_Token é o ingresso globalmente exclusivo da conta oficial. Access_Token é necessário ao ligar para cada interface da conta oficial. Os desenvolvedores precisam salvá -lo corretamente. O armazenamento de access_token deve reter pelo menos 512 espaço de caracteres. O período de validade do Access_Token é atualmente 2 horas e precisa ser atualizado regularmente. Aquisição repetida fará com que o Access_Token obteve da última vez que seja inválido.
Descrição do método de uso e geração de access_token necessário para chamadas de API de plataformas públicas:
1. Para manter o AppSecrect confidencial, terceiros precisam de um access_token para obter e atualizar o servidor de controle central. O Access_Token usado por outros servidores de lógica de negócios vem do servidor de controle central e não deve ser atualizado separadamente, caso contrário, fará com que o Access_Token cubra e afete o negócio;
2. O período de validade atual do Access_Token é transmitido através do Expire_in retornado e atualmente é um valor dentro de 7200 segundos. O Central Control Server precisa atualizar o novo Access_Token com antecedência com base nesse horário válido. Durante o processo de atualização, o servidor de controle central ainda gera o antigo Access_token para o exterior. No momento, o histórico da plataforma pública garantirá que o novo e o antigo Access_tokens esteja disponível no curto período de refrescamento, o que garante uma transição suave de serviços de terceiros;
3. O horário válido do Access_Token pode ser ajustado no futuro. Portanto, o servidor de controle central não só precisa ser atualizado internamente regularmente, mas também precisa fornecer uma interface para uma atualização passiva de access_token, o que facilita o servidor de negócios para acionar o processo de atualização de access_token quando a chamada da API sabe que o Access_Token tem o tempo seguido.
Se o terceiro não usar o servidor de controle central, mas selecionar cada ponto lógico de negócios para atualizar o access_token, poderão surgir conflitos, resultando em serviço instável.
A conta oficial pode usar o APPID e o AppSecret para chamar essa interface para obter access_token. Appid e AppSecret podem ser obtidos no site oficial da Plataforma Pública do WeChat - Página do Centro de Desenvolvedores (precisa ter se tornado um desenvolvedor e a conta não possui status anormal). Observe que, ao chamar todas as interfaces do WeChat, você deve usar o protocolo HTTPS.
Descrição da solicitação de chamada de interface
Método de solicitação http: obtenha
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=appSecret
Descrição do parâmetro
Voltar à descrição
Em circunstâncias normais, o WeChat retornará o seguinte pacote JSON à conta oficial:
{"Access_token": "Access_token", "Expires_in": 7200}
Quando ocorre o erro, o WeChat retornará códigos de erro e outras informações. O exemplo do pacote JSON é o seguinte (este exemplo é um erro inválido do Appid):
{"errcode": 40013, "errmsg": "inválido appid"}
2. Implementação de código
Appid, AppSecret pode ser verificado em contas públicas
pacote com.zhrd.bussins.platform.scheduled; importar java.io.inputStream; importar java.net.httpurlConnection; importar java.net.url; importação org.springframework.beans.annotation.autowired; importação ous org.springframework.scheduling.annotation.scheduled; importar org.springframework.tereotype.component; importar com.zhrd.bussins.platform.constants.weixinid; import com.zhrd.busss.platform.service.actskeskes; net.sf.json.jsonObject; @componente @lazy (false) classe pública getweixinaccesstokenscheduled { / ** * get Access_token * * @title: getaccess_token * @descripts: get Access_token * @param @return Setting Argh * Return Return Type *throws * @Scheduled (fixorateString = "$ {weixin.token.fixedrate.in.millisEconds}", inicialDelayString = "$ {weixin.token.initialdelay.in.millisEconds}) public void getacckoky () {) System.out.println ("==================== 获取 Token 开始 ================================="); String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + weixinid.appid + "& secret =" + weixinid.apsecret; String accessToken = null; String expiresin = null; tente {url urlget = novo url (url); HttpurlConnection http = (httpurlConnection) urlget.openconnection (); http.setRequestMethod ("get"); // você deve solicitar http.setRequestProperty ("content-type", "Application/X-Www-Form-Urlencoded"); http.setDoOutput (true); http.setDoinput (true); http.connect (); InputStream is = http.getInputStream (); int size = is.Available (); byte [] jsonbytes = novo byte [size]; is.read (jsonbytes); String message = new String (jsonbytes, "utf-8"); JsonObject Demojson = JsonObject.FromObject (Mensagem); AccessToken = Demojson.getString ("Access_Token"); expiresin = Demojson.getString ("expires_in"); System.out.println ("AccessToken ===="+AccessToken); System.out.println ("expiresin ==="+expira); AccessTokenserviceImpl.addToken (AccessToken, Expiresin); System.out.println("========================================================================================================== System.out.printStackTrace (); O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.