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都我们开发的时候自己帐号申请的。

一、微信获取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,否则不会打印。

目录
相关文章
|
4月前
|
人工智能 移动开发 小程序
Java医院智慧3D导诊系统源码 微信小程序源码
技术架构:springboot+redis+mybatis plus+mysql+RocketMQ
64 1
|
5月前
|
小程序 安全 Java
【Java】智慧校园云SaaS平台源码带微信小程序
【Java】智慧校园云SaaS平台源码带微信小程序
87 0
|
2月前
|
缓存 NoSQL Java
java中实现定时给微信群中发送每日简报
java中实现定时给微信群中发送每日简报
42 0
|
7月前
|
Java
Java实现微信支付
Java实现微信支付
503 2
|
5月前
|
编解码 小程序 Java
【Java】基于云计算-智慧校园电子班牌系统源码带原生微信小程序端
【Java】基于云计算-智慧校园电子班牌系统源码带原生微信小程序端
81 0
|
1月前
|
Java
java发送微信公众号模板消息
java发送微信公众号模板消息
|
28天前
|
JavaScript 小程序 Java
Java智慧校园系统源码springboot + vue智慧学校源码 微信小程序+电子班牌
智慧校园的建设逐渐被师生、家长认可接受,智慧校园通过对在校师生、教务等所有人员的信息以及各种信息搜集与储存,进行数据优化与管理,为师生们提供更加智能化的校园服务。未来智慧校园将不再是一个陌生词,而会真正地应用在更多的校园管理中,让我们的校园生活变得更加美好
34 2
|
1月前
|
人工智能 小程序 Java
Java智慧校园系统源码 微信小程序+电子班牌
通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏(校牌)进行统一集中式管理,支持浏览所有设备的基本信息以及在离线状态,支持添加设备、设备一键开关机、一键重启、设置节假日开关机时间、设置日常开关机时间、远程班牌截屏、远程班牌升级等操作。
22 0
|
2月前
|
Java
java中实现定时给微信群中发送每日天气情况
java中实现定时给微信群中发送每日天气情况
21 0
|
2月前
|
安全 小程序 Java
java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现
java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现
32 0