在这里给大家分享下我的心得,1.写代码前一定要对整个流程有个了解。我就是因为在先不了解整个过程中去ctrl+c+v他人的博客代码,花费很多无用的时间去处理还不知道能不能跑的起来的代码。
2.本人比较喜欢手画图理解,本人亲测,印象很深刻。
在此声明因为是后端所以前端的代码就不写在上面了,有疑问留言,能帮我会帮。
请求微信api接口:GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
1.根据前端用户授权即会产生一个code用户登陆时获取的标识(这个code的声明周期是存活5分钟,5分钟过后就没用了)。
2.开发者服务器即我获取到前端传过来的code,另外还有3个固定的一个是appid(小程序的appid)、secret(小程序appSecret)、grant_type(授权类型,authorization_code)
3.根据2中的code+appid+secret+grant_type调用微信api接口返回的是JSON数据包:openid(用户唯一标识)、session_key(会话密钥)
a:首先我定义一个常量类,里面写有appid、secret、authorization_code这三个是固定不变的。
/**
*
* 用于微信授权:固定不变的常量
*
* */
public class WeiXin {
public static final String APPID = "xxxxxx";
public static final String APP_SECRECT = "xxxxxx";
public static final String AUTHORIZATION_CODE = "authorization_code";
}
添加一个工具类即获取资源路径的工具
b、HttpRequest.java 工具类 (整段复制即可无需修改)
package com.zzh.demo.base.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class HttpRequest {
public static void main(String[] args) {
//发送 GET 请求
String s=HttpRequest.sendGet("http://v.qq.com/x/cover/kvehb7okfxqstmc.html?vid=e019