微信支付开发,基于SpringBoot+Vue架构的Java在线支付项目

目录

本项目主要通过以下链接进行学习

【尚硅谷】微信支付开发,基于SpringBoot+Vue架构的Java在线支付视频教程

这篇文章结合了自已的思考以及笔记

该项目主要是基于

后端技术有:springboot+springmvc+restful+vue+mybatis-plus+mysql

前端技术有:html+css+vue

本文的框架主要介绍

  • 微信支付的一些引言,关于支付的证书、密钥以及签名
  • 项目的构建到实现
  • 基础支付API接口

本文的框架涉及的知识点 可看我之前的文章

基础知识:

  1. java零基础从入门到精通(全)
  2. javaSE从入门到精通的二十万字总结(一)
  3. javaSE从入门到精通的二十万字总结(二)
  4. javaSE从入门到精通的二十万字总结(三)

服务端:

  1. Spring框架从入门到学精(全)
  2. SpringMVC从入门到精通(全)
  3. Mybatis从入门到精通(全)
  4. MyBatis-plus从入门到精通(全)

数据库:

  1. 数据库中增删改常用语法语句(全)
  2. 数据库查询常用语句语法

web服务器: Tomcat详细配置(全)

项目管理:

  1. Maven实战从入门到精通(全)
  2. Maven详细配置(全)

前端知识点:

  1. html从入门到精通(全)
  2. css属性从入门到精通(全)
  3. JavaScript从入门到精通(全)

1. 支付安全

  • 明文:加密前的消息叫“明文”(plain text)
  • 密文:加密后的文本叫“密文”(cipher text)
  • 密钥:只有掌握特殊“钥匙”的人,才能对加密的文本进行解密,这里的“钥匙”就叫做“密钥”(key)

按照密钥的使用方式,加密可以分为两大类:对称加密和非对称加密

1.1 对称加密和非对称加密

对称加密

特点:只使用一个密钥,密钥必须保密,常用的有 AES算法

  • 优点:运算速度快
  • 缺点:秘钥需要信息交换的双方共享,一旦被窃取,消息会被破解,无法做到安全的密钥交换

非对称加密

特点:使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,常用的有 RSA

  • 优点:黑客获取公钥无法破解密文,解决了密钥交换的问题
  • 缺点:运算速度非常慢

1.2 身份认证

  • 公钥加密,私钥解密的作用是加密信息
  • 私钥加密,公钥解密的作用是身份认证

一般来说公钥加密之后,公钥都是公开的,通过私钥进行解密

而如果反过来,通过私钥加密,公钥解密,那就是身份认证,专属自已的唯一钥匙

1.3 摘要算法

主要为了保证数据没有被修改过,保证信息的完整性

摘要算法就是我们常说的散列函数、哈希函数(Hash Function),它能够把任意长度的数据“压缩”成

固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”。

主要的特性有:

  • 不可逆:只有算法,没有秘钥,只能加密,不能解密
  • 难题友好性:想要破解,只能暴力枚举
  • 发散性:只要对原文进行一点点改动,摘要就会发生剧烈变化
  • 抗碰撞性:原文不同,计算后的摘要也要不同

为了凸显数据的完整性,通过加入摘要算法,将其添加进数据中

而拿到数据的人为了验证数据完整性,通常也要通过摘要算法,也就是哈希,判断数据前后是否一致,依次判定是否有修改

但如果中间被截获,生成新的摘要算法,很难判断是否又被其他人修改

1.4 数字签名和数字证书

数字签名:

将数据通过摘要算法之后还要再用私钥加密变成数字签名

而获得数据的人,需要通过公钥进行解密以及通过摘要算法来验证数据的完整性

上面的公钥可以伪造

为此多了一个数字证书

数字证书:

数字证书解决“公钥的信任”问题,可以防止黑客伪造公钥。

不能直接分发公钥,公钥的分发必须使用数字证书,数字证书由CA颁发

具体数字证书生成流程如下:

通过哈希算法也就是摘要算法生成信息再通过CA的私钥加密变成数字证书

A用数字证书发送数据,B取到数据后,通过哈希算法也就是摘要算法进行确定完整性,再通过CA的公钥判定是否可以取出,取出之后就是A的公钥了。B再用取到的A公钥进行解密,以及摘要算法确定数据的完整性

在科普一下https的数字证书:

2. 项目初期

2.1 构建测试

创建springboot的项目

通过idea编译器 new 一个spring initializr的项目,java8的版本

以及服务器使用 https://start.aliyun.com ,会比较快

具体关于springboot的相关知识可看我之前的文章

springboot从入门到精通(全)

此处修改以下pom文件下的依赖文件改成web,主要为了网页的启动

<!--web-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置一个端口号(资源文件下)

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包各个版本)

2.2 引入Swagger

自动生成接口文档和相关的测试界面

测试get post delete等界面的时候比较方便

一个是依赖文件一个是ui的展示界面依赖包

<!--Swagger-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
</dependency>
<!--Swagger ui-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
</dependency>

配置一个配置类

通过bean对象注入

如一个文本的文档对象

import org.springframework.context.annotation.Bean;
import or
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
智能停车管理系统源码是使用Java语言结合Spring Boot框架与Vue框架开发的一套完整的系统。这个系统不仅包含了后台管理系统,还有一个基于小程序的移动端应用。 在后台管理系统中,我们使用了Spring Boot框架来搭建整个系统的基础架构。Spring Boot提供了一种简化开发的方式,能够快速搭建一个可靠的、高效的系统。同时,我们还使用了Spring MVC来处理前后端的数据交互,这样可以实现一个稳定、可拓展的后台管理系统。 在前端部分,我们使用了Vue框架来开发前端页面。Vue是一款灵活、高效的前端框架,能够帮助我们快速构建界面。我们使用Vue来编写各种页面以及前端的交互逻辑。同时,我们还使用了Element UI作为UI组件库,这样可以让整个系统的界面更加美观、易用。 此外,我们还开发了基于小程序的移动端应用。小程序是一种非常流行的移动端应用开发方式,它不需要用户下载安装,即可直接使用。我们使用了微信小程序开发工具来开发这个移动端应用,并使用了原生语言开发。这个应用可以让用户实现停车场选择、车位预定、支付等功能。 总的来说,这个智能停车管理系统源码是基于Java语言、Spring Boot框架和Vue框架开发的。它包含了后台管理系统和小程序移动端应用,能够满足用户对停车管理的需求。无论是在后台管理端还是移动端,用户可以实现便捷的停车管理操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值