1. 打开蚂蚁金服开放平台
2 . 用自己的支付宝扫一扫登录
3. 点击进入我的开放平台
(1)点击开发中心-研发服务-沙箱
(2)进入沙箱应用
其中APPID,支付网关默认生成好了,网关有dev字样,表明是用于开发测试。
其中的密钥需要自己生成
a. 设置密钥
点击“生成方法”,打开界面如下图
b. 下载密钥生成工具,解压打开后,双击脚本文件 “RSA签名验签工具.bat” 即运行RSA签名验签工具,选择PKCS8(Java适用)和2048位生成密钥:
如果没有设置过,此时显示文本是“设置应用公钥”,我这里是已经设置过得,设置过得可以永久使用了。
沙箱账号
提供了商家账号与买家账号进行测试使用
项目展示效果
商品列表
确认订单
生成订单
支付宝扫码支付
支付成功
交易完成,正在跳转到商户页面
购买成功,生成流水
基于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(支付流程)
支付流程图
代码详见idea中实现
基于SSM框架实现,此处省略SSM框架配置,只提供有关订单的核心配置与代码。