Java后端如何实现使用uni-app获取微信小程序openid
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章将为大家详细讲解有关Java后端如何实现使用uni-app获取微信小程序openid,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言这个是纯
千家信息网最后更新 2025年02月04日Java后端如何实现使用uni-app获取微信小程序openid
这篇文章将为大家详细讲解有关Java后端如何实现使用uni-app获取微信小程序openid,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
前言
这个是纯前端(uniapp)获取openid的:https://my.oschina.net/u/4284277/blog/3168782
但是这个有一个问题就是小程序正式上线后无法拿到openid,所以更新了下面这个后端(Java)获取的,希望对你有帮助。
一、 介绍openid
微信开发时, 用户使用小程序需要授权, 这时就要用到openid进行绑定这个用户。 openid是微信用户在公众号appid下的唯一用户标识(appid不同,则获取到的openid就不同),可用于永久标记一个用户,同时也是微信JSAPI支付的必传参数。
1. 为什么要使用openid呢?
openid是指这个用户在某一个小程序中授权后的唯一标识(比如你的身份证)
2. 如果不使用会带来什么问题呢?
第一次授权时将用户数据保存到数据库, 然后用户把缓存清理了, 第二次授权的时候我们就无法知道这个用户是否授权过。用户就会重新保存一份新的数据进数据库。这是不符合正常逻辑的,因为如果该用户买过东西,再次授权,东西都看不到了,会像新的号一样。当然了, 有的设计是有自己的记录方式的,比如需要注册登录。
3. openid如何获取?
需要用到wx指定的接口
二、 实现
1. uniapp
//@author 兮赫uni.login({ success: res => { //code值(5分钟失效) console.info(res.code); uni.request({ //改成自己的服务地址 url:'http://192.168.1.4:10010/wx/getOpenid/'+res.code, method:'GET', success: (res) => { //这里就拿到openid了,不过一般都是直接在后端使用了,不需要拿到前端了,我就是为了做个演示。 console.info(res); } }) }});
2. pom依赖
HttpClient的依赖和json转换的依赖
com.alibaba fastjson 1.2.54 org.apache.httpcomponents httpclient 4.5.10
3. Java接口
/** * @author 兮赫 * 微信controller */@RestController@RequestMapping("/wx")public class WChat { //小程序appid ,需要改为真实的 private final static String APPID = "wx3599fdagf87366c9"; //小程序secret ,需要改为真实的 private final static String SECRET = "1a5567978djhs875ss8s2397er57jce"; /** * 通过 appid & secret & code 获取 openid * @param code */ @GetMapping("/getOpenid/{code}") public String getOpenid(@PathVariable String code) throws IOException { //wx接口路径 String url = "https://api.weixin.qq.com/sns/jscode2session?grant_type=authorization_code&" + "appid=" + APPID + "&secret=" + SECRET + "&js_code=" + code; //使用HttpClient发送请求 CloseableHttpClient httpclient = HttpClients.createDefault(); //发送Get请求 HttpGet request = new HttpGet(url); request.addHeader("Content-Type", "application/json"); //获得响应 CloseableHttpResponse response = httpclient.execute(request); //拿到响应体 HttpEntity httpEntity = response.getEntity(); //使用工具转换 String result = EntityUtils.toString(httpEntity, "UTF-8");// 转成string JSONObject jsonObject = JSONObject.parseObject(result); System.out.println(jsonObject);//拿到的所有内容 String openid = jsonObject.get("openid").toString(); System.out.println(openid);//拿到的openid return openid; }}
关于Java后端如何实现使用uni-app获取微信小程序openid就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
用户
程序
数据
内容
接口
不同
东西
前端
就是
数据库
文章
更多
标识
知识
篇文章
问题
帮助
不错
公众
再次
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技抗疫成果
数据库部门号
自动驾驶网络安全高校
中华粮网-数据库
戏亭印象网络安全
山西文档软件开发编程
广东报考网络安全工程师证书
浅析网络安全协议
深圳对日软件开发公司深圳
宁波品牌网络技术市场价格
星瑞网络技术有限公司
java扫描数据库数据
现代网络技术处于什么时代
数据库技术及应用是什么课程
数据库是在哪个阶段设计的
浙江标准软件开发市场价
sql数据库解密密码
跟踪器软件开发
数据库管理系统分类
网络安全示范宣传
顺德食神网络技术
县举办网络安全培训
关于网络安全讲话
万方数据库多长时间
企业网络技术大赛
服务器双网卡插一个交换机
中石油网络安全技术交流大会
云计算包含计算机网络技术吗
服务器实现远程管理
嘉兴app软件开发要求