根据官方文档,wx.login()的回调函数中,需要我们传递生成的用户登录凭证到code2accessToken的接口中

小程序登录方法

code2accessToken的方法中要求传入如下参数

code2accessToken的方法中要求传入如下参数

获取Appid与appSecret,登录微信公众平台,知道你申请的小程序,开发者设置中有appid,然后生成secret即可

开发者设置

官方文档:

微信公众平台:

首先,要在微信开发者工具中,修改utils下app.js中的wx.login()方法

// 登录

wx.login({

success: function (res) {

if (res.code) {

// 发起网络请求

wx.request({

// 这里是接口地址,建议部署配置域名为https,否则可能会出问题,nginx加密证书配置见文章尾

url: 'http://127.0.0.1:8099/api/v1/minipro/login',

data: {

code: res.code

}

})

} else {

console.log('登录失败!' + res.errMsg)

}

}

})

微信小程序登录接口的书写

@Controller

@RequestMapping("/api/v1/minipro")

public class MainController implements Serializable {

private static final long serialVersionUID = 1L;

private static Logger logger = LoggerFactory.getLogger(MainController.class);

/**

* 登录

* @param

*/

@ResponseBody

@GetMapping(value="/login")

public Result login(String code) {

// 微信小程序ID

String appid = "";

// 微信小程序秘钥

String secret = "";

// 根据小程序穿过来的code想这个url发送请求

String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" + secret + "&js_code=" + code + "&grant_type=authorization_code";

// 发送请求,返回Json字符串

String str = WeChatUtil.httpRequest(url, "GET", null);

// 转成Json对象 获取openid

JSONObject jsonObject = JSONObject.parseObject(str);

// 我们需要的openid,在一个小程序中,openid是唯一的

String openid = jsonObject.get("openid").toString();

// 然后书写自己的处理逻辑即可

}

微信小程序工具类

/**

* 微信工具类

*/

public class WeChatUtil {

public static String httpRequest(String requestUrl,String requestMethod,String output){

try{

URL url = new URL(requestUrl);

HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

connection.setDoOutput(true);

connection.setDoInput(true);

connection.setUseCaches(false);

if(null != output){

OutputStream outputStream = connection.getOutputStream();

outputStream.write(output.getBytes("utf-8"));

outputStream.close();

}

// 从输入流读取返回内容

InputStream inputStream = connection.getInputStream();

InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");

BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String str = null;

StringBuffer buffer = new StringBuffer();

while ((str = bufferedReader.readLine()) != null){

buffer.append(str);

}

bufferedReader.close();

inputStreamReader.close();

inputStream.close();

inputStream = null;

connection.disconnect();

return buffer.toString();

}catch(Exception e){

e.printStackTrace();

}

return "";

}

}

因为审核上线的小程序接口都必须要https开头,也就是说必须开启加密证书才可以使用。

java微信小程序接口openid过期_Java微信小程序登录接口获取openid相关推荐

  1. java微信公众号支付开发平台_Java微信公众平台开发之公众号支付(微信内H5调起支付)...

    官方文档 准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败) 借鉴了很多大神的文章,在此先谢过了 整个支付流程,看懂就很好写了 一.设置支付目录 在微信公众平台设置您的公众号 ...

  2. java微信支付接口源码_java微信支付源码(WxPayAPI_JAVA_v3)

    [实例简介] [实例截图] [核心代码] package com.github.wxpay.sdk; import java.util.HashMap; import java.util.Map; i ...

  3. 小程序登录注册获取openid解密手机号服务端实现

    文章目录 前言 一.openId是什么 1.如何确认微信和小程序唯一身份 2.为什么使用openId 3.如何获得openId 1:前端示例代码 2:服务端示例代码 二.解密微信绑定手机号 1:前端示 ...

  4. java在程序运行过程中_Java内存管理-程序运行过程(一)

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 勿在浮沙筑高台,出来混迟早要还的. 相信在做Java开发的伙伴一定知道 JVM(Java Virtual Machine( ...

  5. java 接口文件夹_Java NIO.2 使用Path接口来监听文件、文件夹变化

    Java7对NIO进行了大的改进,新增了许多功能: •对文件系统的访问提供了全面的支持 •提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的 ...

  6. java小游戏实训目的_Java弹球小游戏实验报告.doc

    Java弹球小游戏实验报告 滨江学院 Java程序设计实验报告 题 目 弹球小游戏 姓 名 许浩 学 号 20112346064 学 院 滨江学院 专 业 网络工程 年 级 2011级 指导教师 张舒 ...

  7. java接口并发衡量_java 后端设计高并发接口总结

    如何设置高并发接口 一.并发队列的选择 二.请求接口的合理设计 三.高并发下的数据安全 3.1 超发的原因 3.2 悲观锁思路 3.3 FIFO队列思路 3.4 乐观锁思路 一.并发队列的选择 Jav ...

  8. java微信内h5调起支付_java微信支付--------公众号内H5调起支付

    /*** 统一下单接口,获取prepay_id *@paramrequest *@return */@RequestMapping(value= "/unifiedOrder", ...

  9. java 微信语音下载电脑版下载_java微信server录音下载到自己server

    本文实例为大家分享了java微信server录音下载到自己server的具体代码,供大家参考,具体内容如下 /** * @author why * */ public class VoiceDownl ...

最新文章

  1. Spring Boot 核心知识点总结,面试再也不怕了!
  2. Swift如何使用Masonry和SnapKit
  3. 基于intellij和meavn的整合开发struts2框架的web程序
  4. eclipse新建项目有红叉_selenum+java+eclipse环境搭建和浏览器驱动配置
  5. Trace SAP OData execution in CRM backend system
  6. 客户端服务端防止用户重复提交表单
  7. mysql 无法处理非法数据_MySQL 处理非法数据
  8. 前端工具lighthouse
  9. java求梯形面积程序_Java初级应用,计算关于梯形跟圆形的面积。该程序中有3个类:Lader、Circle和主类Test。...
  10. java c3p0 存储过程_JAVA Spring 连接池 调用 Oracle 存储过程的问题?
  11. uview中使用_使用uniapp自带的地图_实现地图点选位置功能---基于Vue的uniapp手机端_前端UI_uview工作笔记006
  12. 让 API 端点的响应速度提高 50 倍!
  13. 最新最全的免费股票数据接口--沪深A股指数实时交易数据API接口(七)
  14. 黑客技术思维导图总结
  15. python requests 代理ip被禁_python requests 测试代理ip是否生效
  16. C语言·百钱百鸡问题
  17. 零售业小程序行业解决方案
  18. 请这样爱你的移动硬盘
  19. 解决string not in pwd
  20. 最新版KEIL error: non-ASM statement in naked function is not supported或者 ‘__STATIC_INLINE‘

热门文章

  1. android stl 3d模型,3D文件转化为STL文件 - 魔猴网
  2. 警告:Named Route ‘Main‘ has a default child route. When navigating to this named route
  3. 《AngularJS深度剖析与最佳实践》一 2.4 控制器
  4. (CRON) info (No MTA installed, discarding output
  5. Could not find artifact pom:2.0.0 in public
  6. 小伙利用C++实现U盘热插拨监听程序,走上人生巅峰
  7. 后端开发工程师需要掌握的内容
  8. Pycharm2018.2永久破解
  9. with dlz mysql 条件_BIND+DLZ+MYSQL
  10. 手机端上传照片压缩功能canvas