微信公众平台的开发(第一天)

最近老师安排让我去研究微信公众平台,刚开始接触的时候,真的是一头雾水,啥都不知道,慢慢的才熟悉微信公众平台的开发。首先需要需要通过一个接口获取到access_token,今天我就来分享一下我是怎么获取到access_token的。

创建一个菜单

打开微信公众平台自定义菜单。

跳转

在跳转网页那里输入自己的url,然后点击这个url就会跳转到自己的controller,在controller里处理一些操作。(注意:请求必须是get)

  /** 客户端进行的消息处理** @param request   请求* @param response  响应*/@RequestMapping(value = "/wx/test", method = RequestMethod.GET)public void disposeClientMessage(HttpServletRequest request, HttpServletResponse response) throws IOException {String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";String appid = "自己的appid";//你的回调页String redirectUri = "需要输入的重定向网址(域名/get/accessToken)";url = url.replace("APPID", appid);url = url.replace("REDIRECT_URI", redirectUri);response.sendRedirect(url);}

获取access_token

在这里处理刚刚的重定向(注意:重定向的域名必须要在 公众号设置->功能设置->网页授权域名 里加上自己的域名,否则会报10003错误)

  /*** 获取access_token** @param request   请求*/@RequestMapping(value = "/get/accessToken", method = RequestMethod.GET)public void getAccessToken(HttpServletRequest request) {//首先获得code,通过code来获得openidString code = request.getParameter("code");System.out.println(code);if (code != null) {//获取openid和access_token的连接AccessToken accessToken = WeiXinUtils.getAccessToken();System.out.println("access_token" + accessToken.getToken());}}

然后分享一下我的WeiXinUtils

 package com.itap.javaee.tools.wx;import com.itap.javaee.pojo.wechat.AccessToken;
import net.sf.json.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import java.io.IOException;/** @author dap* @create 2019-01-10 20:13* @desc 用户获取access_token, 众号调用各接口时都需使用access_token*/
public class WeiXinUtils {/*** 微信公众号的APPID和Appsecret,这个是每个微信公众号都唯一的,以后配置不同的公众号配置这里即可*/private static final String APPID = "自己的appid";private static final String APPSECRET = "自己的appsecret";/*** 获取access_token的URL*/private static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";private static final String OPENID_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSECRET&code=CODE&grant_type=authorization_code";/*** Get请求,方便到一个url接口来获取结果** @param url 传入一个url* @return    JSONObject*/public static JSONObject doGetStr(String url) {DefaultHttpClient defaultHttpClient = new DefaultHttpClient();HttpGet httpGet = new HttpGet(url);JSONObject jsonObject = null;try {HttpResponse response = defaultHttpClient.execute(httpGet);HttpEntity entity = response.getEntity();if (entity != null) {String result = EntityUtils.toString(entity, "UTF-8");jsonObject = JSONObject.fromObject(result);}} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return jsonObject;}/*** 获取access_token** @return access_token*/public static AccessToken getAccessToken() {AccessToken accessToken = new AccessToken();String url = ACCESS_TOKEN_URL.replace("APPID", APPID).replace("APPSECRET", APPSECRET);JSONObject jsonObject = doGetStr(url);if (jsonObject != null) {accessToken.setToken(jsonObject.getString("access_token"));accessToken.setExpireIn((int) jsonObject.getLong("expires_in"));}return accessToken;}/*** 获取Openid** @return 获取Openid*/public static String getOpenid(String code) {String url = OPENID_URL.replace("APPID", APPID).replace("APPSECRET", APPSECRET).replace("CODE",code);String openid = null;JSONObject jsonObject = doGetStr(url);System.out.println(jsonObject.toString());if (jsonObject != null) {openid = jsonObject.getString("openid");}return openid;}
}

最后就是我想说一下,使用net.sf.json.JSONObject的时候maven需要加一个

获取微信公众平台的access_token相关推荐

  1. 如何获取微信公众平台图文消息的永久链接

    微信公众平台升级后,预览图文消息时页面会显示如下信息: 经过一番努力,小编最终找到了方法: >打开自己的微信给公众号发送一条消息: >在公众平台打开消息管理,给微信回复一条图文消息(从素材 ...

  2. PHP cURL获取微信公众号access_token

    用PHP获取微信公众号的access_token是会用到强大的cURL,一般来说平常获取access_token代码如下 //请求url地址 $appId = 'yourAppId'; $appSec ...

  3. C#微信公众平台开发—高级群发接口

    涉及access_token的获取请参考<C#微信公众平台开发-access_token的获取存储与更新> 一.为了实现高级群发功能,需要解决的问题 1.通过微信接口上传图文消息素材时,J ...

  4. 微信公众平台开发4-长链接转短链接口调用实例(含源码)

    微信公众平台开发-access_token获取及应用(含源码) 作者: 孟祥磊-<微信公众平台开发实例教程> 将一条长链接转成短链接.开发者用于生成二维码的原链接(商品.支付二维码等)太长 ...

  5. 微信公众平台测试号——模板消息发送Demo

    开发微信公众号的时候,我们经常会使用微信公众平台的测试号来进行调试,因为测试号的可用接口比较全,不然只有经过认证的服务号才可以调用比较高级的接口. 从开始搞一个微信公众平台测试号开始. 打开微信公众平 ...

  6. 微信公众平台开发 zhphpweixinApi.class.php api-php接口类@真实可用@带案例教程

    真实可用 <?php /**自己封装 微信 开发api */ header('Content-type: text/html; charset=utf-8');#设置头信息 class zhph ...

  7. 微信公众平台开发的部分知识

    最近项目开发的时候涉及微信公众平台的开发,在这个学习过程中遇到了很多问题,了解清楚这部分,大概用了一个多星期,中间遇到很多问题,比较痛苦,网上的资料比较杂乱,导致查阅的时候遇到很多障碍,但是还是耐着性 ...

  8. python获取微信公共平台消息列表和用户头像

    转载需注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 刚写的模拟登陆的方式从获取微信公众平台消息列表和用户头像的库,之后还 ...

  9. 微信公众平台消息接口-java-jsp版

    微信公众平台现在推出自动回复消息接口,但是由于是接口内容用的是PHP语言写的,很多地方操作起来让本人这个对java比较熟悉的小伙很别扭,所以仿照PHP的接口代码做了一套jsp语言编写的接口. 首先先把 ...

  10. 使用Java语言开发微信公众平台(五)——获取access_token

    在前四期的文章中,我们分别学习了"环境搭建与开发接入"."文本消息的接收与响应"."被关注回复与关键词回复"."图文消息的发送与响 ...

最新文章

  1. linux mysql统计次数_MySQL统计函数记录
  2. vs code配置python环境mac_mac vscode Python配置
  3. Java虚拟机学习(3): 类加载机制
  4. 说说 JavaScript 计时器的工作原理
  5. java泛型_Java核心知识 基础五 JAVA 泛型
  6. 《可用性测试手册(第2版)》一第1章 什么造就了可用性1.1 “可用”究竟是什么...
  7. 恭喜你,2018 中国开发者有奖大调查“榜上有名”!
  8. 数据结构_二叉树非递归遍历
  9. PTA:7-1 还原二叉树 (25 分)
  10. 换手率:为什么美国人不爱频繁申赎基金?
  11. 二维码生成易语言代码
  12. 地统计之检查空间自相关
  13. Adobe Ps/Pr/ME/PL/Au/Ae/Ch/An/Lr/Dw/Ai/Id/Acrobat/2019/windows/mac
  14. 查看Windows的激活到期时间、具体版本号等具体系统信息
  15. 3D物体标签(随镜头远近,调整自身大小)
  16. HDU 3374 最小 / 大表示法
  17. css实现平角切角和弧形切角
  18. 用淘礼金助手做0元购物软件这3点必须要知道
  19. 微型计算机原理和接口技术试卷,2017-1微机原理和接口技术试卷A(答案)-.doc
  20. 【LEAP模型】能源环境发展及碳排放建模预测及不确定性分析

热门文章

  1. Linux内核DTB文件启动的几种方式
  2. openssl在arm下的交叉编译
  3. vue可填写表格_vue表格中添加一条数据且可编辑
  4. 深度学习优化算法大全系列5:AdaDelta,RMSProp
  5. hive sql 13位毫秒时间戳转日期
  6. matlab从入门到放弃~
  7. 一文看懂二叉搜索树~(又叫二叉查找树) 代码+详解(C/C++)
  8. python写sql语句_如何在Python脚本中执行多个SQL语句?
  9. rdlc报表 矩形高固定_什么是 BI?和报表有什么关系?有了 BI 还要做报表吗?
  10. 染用计算机语言,着色器语言