zoukankan      html  css  js  c++  java
  • 小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返回给前端

    后续请看下节课程!




     

  • 相关阅读:
    CF 1182F Maximum Sine——根号算法
    左偏树学习笔记
    CF1182 D Complete Mirror——思路
    AT3576 E Popping Balls——计数思路
    loj 6053 简单的函数 —— min_25筛
    bzoj 2784 时间流逝 —— 树上高斯消元
    loj 2542 随机游走 —— 最值反演+树上期望DP+fmt
    poj 2096 , zoj 3329 , hdu 4035 —— 期望DP
    loj 6485 LJJ学二项式定理 —— 单位根反演
    bzoj 3328 PYXFIB —— 单位根反演
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11486051.html
Copyright © 2011-2022 走看看