发表于: 2020-02-10 23:19:26
1 1460
今天完成的事:
1、调整微信登录接口
(1)之前是使用微信开发者工具,获取临时code码,iv,敏感信息,并在测试类找那个直接进行解密,来获取用户微信信息。
现在将其添加到controller类中,编写接口,部署到服务器中,但是通过postman,将code、iv、敏感信息传给接口,进行解密,却报错,如下。
百度发现,原来是因为传入的信息包含“+”,会变成空格,导致解密失败。
要么前端处理,要么后端处理,这里我是直接在controller类中直接进行字符串的转换,将空格替换成“+”。并在其前后进行打印。
查看日志,果然,转化前传输到接口的都是含有 空格 的,而我在postman填写的数据,和转化后的数据是一致的,都是有“+”的。
转化后,解密成功。
(2)用户敏感信息是解密了,但是插入报错。。因为我的微信名称有 表情。。
按照百度结果查看,字符集是utf8mb4,复盘服务器mysql版本是5.7.25,也大于5.5.3。。说是还要修改mysql的配置文件,在服务器中没找到。。就拉倒了。
没办法了,只能过滤掉 表情的字符串,如下所示。
再次请求登录,用户信息解密成功,注册成功。
(3)前端请求微信登录接口报错code为空
前端先是使用postman测试,成功解密,注册。
但是后面使用真机模拟测试时,报错code码不能为空,也就是说code码没有传给后台。
百度后,修改请求头中的 content.type,就可以成功传递参数了,正常解析出openid。
.png)
如下图修改,说是小程序默认content.type为 application/json,但是只有post请求需要修改,说是get请求使用application/json也没事,这个没尝试,不太清楚。。
还有第二个方法,说是将参数放入集合,后台使用 @RequestBody 注解接收参数也可以,没尝试,有需要再看吧。。
(4)修改service实现类中使用逆向工程example类方法的方法。
又要重新修改了。。所有使用example类的都需要修改,如果是 且 关系的多条件,不能是注释中那么写,注释中的写法是 或 的条件关系!!!
那么这样是不是可以意味着,不需要写动态sql语句了,之前就是因为姓名模糊查询与其他条件无法并存,才编写了动态sql,但是其实还是需要动态sql,因为example类的条件如果是 null,就会报错异常,所以如果之前没有非空判断,还是使用动态sql语句更方便点。
example类的条件如果是 null,就会报错异常。
明天计划的事:
1、配置https。
2、修改日志配置、缓存配置。
遇到的问题:
1、压测是仅仅测试后端接口吗?需要读取前端的静态资源吗?
开发完就直接压测是吧,标准是下图标准吗?
2、缓存的设置有没有什么讲究,真实项目中有什么需要注意的吗?
收获:
1、调整微信登录接口
(1)字符串的转换,将 空格 替换成“+”,再进行用户敏感信息的解密。
(2)因为微信昵称中有表情,无法存储数据库,只能过滤掉 表情的字符串。
(3)前端请求微信登录接口报错code为空,修改请求头中 content.type。
(4)修改service实现类中使用逆向工程example类方法的方法。
评论