支付宝沙箱支付--SpringBoot项目

简介: 练手demo

1. 打开蚂蚁金服开放平台

https://open.alipay.com/platform/home.htm

2 . 用自己的支付宝扫一扫登录

3. 点击进入我的开放平台

1.png

(1)点击开发中心-研发服务-沙箱

2.png

(2)进入沙箱应用

其中APPID,支付网关默认生成好了,网关有dev字样,表明是用于开发测试。

其中的密钥需要自己生成

3.png

a. 设置密钥

4.png

点击“生成方法”,打开界面如下图

5.png

b. 下载密钥生成工具,解压打开后,双击脚本文件 “RSA签名验签工具.bat” 即运行RSA签名验签工具,选择PKCS8(Java适用)和2048位生成密钥:

6.png

如果没有设置过,此时显示文本是“设置应用公钥”,我这里是已经设置过得,设置过得可以永久使用了。

沙箱账号

提供了商家账号与买家账号进行测试使用

17.png

项目展示效果

商品列表

15.png

确认订单

16.png

生成订单

16.png

支付宝扫码支付

9.png

支付成功

10.png

交易完成,正在跳转到商户页面

11.png

购买成功,生成流水

基于SpringBoot的蚂蚁金服支付实现

  • 项目架构:SpringBoot+Mybatis+Druid
  • 数据库:MySQL
  • 部署环境:Tomcat8.0
  • 开发环境:JDK8.0、IDEA
  • 支付:支付宝

数据库代码

主要包括以下的数据库表:

  • user:用户表
  • orders:支付产生的订单
  • flow:流水账
  • product:商品表:用于模拟购买商品。


user:用户表
------------------ Table structure for user-- ----------------------------DROPTABLE IF EXISTS `user`;CREATETABLE `user`  (  `id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOTNULL,  `username` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET= utf8 COLLATE = utf8_general_ci COMMENT ='用户表' ROW_FORMAT = Compact; product:商品表
-- ------------------------------ Table structure for product-- ----------------------------DROPTABLE IF EXISTS `product`;CREATETABLE `product`  (  `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOTNULL,  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '产品名称',  `price` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '价格',  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET= utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='产品表 ' ROW_FORMAT = Compact;order:支付产生的订单
-- ------------------------------ Table structure for orders-- ----------------------------DROPTABLE IF EXISTS `orders`;CREATETABLE `orders`  (  `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOTNULL,  `order_num` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单号',  `order_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单状态\r\n            10:待付款\r\n            20:已付款',  `order_amount` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单金额',  `paid_amount` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实际支付金额',  `product_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '产品表外键ID',  `buy_counts` int(11)NULL DEFAULT NULL COMMENT '产品购买的个数',  `create_time` datetimeNULL DEFAULT NULL COMMENT '订单创建时间',  `paid_time` datetimeNULL DEFAULT NULL COMMENT '支付时间',  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET= utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='订单表' ROW_FORMAT = Compact;flow:流水账
-- ------------------------------ Table structure for flow-- ----------------------------DROPTABLE IF EXISTS `flow`;CREATETABLE `flow`  (  `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOTNULL,  `flow_num` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流水号',  `order_num` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单号',  `product_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '产品主键ID',  `paid_amount` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付金额',  `paid_method` int(11)NULL DEFAULT NULL COMMENT '支付方式\r\n            1:支付宝\r\n            2:微信',  `buy_counts` int(11)NULL DEFAULT NULL COMMENT '购买个数',  `create_time` datetimeNULL DEFAULT NULL COMMENT '创建时间',  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET= utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='流水表' ROW_FORMAT = Compact;

Mapper数据接口层

可以使用通用mapper,或者逆向工程就行。

支付宝支付controller(支付流程)

支付流程图

支付流程.png

代码详见idea中实现

基于SSM框架实现,此处省略SSM框架配置,只提供有关订单的核心配置与代码。


目录
相关文章
|
8月前
|
前端开发 Java Maven
96.【SpringBoot接入支付宝-thymeleaf-springBoot】
96.【SpringBoot接入支付宝-thymeleaf-springBoot】
138 0
|
9月前
SpringBoot+支付宝:实现沙箱支付全过程
SpringBoot+支付宝:实现沙箱支付全过程
509 0
|
Java
Springboot集成第三方jar快速实现微信、支付宝等支付场景
Springboot集成第三方jar快速实现微信、支付宝等支付场景
546 0
Springboot集成第三方jar快速实现微信、支付宝等支付场景
|
15小时前
|
消息中间件 JSON Java
Springboot支付宝沙箱支付---完整详细步骤
Springboot支付宝沙箱支付---完整详细步骤
676 0
|
15小时前
|
消息中间件 数据库 RocketMQ
Springboot+RocketMQ通过事务消息优雅的实现订单支付功能
RocketMQ的事务消息,是指发送消息事件和其他事件需要同时成功或同时失败。比如银行转账, A银行的某账户要转一万元到B银行的某账户。A银行发送“B银行账户增加一万元”这个消息,要和“从A银 行账户扣除一万元”这个操作同时成功或者同时失败。RocketMQ采用两阶段提交的方式实现事务消息。
136 0
|
15小时前
|
Java 开发工具
解决SpringBoot集成支付宝支付中文订单描述验签错误问题
解决SpringBoot集成支付宝支付中文订单描述验签错误问题
39 0
|
9月前
|
机器学习/深度学习 JavaScript 前端开发
2023最新之 教你如何使用Springboot集成支付宝沙箱支付(支持回调- 亲测有效)
2023最新之 教你如何使用Springboot集成支付宝沙箱支付
531 0
|
11月前
|
Java 开发工具 git
Springboot实现支付宝沙箱支付功能(下)
Springboot实现支付宝沙箱支付功能(下)
|
11月前
|
XML 人工智能 Java
Springboot实现支付宝沙箱支付功能(上)
Springboot实现支付宝沙箱支付功能(上)
|
12月前
|
XML JSON 前端开发
Springboot+MyBatisPlus+Mysql+vue实现支付宝支付
Springboot+MyBatisPlus+Mysql+vue实现支付宝支付