微信小程序登录Java后台接口(详解,附示例代码)

支付宝小程序授权登录 (Java 后台篇) 实现支付宝小程序授权登录功能, 本文主要是介绍支付宝小程序授权登录流程,与关键登录与处理代码. 阅读详情

首先看一下官方文档

地址:微信小程序官方文档API登录接口

我们先对官方给的时序图进行简单的分析

1.当小程序调用wx.login()时,会获得一个code(临时登录凭证),然后我们需要用wx.request()将code发送到自己的服务器.

2.在服务器的接口中,调用登录凭证校检接口,将appid(小程序唯一标识)+appsecret(小程序的app secret)+code发送到微信接口服务.然后微信服务器会返回session_key(会话秘钥)+openid(用户的唯一标识).

3.在服务器的接口中,已经得到微信用户的唯一标识openid,已经数据传输的session_key,接下来就写业务逻辑了.

4.返回给小程序自定义登录态,小程序将它存入storage中.接下来的wx.request()的业务请求,都会携带自定义登录态.

5.在服务器的接口中通过自定义登录态查询openid和session_key,然后返回业务数据.

划一下重点

在服务器的接口中,需要进行一个http请求,将从小程序获得的code和接口中存储的appid和secret发送给微信接口服务,然后就可以获得session_key和openid.

接口地址

 

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数

参数必填说明
appid是小程序唯一标识
secret是小程序的 app secret
js_code是登录时获取的 code
grant_type是填写为 authorization_code

在不满足UnionID下发条件的情况下,返回参数

参数说明
openid用户唯一标识
session_key会话密钥

在满足UnionID下发条件的情况下,返回参数

参数说明
openid用户唯一标识
session_key会话密钥
unionid用户在开放平台的唯一标识符

返回说明

 
  1. //正常返回的JSON数据包

  2. {

  3. "openid": "OPENID",

  4. "session_key": "SESSIONKEY",

  5. }

  6.  
  7. //满足UnionID返回条件时,返回的JSON数据包

  8. {

  9. "openid": "OPENID",

  10. "session_key": "SESSIONKEY",

  11. "unionid": "UNIONID"

  12. }

  13. //错误时返回JSON数据包(示例为Code无效)

  14. {

  15. "errcode": 40029,

  16. "errmsg": "invalid code"

  17. }

小程序登录示例代码

 
  1. //app.js

  2. App({

  3. onLaunch: function() {

  4. wx.login({

  5. success: function(res) {

  6. if (res.code) {

  7. //发起网络请求

  8. wx.request({

  9. url: 'https://test.com/onLogin',

  10. data: {

  11. code: res.code

  12. }

  13. })

  14. } else {

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

  16. }

  17. }

  18. });

  19. }

  20. })

Java后台接口示例代码

 

[java] view plain copy

  1. package com.xx.action;  
  2. import java.util.Map;  
  3. import org.springframework.http.HttpMethod;  
  4. import org.springframework.http.HttpStatus;  
  5. import org.springframework.http.ResponseEntity;  
  6. import org.springframework.web.client.RestTemplate;  
  7.   
  8. import com.google.gson.Gson;  
  9. import com.hp.bean.WeChatAppLoginReq;  
  10. import com.hp.bean.WeChatSession;  
  11. import com.opensymphony.xwork2.ActionSupport;  
  12.   
  13. public class WeChatLogin extends ActionSupport{  
  14.   
  15.     /** 
  16.      *author 李俊标 
  17.      *2018-4-19 
  18.          */  
  19.      private static final long serialVersionUID = 1L;  
  20.       
  21.      private static final String APPID = "wx9xxxxxxxxxxx9b4";    
  22.      private static final String SECRET = "685742***************84xs859";    
  23.          private String code;  
  24.        
  25.      public String getCode() {  
  26.         return code;  
  27.      }  
  28.   
  29.   
  30.      public void setCode(String code) {  
  31.         this.code = code;  
  32.      }  
  33.      //获取凭证校检接口  
  34.      public String login()    
  35.      {  
  36.          //微信的接口  
  37.          String url = "https://api.weixin.qq.com/sns/jscode2session?appid="+APPID+  
  38.                  "&secret="+SECRET+"&js_code="+ code +"&grant_type=authorization_code";  
  39.          RestTemplate restTemplate = new RestTemplate();  
  40.          //进行网络请求,访问url接口  
  41.          ResponseEntity<String>  responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, String.class);    
  42.          //根据返回值进行后续操作   
  43.          if(responseEntity != null && responseEntity.getStatusCode() == HttpStatus.OK)    
  44.             {  
  45.                 String sessionData = responseEntity.getBody();  
  46.                 Gson gson = new Gson();  
  47.                 //解析从微信服务器获得的openid和session_key;  
  48.                 WeChatSession weChatSession = gson.fromJson(sessionData,WeChatSession.class);  
  49.                 //获取用户的唯一标识  
  50.                 String openid = weChatSession.getOpenid();  
  51.                 //获取会话秘钥  
  52.                 String session_key = weChatSession.getSession_key();  
  53.                 //下面就可以写自己的业务代码了  
  54.                 //最后要返回一个自定义的登录态,用来做后续数据传输的验证  
  55.             }  
  56.            
  57.          return null;   
  58.           
  59.      }  

 

  1. }  
  2. 原文转自:https://blog.youkuaiyun.com/NB6063/article/details/80566701
微信小程序登录Java后台接口 微信小程序登录java后台接口 首先看一下微信小程序的开发文档: 微信小程序开发文档 步骤: 一级标题 二级 三级 表头 表头 表头 内容 内容 内容 内容 内容 内容 ... 阅读详情

相关推荐

微信小程序以ssm做后台开发

我的微信小程序以ssm为后台进行的开发,下面我以登录注册为例讲解,希望可以帮到大家(我感觉用ssm后台开发资料比较少) 先看一下页面的效果 1、wmxl 我利用from表单做的 <view class="btn-submit"> <button formType="reset">欢迎登录小白XBIT酒店</button> </view> <f...

v1029179954 1万+

小程序基本命令

onLoad: function () { // 生命周期函数--监听页面加载 onReady: function () { // 生命周期函数--监听页面初次渲染完成 }, onShow: function () { // 生命周期函数--监听页面显示 }, onHide: function () { // 生命周期函数--监...

aiven1637的博客 3558

基于FPGA的ov5640摄像头简易图像采集装置详解

本文介绍一种基于FPGA的,通过流模式DDR实现OV5640摄像头数据采集并显示的方法。

qq_42230252的博客 1万+

uniapp开发微信小程序登录获取openid并解决code无效问题:invalid code

uniapp开发微信小程序登录获取openid并解决code无效问题:invalid code

前端菜鸟好先森的博客 1万+

玉米群体遗传分析实战:如何用IQtree和VCF文件快速构建系统发育树(附避坑指南)

本文详细介绍了如何利用IQtree和VCF文件进行玉米群体遗传分析,并快速构建可靠的系统发育树。文章重点解析了从VCF格式转换到PHYLIP格式的实用技巧,强调了使用ASC模型校正SNP数据偏差的重要性,并提供了完整的参数设置、常见报错解决方案及结果评估指南,帮助研究者高效完成分析并规避常见陷阱。

leaf8的博客 607

Jetson Orin边缘语音AI实战:用Riva ASR/TTS + Llama 2打造离线智能语音助手

本文详细介绍了如何利用NVIDIA Jetson Orin的边缘计算能力,结合Riva ASR/TTS语音引擎和Llama 2大语言模型,构建完全离线的智能语音助手。通过硬件优化、量化部署和性能调优,实现在网络不稳定环境下的高效语音交互,适用于智能家居、车载系统等场景。

weixin_29053383的博客 242

java后台-解决小程序的{"errcode":40013,"errmsg":"invalid appid, hints: [ req_id: qECcC0yFe-_ ]"}

出现40013的可能分析: 1、排除访问的连接是否有问题。下面是api中的链接 GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 2、链接中的的参数一定是放在url中。 3、参数...

u014210149的博客 2万+

MONAI教程<1>-安装

MONAI的安装非常简单,常用的有两种方法: 直接 pip install monai 从GitHub 上安装 monai是通常配合其他库一起使用的,比如pytorch, nibabel, skimage, pillow等等。缺什么直接pip install 就行

Tina姐的博客 1万+

java 网页授权获取微信用户信息错误 40029 微信端会发出两次请求 错误的oauth第二次无效的code

使用一个最笨的办法就是多设置几个全局变量通过对比是微信端发出的第二次请求无效 直接上代码了 @Controller public class CoreController { @Autowired CoreService coreService; @Value("${projecturl}") String projecturl; String openId = null; S

qweas123qwe的博客 2397

诠视MR眼镜Unity开发设置_Unity2020.3.38

请按照如下设置Android SDK 和 Gradle。打包前先将Unity切换到Android模式。Preferences 设置。

m0_71932574的博客 603

银河麒麟V11 + KVM/QEMU + GT 710 GPU直通 Win10 完整操作流程文档

宿主机:RTX 5080专门运行ollama大模型服务,通过SSH/VNC远程管理Win10虚拟机:GT 710直通,物理键盘专属,通过物理显示器处理视频应用硬件隔离:两个系统完全隔离,互不干扰,性能最大化两种不同的直通方式直通方式 配置方法 设备在宿主机的状态 典型应用场景PCIe设备直通 vfio-pci.ids=10de:128b,10de:0e0f 设备完全从宿主机消失,被vfio-pci驱动接管 GPU、网卡、NVMe硬盘。

weixin_45285654的博客 1153

java 微信登录接口_微信小程序登录Java后台接口(详解,附示例代码)

首先看一下官方文档 我们先对官方给的时序图进行简单的分析1.当小程序调用wx.login()时,会获得一个code(临时登录凭证),然后我们需要用wx.request()将code发送到自己的服务器.2.在服务器的接口中,调用登录凭证校检接口,将appid(小程序唯一标识)+appsecret(小程序的app secret)+code发送到微信接口服务.然后微信服务器会返回session_key(...

weixin_39585378的博客 714

PCL 建筑物点云立面和平面分割提取【2025最新版】

在建筑物点云中,立面点和平面点的法向量存在明显的差异,根据法向量在Z方向的分量设置相应得阈值即可实现立面点与平面点的分割。

点云侠的博客 1962

微信小程序登录代码 + Java后台接口(ssh)(详解,附示例代码)

代码可复制,直接使用 官方文档:详细看很重要 地址:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html 官方给的时序图进行简单的分析 1.当小程序调用wx.login()时,会获得一个code(临时登录凭证),然后我们需要用wx.request()将code发送到自己的...

江南一丝凉意的博客 3071

RK3576 Buildroot 双机 ADB 异常排障实录:同版 `boot.img`,一台可识别一台不可识别

进程在跑”不等于“USB 枚举成功”,adbd存活只是必要不充分条件。生产环境中的全局别名可能反向污染系统脚本。shell 命令替换中的字符串问题,必须做字节级验证(od -tx1相比“改环境规避”,核心脚本对输入做鲁棒处理更可长期维护。

小灰灰的博客 212

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java怎么给小程序写接口_微信小程序登录Java后台接口(详解,附示例代码)

首先看一下官方文档 我们先对官方给的时序图进行简单的分析1.当小程序调用wx.login()时,会获得一个code(临时登录凭证),然后我们需要用wx.request()将code发送到自己的服务器.2.在服务器的接口中,调用登录凭证校检接口,将appid(小程序唯一标识)+appsecret(小程序的app secret)+code发送到微信接口服务.然后微信服务器会返回session_key(...

weixin_42372731的博客 2286

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

小程序登录java接口_微信小程序登錄Java后台接口(詳解,附示例代碼)

首先看一下官方文檔 我們先對官方給的時序圖進行簡單的分析1.當小程序調用wx.login()時,會獲得一個code(臨時登錄憑證),然后我們需要用wx.request()將code發送到自己的服務器.2.在服務器的接口中,調用登錄憑證校檢接口,將appid(小程序唯一標識)+appsecret(小程序的app secret)+code發送到微信接口服務.然后微信服務器會返回session_key(...

weixin_42515136的博客 358

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java小程序详解_微信小程序登录Java后台接口(详解,附示例代码)

首先看一下官方文档地址:微信小程序官方文档API登录接口我们先对官方给的时序图进行简单的分析1.当小程序调用wx.login()时,会获得一个code(临时登录凭证),然后我们需要用wx.request()将code发送到自己的服务器.2.在服务器的接口中,调用登录凭证校检接口,将appid(小程序唯一标识)+appsecret(小程序的app secret)+code发送到微信接口服务.然后微信...

weixin_39968266的博客 732

微信小程序实现微信登录详解(JAVA后台)

官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 本文主要记录小程序实现微信登陆功能,后端为Java开发。 在开发之前我们先看一下官方提供的时序图,了解一下我们的大致开发流程: 大致了解流程之后,我们便可以着手开发了。 1. 前提 一个可以测试的微信小程序 此微信小程序的APPID和APPscret(至开发者后台获取) 2. 开发流程 从时序图我们可以了解到流程大致.

Java是世界上最好的语言 3万+

微信小程序-登录+支付(后台Java)Demo实战(环境搭建+源码)

读者要求:已经学过微信小程序的入门官方教程,即其简易教程。 本文介绍了服务器端环境的搭建,以及微信登录+支付的程序示例,以及在实战中遇到的问题与解决方法。

proteen的专栏 7万+

微信小程序实现微信登录(Java后台)

这两天在自己的小项目中加入了微信小程序的很多功能,今天来说一下关于微信授权登录的部分。 需要的材料 1:一个可以测试的微信小程序 2:此微信小程序的APPID和APPscret 流程 微信用户对应一个小程序都有一个唯一的openid,微信授权登录,微信授权登录的核心就是获取这个openid并存在数据库作为用户存在的唯一标识。微信授权登录的流程大体分为两步 1.微信小程序前端获取code...

yan245294305的博客 4万+

微信小程序及Java后台测试登录

微信小程序及Java后台测试登录 文章目录微信小程序及Java后台测试登录一、使用的工具以及开发环境二、微信端登录代码。第一种方式,使用wx.getUserInfo直接获取微信头像,昵称。第二种方式:wx.login,详细的后台代码。 一、使用的工具以及开发环境 微信 微信开发者工具 v1.02.1901230 新建快捷项目 后台 SSM 框架 / SpringBoot +Mybat...

RobertChao的博客 9001
上一篇: 微信小程序 encryptedData 的解密(JAVA)
下一篇: 国内的ngrok,实现内网穿透
javaee1234
博客等级 码龄10年 49粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值