本项目主要通过以下链接进行学习
【尚硅谷】微信支付开发,基于SpringBoot+Vue架构的Java在线支付视频教程
这篇文章结合了自已的思考以及笔记
该项目主要是基于
后端技术有:springboot+springmvc+restful+vue+mybatis-plus+mysql
前端技术有:html+css+vue
本文的框架主要介绍
本文的框架涉及的知识点 可看我之前的文章
基础知识:
服务端:
数据库:
web服务器: Tomcat详细配置(全)
项目管理:
前端知识点:
按照密钥的使用方式,加密可以分为两大类:对称加密和非对称加密
对称加密
特点:只使用一个密钥,密钥必须保密,常用的有 AES算法
非对称加密
特点:使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,常用的有 RSA
一般来说公钥加密之后,公钥都是公开的,通过私钥进行解密
而如果反过来,通过私钥加密,公钥解密,那就是身份认证,专属自已的唯一钥匙
主要为了保证数据没有被修改过,保证信息的完整性
摘要算法就是我们常说的散列函数、哈希函数(Hash Function),它能够把任意长度的数据“压缩”成
固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”。
主要的特性有:
为了凸显数据的完整性,通过加入摘要算法,将其添加进数据中
而拿到数据的人为了验证数据完整性,通常也要通过摘要算法,也就是哈希,判断数据前后是否一致,依次判定是否有修改
但如果中间被截获,生成新的摘要算法,很难判断是否又被其他人修改
数字签名:
将数据通过摘要算法之后还要再用私钥加密变成数字签名
而获得数据的人,需要通过公钥进行解密以及通过摘要算法来验证数据的完整性
上面的公钥可以伪造
为此多了一个数字证书
数字证书:
数字证书解决“公钥的信任”问题,可以防止黑客伪造公钥。
不能直接分发公钥,公钥的分发必须使用数字证书,数字证书由CA颁发
具体数字证书生成流程如下:
通过哈希算法也就是摘要算法生成信息再通过CA的私钥加密变成数字证书
A用数字证书发送数据,B取到数据后,通过哈希算法也就是摘要算法进行确定完整性,再通过CA的公钥判定是否可以取出,取出之后就是A的公钥了。B再用取到的A公钥进行解密,以及摘要算法确定数据的完整性
在科普一下https的数字证书:
创建springboot的项目
通过idea编译器 new 一个spring initializr的项目,java8的版本
以及服务器使用 https://start.aliyun.com
,会比较快
具体关于springboot的相关知识可看我之前的文章
springboot从入门到精通(全)
此处修改以下pom文件下的依赖文件改成web,主要为了网页的启动
org.springframework.boot spring-boot-starter-web
配置一个端口号(资源文件下)
server: port: 8090 #服务端口 spring: application: name: payment-demo #应用的名字
配置一个界面,进行测试springboot的启动
@RestController //主要是为了传输json数据的一个注解 @RequestMapping("/api/product") public class ProductController { @GetMapping("/test") public String test(){ return "hello"; } }
在浏览器中输入url为
http://localhost:8090/api/product/test 进行测试
几个注意事项:
在搭建springboot的时候
使用maven管理jar包的时候不要混乱使用版本号
(注解不要混乱使用jar包各个版本)
自动生成接口文档和相关的测试界面
测试get post delete等界面的时候比较方便
一个是依赖文件一个是ui的展示界面依赖包
io.springfox springfox-swagger2 2.7.0 io.springfox springfox-swagger-ui 2.7.0
配置一个配置类
通过bean对象注入
如一个文本的文档对象
import org.springframework.context.annotation.Bean; import org.springfra