java微信接口之——獲取access_token


一、微信獲取access_token接口簡介

  1、請求:該請求是GET方式請求,所以要攜帶的參數都是附加到url后面傳遞給微信服務器。請求的url格式如下:

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    其中,APPID與APPSECRET都我們開發的時候自己帳號申請的。
  2、響應:返回數據都是json數據,格式如下:
   正確的時候返回的數據: {"access_token":"ACCESS_TOKEN","expires_in":7200}

     ACCESS_TOKEN:訪問token,expires_in為過期時間
   錯誤的時候返回的數據: {"errcode":40013,"errmsg":"invalid appid"}

     errcode,為錯誤代碼,errmsg為錯誤信息
   具體api說明可查看文檔:http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96access_token

二、關於java代碼的調用

  該接口可以在前台用頁面ajax調用,也可以在后台用java代碼調用。這里需要使用到apache的http組件httpcomponents-client,這里使用的版本為httpcomponents-client-4.2.1,下載地址為:http://hc.apache.org/downloads.cgi。需要使用到的jar文件如下:

三、代碼實現

 1 package com.demo.test;
 2 
 3 import org.apache.http.HttpEntity;
 4 import org.apache.http.HttpResponse;
 5 import org.apache.http.HttpStatus;
 6 import org.apache.http.client.HttpClient;
 7 import org.apache.http.client.methods.HttpGet;
 8 import org.apache.http.impl.client.DefaultHttpClient;
 9 import org.apache.http.util.EntityUtils;
10 
11 import com.google.gson.JsonObject;
12 import com.google.gson.JsonParser;
13 
14 public class Test
15 {
16     public static final String GET_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token";// 獲取access
17                                                                                             // url
18     public static final String APP_ID = "wxa549b28c24cf341e";
19     public static final String SECRET = "78d8a8cd7a4fa700142d06b96bf44a37";
20 
21     // 獲取token
22     public static String getToken(String apiurl, String appid, String secret)
23     {
24         String turl = String.format(
25                 "%s?grant_type=client_credential&appid=%s&secret=%s", apiurl,
26                 appid, secret);
27         HttpClient client = new DefaultHttpClient();
28         HttpGet get = new HttpGet(turl);
29         JsonParser jsonparer = new JsonParser();// 初始化解析json格式的對象
30         String result = null;
31         try
32         {
33             HttpResponse res = client.execute(get);
34             String responseContent = null; // 響應內容
35             HttpEntity entity = res.getEntity();
36             responseContent = EntityUtils.toString(entity, "UTF-8");
37             JsonObject json = jsonparer.parse(responseContent)
38                     .getAsJsonObject();
39             // 將json字符串轉換為json對象
40             if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
41             {
42                 if (json.get("errcode") != null)
43                 {// 錯誤時微信會返回錯誤碼等信息,{"errcode":40013,"errmsg":"invalid appid"}
44                 }
45                 else
46                 {// 正常情況下{"access_token":"ACCESS_TOKEN","expires_in":7200}
47                     result = json.get("access_token").getAsString();
48                 }
49             }
50         }
51         catch (Exception e)
52         {
53             e.printStackTrace();
54         }
55         finally
56         {
57             // 關閉連接 ,釋放資源
58             client.getConnectionManager().shutdown();
59             return result;
60         }
61     }
62 
63     public static void main(String[] args) throws Exception
64     {
65         System.out.println("=========1獲取token=========");
66         String accessToken = getToken(GET_TOKEN_URL, APP_ID, SECRET);// 獲取token
67         if (accessToken != null)
68             System.out.println(accessToken);
69     }
70 
71 }

  當token正常返回的時候會打印token,否則不會打印。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM