首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《苍穹外卖Day6:大一菜鸟的代码升空纪实》

《苍穹外卖Day6:大一菜鸟的代码升空纪实》

作者头像
张哈大
发布2025-05-31 08:41:04
发布2025-05-31 08:41:04
1650
举报
文章被收录于专栏:RedisRedis

作者是跟黑马课程学习的

前言

今天主要完成的是微信小程序的相关实现,大家可以参照微信官网

1.任务报告

1.了解了微信小程序如何申请与上传,粗略听了微信小程序该如何实现

2.导入微信小程序的代码,并进行了接口测试(用微信状态码来获取用户唯一标识)

3.在Spring中配置了微信小程序所用到的参数(记得分环境配置)

4.在Spring中配置了JWT关于C端用户的参数

5.配置用户端的拦截器并且注册

6.实现了用户登录接口

7.导入商品浏览功能(和管理层基本一致)

2.任务中的收获

1.服务端如何实现登录微信小程序

具体流程: 微信小程序开始编译(用户点击)生成微信状态码code =》 服务端接收code(只能使用一次) =》 服务端传出code与自己小程序的id与密钥参数访问微信接口服务 =》 接收微信接口服务传递过来的参数(JSON数据) =》 进行JSON转换获取openid(用户微信的唯一标识) =》 判断是否为空 =》 为空则抛出异常,不为空则在进行操作 =》 根据openid查询数据库 =》 判断数据库中User是否有值 =》 没有,则是新用户登录,将用户数据存入数据库 /有则是进行操作 =》 最终返回User数据

2.微信小程序注意事项

1.我们获取的code是微信的授权码,用这个授权码就可以获取关于用户登录时的信息授权码只能使用一次)

2.获取的openid则是用户微信的唯一标识每个用户的标识都不同)唯一想到什么,数据唯一,我们可以用这个来判断该用户是否注册(在数据库查询)

3.用授权码code来获取openid需要访问https://api.weixin.qq.com/sns/jscode2session(地址固定)

用地址栏传参(参数名固定,最后一个参数值也固定)(地址?参数名=值&参数名=值)

返回参数(我们这里只需要openid即可)

4.上面涉及到小程序的密钥,我们生成的时候记得保存下来,不然你后面来查询不到(只能重新生成)

5.返回参数的类型是JSON字符串的数据,我们需要将其转换成java能够识别的数据(扩展细说)

3.配置拦截微信JWT注意事项

1.我们之前拦截管理端的时候是指定拦截路径为admin(这是约束的)的,并且排除了登录请求(这里要生成令牌,JWT具体流程在我之前已经详细说明)

2.而我们拦截用户端是指定拦截路径为user,排除了登录以及查询店铺状态的请求,这里为什么要排除查询店铺状态的请求呢? =》 你要想你点进去一个小程序,哪怕你没有登录,基本的页面是不是要展示出来,而我们的店铺状态是需要查询才知道的,所以我们需要排除它

3.总结:我们进行拦截的操作时,不要只停留在排除了登录请求就行了,我们需要考虑的是什么请求是可以不登录就可以成功访问的(比如店铺状态的展示),而且我们拦截要分模块拦截,不能直接拦截所有请求(效率不高,也不方便)

3.知识点的扩展

JSON字符串数据的转换

1.我们调用的是JSON.parseObject(),这个方法,它可以将JSON格式的字符串反序列化转化成java对象

2.怎么使用

1.将JSON字符串转换成特定Java对象

String json = "{"name": "zhanghada" , "age": 18}"; User user = JSON.parseObject(json,User.class) ; =》 如果有一个与json参数内的属性一一对应的实体类对象User,那么我们可以直接这样写,转换成User该类的对象

2. 将JSON字符串转换成通用Java对象

String json = "{"name": "zhanghada" , "age": 18}"; JSONObject jsonObj= JSON.parseObject(json); =>没有对应实体类,那么我们可以封装成一个通用的Json对象(java能使用的对象)

3.我们今天使用的是第二种方式

解释:获取了JSONObject对象后,我们可以调用getString()方法,里面指定对应key(就是传过来的参数名),得到的值就是具体封装的属性值

4.总结:第一种方式用于获取大量参数时,我们可以封装一个实体类来接收,而第二种方法则是获取单一参数时来使用

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者是跟黑马课程学习的
    • 前言
    • 1.任务报告
    • 2.任务中的收获
      • 1.服务端如何实现登录微信小程序
      • 2.微信小程序注意事项
      • 3.配置拦截微信JWT注意事项
    • 3.知识点的扩展
      • JSON字符串数据的转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档