Access_token은 공식 계정의 전 세계적으로 고유 한 티켓입니다. 공식 계정의 각 인터페이스를 호출 할 때 Access_Token이 필요합니다. 개발자는 제대로 저장해야합니다. Access_token의 저장은 최소 512 자 공간을 유지해야합니다. Access_Token의 유효 기간은 현재 2 시간이며 정기적으로 새로 고침해야합니다. 반복 된 획득은 지난번에 얻은 Access_token이 유효하지 않습니다.
공개 플랫폼의 API 호출에 필요한 Access_token의 사용 및 생성 방법에 대한 설명 :
1. AppSecrect 기밀을 유지하려면 타사는 Central Control Server를 얻고 새로 고치기 위해 Access_Token이 필요합니다. 다른 비즈니스 로직 서버에서 사용하는 Access_Token은 모두 Central Control Server에서 나오며 별도로 새로 고침해서는 안됩니다. 그렇지 않으면 Access_Token이 비즈니스에 적용되고 영향을 미치게됩니다.
2. ac Central Control Server는이 유효한 시간을 기준으로 새로운 Access_Token을 미리 새로 고쳐야합니다. 새로 고침 프로세스 중에 중앙 제어 서버는 여전히 이전 Access_token을 외부로 출력합니다. 현재 공개 플랫폼 배경은 새롭고 오래된 Access_tokens가 짧은 새로 고침을 이용할 수 있도록하여 타사 서비스의 원활한 전환을 보장 할 것입니다.
3. Access_Token의 유효한 시간은 향후 조정 될 수 있습니다. 따라서 Central Control Server는 내부적으로 정기적으로 새로 고침해야 할뿐만 아니라 Access_Token의 수동적으로 새로 고침을위한 인터페이스를 제공해야합니다. 이는 API 호출이 Access_Token이 시간이 초과되었음을 알 때 Access_Token의 새로 고침 프로세스를 트리거 할 수 있도록 비즈니스 서버가 용이하게합니다.
제 3자가 중앙 제어 서버를 사용하지 않고 대신 각 비즈니스 로직 지점을 선택하여 Access_Token을 새로 고치는 경우 충돌이 발생하여 불안정한 서비스가 발생할 수 있습니다.
공식 계정은 AppID 및 AppSecret을 사용 하여이 인터페이스를 호출하여 Access_Token을 얻을 수 있습니다. Appid 및 AppSecret은 WeChat Public Platform 공식 웹 사이트 - 개발자 센터 페이지에서 얻을 수 있습니다 (개발자가되어야하며 계정은 비정상적인 상태가 없습니다). 모든 WeChat 인터페이스를 호출 할 때 HTTPS 프로토콜을 사용해야 합니다 .
인터페이스 호출 요청 설명
HTTP 요청 방법 : get
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=appsecret
매개 변수 설명
설명으로 돌아갑니다
정상적인 상황에서 WeChat은 다음 JSON 패킷을 공식 계정으로 반환합니다.
{ "access_token": "access_token", "expires_in": 7200}
오류가 발생하면 WeChat은 오류 코드 및 기타 정보를 반환합니다. JSON 패킷의 예는 다음과 같습니다 (이 예제는 잘못된 AppID 오류입니다).
{ "errcode": 40013, "errmsg": "invalid appid"}
2. 코드 구현
Appid, AppSecret은 공개 계정으로 확인할 수 있습니다
package com.zhrd.bussinss.platform.scheduled; import java.io.inputStream; import java.net.httpurlConnection; import java.net.url; import org.springframework.beans.beans.annotation.autowired; import org.springframework.context org.springframework.scheduling.annotation.scheduled; import org.springframework.stereotyp.component; import com.zhrd.bussinss.platform.constants.weixinid; import com.zhrd.bussinss.bussins.service.accenservice; 가져 오기 net.sf.json.jsonobject; @component @lazy (false) public class getWeixInaccessTokenScheduled { / ** * get access_token * * @title : getAccess_token * @description : get ac @scheduled (고정식 스트레이트 = "$ {weixin.token.fixedrate.in.milliseconds}", 이니셜 펠레이 스트링 = "$ {weixin.token.initialdelay.in.milliseconds}") public void getAccessoken () { System.out.println ( "===================== 获取 토큰 开始 ========================================"); 문자열 url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + weixinid.appid + "& incred =" + weixinid.appsecret; 문자열 accessToken = null; 문자열 expiresin = null; {url urlget = new URL (url)을 시도하십시오. httpurlconnection http = (httpurlConnection) urlget.openConnection (); http.setRequestMethod ( "get"); // http.setRequestProperty ( "content-type", "application/x-www-form-urlencoded")를 요청해야합니다. http.setdooutput (true); http.setdoinput (true); http.connect (); inputStream은 = http.getInputStream (); int size = is.available (); 바이트 [] JSONBYTES = 새로운 바이트 [크기]; is.read (jsonbytes); 문자열 메시지 = 새 문자열 (JSONBYTES, "UTF-8"); jsonobject demojson = jsonobject.fromobject (메시지); 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 ()}; 위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.