程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 微信付出java版本之獲得Access_token

微信付出java版本之獲得Access_token

編輯:關於JAVA

微信付出java版本之獲得Access_token。本站提示廣大學習愛好者:(微信付出java版本之獲得Access_token)文章只能為提供參考,不一定能成為您想要的結果。以下是微信付出java版本之獲得Access_token正文


access_token是"號的全局獨一單子,"號挪用各接口時都需應用access_token。開辟者須要停止妥當保留。access_token的存儲至多要保存512個字符空間。access_token的有用期今朝為2個小時,需准時刷新,反復獲得將招致前次獲得的access_token掉效。 

"平台的API挪用所需的access_token的應用及生成方法解釋:

1、為了保密appsecrect,第三方須要一個access_token獲得和刷新的中控辦事器。而其他營業邏輯辦事器所應用的access_token均來自於該中控辦事器,不該該各自去刷新,不然會形成access_token籠罩而影響營業;
2、今朝access_token的有用期經由過程前往的expire_in來轉達,今朝是7200秒以內的值。中控辦事器須要依據這個有用時光提早去刷新新access_token。在刷新進程中,中控辦事器對外輸入的仍然是老access_token,此時"平台後台會包管在刷新短時光內,新老access_token都可用,這包管了第三方營業的膩滑過渡;
3、access_token的有用時光能夠會在將來有調劑,所以中控辦事器不只須要外部准時自動刷新,還須要供給主動刷新access_token的接口,如許便於營業辦事器在API挪用獲知access_token已超時的情形下,可以觸發access_token的刷新流程。 

假如第三方不應用中控辦事器,而是選擇各個營業邏輯點各自去刷新access_token,那末便可能會發生抵觸,招致辦事不穩固。 

"號可使用AppID和AppSecret挪用本接口來獲得access_token。AppID和AppSecret可在微信"平台官網-開辟者中間頁中取得(須要曾經成為開辟者,且帳號沒有異常狀況)。留意挪用一切微信接口時均需應用https協定。

接口挪用要求解釋
http要求方法: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 

參數解釋

 

前往解釋

 

正常情形下,微信會前往下述JSON數據包給"號:
 {"access_token":"ACCESS_TOKEN","expires_in":7200} 

毛病時微信會前往毛病碼等信息,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.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.zhrd.bussinss.platform.constants.WeiXinId;
import com.zhrd.bussinss.platform.service.AccessTokenService;

import net.sf.json.JSONObject;

@Component
@Lazy(false)
public class GetWeiXinAccessTokenScheduled {
 
 /**

   * 取得ACCESS_TOKEN

   *

   * @Title: getAccess_token

   * @Description: 取得ACCESS_TOKEN

   * @param @return 設定文件

   * @return String 前往類型

   * @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-bin/token?grant_type=client_credential&appid="

        + WeiXinId.APPID+ "&secret=" + WeiXinId.APPSECRET;

    String accessToken = null;
    String expiresIn = null;

    try {

      URL urlGet = new URL(url);

      HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();

      http.setRequestMethod("GET"); // 必需是get方法要求

      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 = new byte[size];

      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("====================獲得token停止==============================");

      is.close();

    } catch (Exception e) {

      e.printStackTrace();

    }

//    return accessToken;

  }
 
}

 以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved