在线教育项目实战(微信支付)目录-上
课程介绍和项目的搭建
大纲介绍
微信支付项目效果演示
SpringBoot2.x的基础
开发环境 jdk8 idea maven git mysql
项目从零到上线的步骤和流程
需求调研到项目上线
需求评审(产品-设计-前端-后台-测试-运营)
ui设计-》开发(前端和后台架构开发)
前后端联调-》项目体侧-》bugFix-》回归测试
运维开发部署上线-》灰度发布-》全量发布-》维护和运营
功能点和系统架构的分析
首页视频列表、视频详情、微信扫码支付、我的订单
架构设计
前后点分离(方案:node渲染)
动静分离(方案:静态资源放到cdn或者nginx服务器上)
后端技术(springboot2.x+redis4.x+httpclient+mysql+activieMq)
前端技术(html5+bootstrap+jquery)
测试要求:首页和视频详情页qps单机qps 2000+
数据库设计和字段冗余
er图
字段的冗余
部分测试数据的导入
项目基础环境搭建和逆向工程构建
IntelliJ IDEA使用教程
相关偏好里开启自动编译
Shift+Ctrl+Alt+/,选择Registry
选 compiler.automake.allow.when.app.running 重启项目就可以了
开源工具的讲解和使用
pageHeper分页拦截器,tk自动生成工具,抽象方法的利弊
开源工具:
好处:开发方便,使用简单
使用PageHelper.startPage(page, size); 开启分页
弊端:对于分库分表等情况下使用有问题,深度分页逻辑判断会复杂
mysql资料和分页优化
深度分页:MySQL大数据量分页性能优化
MySQL 百万级分页优化(Mysql千万级快速分页)
封装的讨论和选择
关于抽象和不抽象的选择,比如tk这些工具,通用mapper,service,controller
代码量大大减少,开发新模块可以马上进行使用
对应过度封装,新手等比较难理
不能保证团队里面所有人都有对应的水平,或者有高度封装的思想,也不是过度封
装,项目通用工具使用缓存操作、切换缓存等。
在线教育视频站点核心业务开发
整合mysql加入mybatis依赖,加入druid数据源
mybatis - MyBatis 3
xml配置: mybatis - MyBatis 3
mybatis3.x注解方式,增删改查,控制台打印sql语句
控制台打印sql语句,用于本地测试
mapper代码编写
数据库字段和java实体类的映射配置
完善相关接口、协议规范讲解
save接口保存对象 @RequestParam(value = "page", defaultValue)int videoI 可以设置默认值,比如分页
)@RequestBody 请求体映射实体类,需要指定http头为 content-type为application/json charset=utf-8
统一入参协议
动态sql以及使用
Mybatis之动态构建SQL语句 - 叼烟斗的纤夫 - 博客园
基本原理:通过mybatis plugin 增加拦截器,然后拼装分页
jwt微服务下的用户登录权限校验
单机和分布式应用下的登录校验,session共享,缓存使用
session保存在浏览器和应用服务器会话之间
用户登录成功,服务端会保证一个session,当然会给客户端一个sessionId,客户端会把sessionId保存在cookie中,每次请求都会携带这个sessionId
分布式应用中session共享
使用redis存储token:
服务端使用UUID生成随机64位或者128位token,放入redis中,然后返回给客户端
并存储在cookie中
用户每次访问都携带此token,服务端去redis中校验是否有此用户即可
微服务下登录检验解决方案 JWT讲解 json wen token
jwt是一个开放标, 定义一种用于简介的用于通信双方以json对象形式安全传递信息的方法
token加密前的对象不应该包含敏感信息,如用户权限,密码等
jwt格式:header+payload+signature
头部:主要是描述签名算法
负载:主要描述是加密对象的信息,如用户的id等,也可以加些规范里面的东西
签名:主要是把前面两部分进行加密,防止别人拿到token进行base解密后篡改
jwt客户端存储
登录jwt实战通用方法
引入依赖
开发生产token的方法
开发校验token的方法
微信授权用户接口开发
登录方式优缺点和一键授权功能介绍
企业获取了用户的基本资料信息,利于后续业务发推送营销类信息
用户可以用个手机号或者邮箱获取对应的app福利注册送优惠券
反馈信息的时候方便,直接报手机号即可账户出问题,被盗等
步骤多
少量不良企业贩卖个人信息,如手机号
反馈问题麻烦,比较难知道唯一标识
普通密码和核心密码区分
微信扫一扫功能开发流程和资料准备
微信开放平台介绍(申请里面的网站应用需要企业资料)
什么是appid、appsecret、授权码code
appid和appsecret是 资源所有者向申请人分配的一个id和秘钥
code是授权凭证
区分角色 用户,第三应用,微信开放平台时序图知识讲解
微信扫码连url地址获取
增加结果工具类,JsonData; 增加application.properties配置
#微信开放平台配置
拼接URL
微信扫码回调本地域名ngrock讲解
为什么要用这个,微信扫码需要配置回调,需要配置对应的域名
在本地电脑开发,微信没法回调,所以需要配置个地址映射,就是微信服务器
可以通过这个地址访问当前开发电脑的地址
使用授权码code获取用户个人信息接口
通过code获取access_token
通过access_token获取微信用户头像和昵称等基本信息
开发User数据访问层,保存微信用户信息
微信回调 用户昵称乱码
nickname = new String(nickname.getBytes("ISO-8859-1"), "UTF-8");
插入数据库
获取openid后,查询是否有此用户,如果有则不发请求去获取用户信息
方法:保存用户,根据id查询用户,根据openid查询用户
用户授权登录后生成登录凭证重定向到页面上
获取当前页面访问地址
根据User基本信息生成token
重定向到指定页面
实战开发用户登录拦截器拦截器 LoginInterceptor
实现接口 LoginInterceptor implements HandlerInterceptor
重写preHandler
配置拦截器
响应前端数据
微信扫码网页支付的介绍和使用
微信商户平台,支付方式和使用场景,申请微信支付流程
支付方式 公众号支付,扫码支付,app支付,小程序支付
微信支付申请流程
微信网页扫码支付
扫码支付文档
名称理解
和微信支付交互方式
post方式提交 xml格式的协议 签名算法MD5
交易单位为 分
交易类型:JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付
安全规范:签名算法,校验工具
微信扫码支付之统一下单接口开发之订单增删改查
微信扫码支付时序图讲解和统一下单接口
时序图地址:
统一下单接口介绍
下单接口开发和微信支付签名生成开发,并设置微信回调地址
统一下单参数需要微信签名
下单接口开发和微信支付签名生成开发
调用微信统一下单接口实战,发送post请求,并获取响应转成map,获取交易会话的二维码链接code_url。
使用谷歌二维码工具根据code_url生成扫一扫支付二维码
使用Ngrock本地接收微信回调,并开发回调接口
微信支付回调处理之更新订单状态和讲解什么是接口的幂等性
微信回调通知规则(通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)
幂等性: 同样的参数和值,不管调用你的接口多少次,响应结果都和调用一次是一样的
校验签名是否正确,防止伪造回调
查询订单是否已经更新
若没更新则更新订单状态
回应微信,SUCCESS 或者 FAIL
在线教育项目实战(微信支付)目录-上
不能保证团队里面所有人都有对应的水平,或者有高度封装的思想,也不是过度封 装,项目通用工具使用缓存操作、切换缓存等。在线教育视频站点核心业务开发 整合mysql加入mybatis依赖,加入druid数据源 mybatis - MyBatis 3 xml配置: mybatis - MyBatis 3 mybatis3.x注解方式,增删改查,控制台打印sql语...
PIC项目实战作者简介
本文由塞浦路斯近东大学计算机工程系主任,杰出的科研学者伊瓦海姆(Dogan Ibrahim)亲笔撰写,他以其深厚的学术背景和丰富的经验在科技领域独树一帜。伊瓦海姆在多个研究领域有所建树,其中包括自动化控制、微处理器设计、网络教育、远程教育以及工程教育等,展现了他的广泛兴趣和深厚的专业知识。他的学术成果...
PIC项目实战内容简介
《PIC项目实战》简介 这本专为大学高年级学生、工程技术人员以及对PIC18F系列微控制器编程与应用感兴趣的爱好者精心编写的书籍,名为《PIC项目实战》。它旨在引导读者深入实践,特别假设读者已经完成了数字逻辑设计的相关课程,并且具备一定的编程基础,至少能使用一种高级编程语言如C语言进行程序编写。拥有C...
物联网培训学校哪家好?千锋怎么样?
总而言之,虽然目前在南华附近没有直接属于千锋教育的软件测试培训机构,但您可以选择线上培训或考虑最近的千锋教育分校进行学习。千锋教育以专业的IT互联网技术培训、优质的师资团队、实践项目实战和完善的就业支持体系著称。我们致力于为学员提供全面的软件测试、Java开发和web前端培训服务。如果您对这些课程感兴趣,欢迎您...
想参加java培训,源码时代和千锋哪个比较好?;
要是不适合自己也白搭。想了解更多相关知识,建议到千锋教育了解一下。千锋拥有百人教研团队,300人教学团队,讲师均来自一线大厂兼具项目实战与教学经验,全程面授教学。千锋教育目前在18个城市拥有22个校区,年培养优质人才20000余人,与国内20000余家企业建立人才输送合作关系,院校合作超600所。
想学影视包装剪辑,邢帅教育跟泛艺学苑哪个比较靠谱?
type=2&zdhhr-2y1r-1836579560540804700 王氏教育较同类培训机构的优势:无论是创始人还是管理层都是剪辑专业的专家,了解整个产业,需求,就业,无缝深入到市场,做到投资型教育机构所不能企及的细致入微。王氏教育的课程研发也一直是行业争相模仿的对象,每个专业都由一线公司的项目总监参与研发和用人对接,...
都说软件测试是一个高薪职业,但是每个培训机构都有网友说是骗人的...
接口测试自动化,进阶高级软件测试工程师。完成项目:TestNG的批量接口执行 第六阶段、Jmeter性能测试 学习目标:Jmeter基础、进阶等。完成项目:性能测试(容量、稳定性)项目实战 第七阶段、Jenkins持续集成 学习目标:持续集成简介、持续集成环境搭建 完成项目:使用Jenkins运行接口测试用例 ...
尚硅谷和黑马程序员哪家强?
尚硅谷_Java基础实战_Bank项目_项目需求.zip 5.尚硅谷_佟刚_Java基础_Bank之8.wmv4.尚硅谷_佟刚_Java基础_Bank之7.wmv3.尚硅谷_佟刚_Java基础_Bank之6.wmv?hcie培训机构排行hcie培训机构排行前十的有光环国际、尚硅谷、泰克实验室、黑马程序员、千锋教育、传智教育、尚学堂、达内教育、弘成教育、课...
凌阳教育嵌入式培训课程有哪些内容
9.项目实战(五)《Web应用开发技术》第四阶段:嵌入式微处理器及Linux设备驱动开发 1.ARM硬件接口原理 2.嵌入式Linux设备驱动开发 3.嵌入式Linux高级驱动程序设计 4.项目实战(六)《重力感应实战系统》第五阶段:嵌入式综合复习与面试指导 1.嵌入式综合复习 2.就业面试指导 3.嵌入式Linux综合实践项目...
PIC项目实战图书目录
本书以实战为导向,详细介绍了PIC项目开发的各个方面,旨在帮助读者掌握微型计算机系统的基础知识。第1章首先从微观层面探讨微型计算机系统的工作原理和架构,为后续章节打下坚实基础。在第2章中,我们深入研究了PlC18F系列微控制器,这是项目开发中的重要组成部分,通过这一章的学习,读者将理解如何选择和...
脂思紫逗: 1、登录中国大学生在线,点击四六级考试报名入口.2、新用户需要先注册,上传一张二寸电子照片,并填写个人信息.3、进入报名界面,选择考试项目(四级或六级)、考试地点、考试时间和支付方式等信息.4、根据规定,在报名时需要进行在线支付,一般有支付宝、微信等多种支付方式可供选择.5、缴费后,需要在规定时间内确认报名信息是否准确无误.如果有误,应及时修改.6、在规定时间内,准考证将发布在考试机构的官方网站上,考生可以登录官网打印准考证.
市南区18045994709: 如何填写支付授权目录 - ?
脂思紫逗: 财政授权支付指令填写方法: 2007年 财政授权支付指令填写有所变化,支票(或其他支付结算凭证)"附加信息"应需填写的数码由8位改为12位.即: 预算管理类型1位(基本支出为1,项目支出为2); 功能分类7位(即类款项,编码不足7...
市南区18045994709: 微信零钱明细的记录可以删除吗 - ?
脂思紫逗: 微信零钱明细的记录可以删除. 1、首先,进入自己的微信,点击【钱包】. 2、打开手机微信--我--钱包--点击右上角. 3、进入支付中心,选择交易记录并进入. 4、这里可以看到全部的交易明细. 5、选中想要删除的向右滑动,或者...
市南区18045994709: 关于东亚(在哪啊)最大华纳电影世界的资料~~ - ?
脂思紫逗: 华纳兄弟电影世界主题公园位于澳大利亚昆士兰州的黄金海岸冲浪者天堂以北18公里处,以其独特的设计风格,诱人的娱乐项目,丰富的表演节目而闻名于世界. 东亚好象没有啊
市南区18045994709: 数据库连接错误 请确认进行了数据库初始化 怎么解决 - ?
脂思紫逗: 如果你是在windows下使用C++访问数据库,很可能是因为你没有初始化COM组件,相应的函数调用为CoInitialize(0); // 初始化COM// 你的代码CoUniniti...
市南区18045994709: cmd java 找不到或无法加载主类,java安装目录是D:\Program Files\Java\jdk1.7.0 - 09,环境变量path, - ?
脂思紫逗: 1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.7.0_09 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;...