• 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-8.用户模块开发之保存微信用户信息


    笔记

    8、用户模块开发之保存微信用户信息
        简介:开发User数据访问层,保存微信用户信息

            问题:
                微信回调 用户昵称乱码
                解决:
                    nickname = new String(nickname.getBytes("ISO-8859-1"), "UTF-8");

            1、封装User对象


            2、插入数据库
                获取openid后,查询是否有此用户,如果有则不发请求去获取用户信息
                方法:保存用户,根据id查询用户,根据openid查询用户

            3、mybatis参数注意
                取值用 #{} ,别用${},因为存在sql注入风险
     

    开始

    sex是double类型的。nickName乱码

    中文的转码,try catch一下

    nickName进行转码

    sex先用Double类型去接收,然后再转换成int类型


    运行程序进行测试

    封装user,保存用户信息

    创建UserMapper





    复制过来的就是insert的sql语句




    这里根据openId去查询,如果查询到了的话,那么直接返回这个user对象,因为从第一次用户扫描登陆后,一般很少去修改用户的信息了。 这里直接根据openid去本地的数据库内查询就可以了。 


    保存数据后。拿到主键的信息



    启动应用测试。扫码登陆


    保存之前用户的id为null



    保存之后id有了值

    看下数据库内 ,数据已经保存进来了 

    剩下一个小问题 城市和省份是中文的问题

    看文档。这里需要一个lang参数

    地址后面加上中文的参数



    再次测试,需要把刚才数据库那条记录删除掉。断点到这里


    把拼接万的字符串 最后进行转码

    把刚才那条数据也删除掉。因为也是乱码的

    再次测试
    转换之前还是乱码

    转换之后了。变成中文了。


    把头像地址复制出来测试



    再测试一遍。用户已经保存了 还会不会再保存一遍。进入断点,一步步往下走

    根据openId找到数据库内已经存在的数据

    这样用户User对象不为null 我们就可以生成jwt返回给前端

    后续请看下节课程!




     

  • 相关阅读:
    python 3 day1(上)
    JMeter (一) Thread Group
    TC-001下载并简单使用Python
    SQL Server ->> 谈SQL Server数据库大表迁移
    SQL Server ->> 记Alwayson高可用副本同步失败后续恢复的性能调优争议
    SQL Server ->> AlwaysOn高可用副本同步失败
    SQL Server ->> AlwaysOn 监控脚本
    Linux ->> Source命令
    PSD 转化成 HTML
    笔试
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11486051.html
Copyright © 2020-2023  润新知