文章目录

  • 介绍
    • 1、获取code并向服务器发送请求
    • 2、引入发送HTTP请求的maven依赖
    • 3、封装HTTP请求工具类
    • 4、编写控制器

介绍

菜鸟教你一步到位
注意事项:

  • 必须是GET请求
  • 微信发送的code码只能使用一次

1、获取code并向服务器发送请求

注:http://localhost:8080/portal/blog/app/login对应第4步的控制器

 wx.login({success (res) {console.log(res);if (res.code) {//发起网络请求wx.request({url: 'http://localhost:8080/portal/blog/app/login', //自己服务器的地址data: {code: res.code //向自己服务器传递的code参数},method:'POST', //记得是post请求success(res){console.log(res);}})} else {console.log('登录失败!' + res.errMsg)}}})

2、引入发送HTTP请求的maven依赖

 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency><!-- JSON工具类 -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId>
</dependency>

3、封装HTTP请求工具类

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Component;import java.io.IOException;
import java.util.HashMap;/*** 微信登录,获取openid* @author XinLiu*/
@Component
public class WxHttpClient {private final static String BASE_URL = "https://api.weixin.qq.com/sns/jscode2session";private final static String appid = "自己的appid ";private final static String secret = "自己的secret ";public static HashMap<String, String> get(String appid, String secret, String code) throws IOException {String url = BASE_URL +"?appid=" +appid +"&secret=" +secret +"&js_code=" +code +"&grant_type=authorization_code";HttpGet httpGet = new HttpGet(url);CloseableHttpClient client = HttpClients.createDefault();CloseableHttpResponse response = client.execute(httpGet);HttpEntity entity = response.getEntity();String s = EntityUtils.toString(entity);JSONObject object = JSON.parseObject(s);String session_key = (String) object.get("session_key");String openid = (String) object.get("openid");HashMap<String, String> res = new HashMap<>();res.put("openid", openid);res.put("session_key", session_key);return res;}public static HashMap<String, String> get(String code) throws IOException {return get(appid, secret, code);}
}

4、编写控制器

@PostMapping("login")
public AjaxResult login(@RequestBody HashMap<String, String> code) throws IOException {HashMap<String, String> map = WxHttpClient.get(code.get("code"));System.out.println(map);return AjaxResult.success();}

打印结果格式如下:

{openid=odfCW5Kz3SfxpydxJH7dIHiCUwSo, session_key=FvEoC08amf16G0texJaBcA==}

可以通过get(key)的方式取到值,具体如下:

String openid = map.get("openid");
String session_key = map.get("session_key");System.out.println("openid: "+openid);
System.out.println("session_key: "+session_key);

结果:

openid: odfCW5Kz3SfxpydxJH7dIHiCUwSo
session_key: 9reHgOu+urg1W1tWI32GVA==

四步获取微信登录所需的openid和session_key相关推荐

  1. 微信小程序(九)微信登录(授权)、获取微信登录凭证code、openid

    微信登录 微信登录面对的问题: 怎么获取用户在微信的信息 怎么获取小程序用户的唯一身份标志 获取openid的方法 wx.login() 方法可以获取微信登录凭证code 使用code 可以向微信服务 ...

  2. vue axios封装 获取微信公众号用户的openid

    目录 axios封装 openid vue vue+ts axios封装 一般会在项目的src目录中,新建一个文件夹,作为网络请求模块,用来封装axios, 创建axios实例: axios.crea ...

  3. .net微信公众号或微信打开,静默授权,获取微信登录者的openid

    ajax提交时openid会丢失,所以第一次获取了,就放到cookie里,再提交时使用 JS代码 <script>$(function () {$(".submit") ...

  4. 5+App用户获取微信登录

    直接上代码 <button onclick="getService()">一键登录</button> <button onclick="lo ...

  5. (详细版)java实现小程序获取微信登录,用户信息,手机号,头像

    ps:springboot结合mybatisPlus.mysql实现,简单易懂,一件粘贴使用,详细往下看↓ 步骤: 1.注册微信开发平台账号,并创建小程序,获取小程序的AppID和AppSecret. ...

  6. Creator+微信小游戏:(1) 获取微信登录信息

    目录 准备 开始 代码讲解 获取用户信息 下载图片 完整示例代码 本教程以Cocos Creator讲解如何获取微信用户的基本信息. 最常用的信息是:昵称(字符串),头像(图片). 准备 你应该准备好 ...

  7. 微信支付平台设置及如何获取微信支付所需参数

    使用微信公众平台支付插件的,需要在微信公众平台设置/获取相关参数,其方法对各种版本的支付插件是通用的,现总结如下: 一.微信平台设置 微信平台的设置是非常重要的,请一定仔细设置,50%的安装错误都是由 ...

  8. 微信HOOK 3.获取微信登录信息【ID 头像 昵称】

    1.用CE 不断 0 和 1之间切换,(因为软件登录为真=1) 57DD836C 2.最后用绿色带基址的 最先进入1的地址下断点 3.最后找到有5个字节的地址! 4.错误操作:call 必须带上否者崩 ...

  9. 获取小程序用户信息+java_java获取微信小程序用户信息

    第一步:获取openid.session_key等信息. /** * 获取微信小程序的用户openid和session_key/unionid * 返回格式:{"session_key&qu ...

最新文章

  1. 【Spring】工厂模式解耦
  2. java设置按钮调用问题_按钮相关问题:尝试在空对象引用上调用虚方法
  3. jvm堆内存设置原理
  4. 原理图生成pdf 汉字不显示_EPLAN官方视频系列之二丨原理图设计智能功能(1)...
  5. Spring Boot Serverless 实战系列“架构篇”首发 | 光速入门函数计算
  6. eclipse 装配server时找不到tomcat
  7. python爬图片_Python爬虫:彼岸图网图片爬取-Go语言中文社区
  8. php重构求圆柱圆锥的体积,六年级数学下册2.8 圆锥的体积教案 (新版)苏教版...
  9. vc语言c1083错误,VC编程之VS error C1083: 无法打开包括文件:“gl\glew.h”: No such file or directory\...
  10. 朋友说:能不能用python,帮我写一个“制作工资条”的自动化程序?
  11. itext7读取pdf 中文_pdf转为excel表
  12. 企业破产清算中几个难题的探析(转)
  13. 《linux命令行与shell编程大全》--读书笔记
  14. word文件限制编辑密码如果找回
  15. Master横扫围棋界 AI智能风暴来袭
  16. 4个要点,解析MVP产品怎么做?
  17. 2014最新的淘宝客网站SEO操作方法
  18. 从一个案例谈故障模型
  19. SOLID原则-单一职责原则
  20. Image-Level 弱监督图像语义分割汇总简析

热门文章

  1. CMD命令之BAT脚本路径信息
  2. java.lang.IllegalArgumentException: URLDecoder异常解决
  3. 并发场景下的幂等问题——分布式锁详解
  4. ARMv9刷屏 —— 号称十年最大变革,Realm机密计算技术有什么亮点?
  5. Ververica Platform-阿里巴巴全新Flink企业版揭秘
  6. 支付宝放出数字化经营新神器,可提升商家60%消费频次
  7. 巧用 Img / JavaScript 采集页面数据
  8. Apache RocketMQ 深圳沙龙报名开启!
  9. 数据中台 VS 传统大数据平台,这 8 点区别要了解
  10. IT 实力较量:决战超级数据中心之巅