Spring MVC(2),Redis-RESP协议与AOF持久化有什么关系

(5) 页面跳转同步通知页面的路径(return_url)

http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp

4.测试运行

测试用的支付宝买家账户可以在"沙箱账"这个页面可以找到:

支付成功后,验签结果:

问题解决

由于我们使用的是沙箱测试环境,测试环境和正式上线的环境的网关是不一样的,如果配置错误,会出现,appid错误的问题。配置如下:

源代码下载

链接: https://pan.baidu.com/s/1n6GbEJiMzoGWJrSw0bb2Cg 密码: zd9e

将支付宝支付整合到ssm框架

1、项目架构

  • 项目架构:spring+springmvc+mybatis

  • 数据库:mysql

  • 部署环境:tomcat9.0

  • 开发环境:jdk9、idea

  • 支付:支付宝、微信

整合到ssm一样,我们需要像沙箱测试环境一样,需要修改支付的配置信息

2、数据库代码

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

  • user:用户表

  • order:支付产生的订单

  • flow:流水账

  • product:商品表:用于模拟购买商品。

drop table if exists user;

/*==============================================================*/

/* Table: user                                                  */

/*==============================================================*/

create table user

(

id                   varchar(20) not null,

username             varchar(128),

sex                  varchar(20),

primary key (id)

);

alter table user comment ‘用户表’;

CREATE TABLE `flow` (

`id` varchar(20) NOT NULL,

`flow_num` varchar(20) DEFAULT NULL COMMENT ‘流水号’,

`order_num` varchar(20) DEFAULT NULL COMMENT ‘订单号’,

`product_id` varchar(20) DEFAULT NULL COMMENT ‘产品主键ID’,

`paid_amount` varchar(11) DEFAULT NULL COMMENT ‘支付金额’,

`paid_method` int(11) DEFAULT NULL COMMENT ‘支付方式\r\n            1:支付宝\r\n            2:微信’,

`buy_counts` int(11) DEFAULT NULL COMMENT ‘购买个数’,

`create_time` datetime DEFAULT NULL COMMENT ‘创建时间’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=‘流水表’;

CREATE TABLE `orders` (

`id` varchar(20) NOT NULL,

`order_num` varchar(20) DEFAULT NULL COMMENT ‘订单号’,

`order_status` varchar(20) DEFAULT NULL COMMENT ‘订单状态\r\n            10:待付款\r\n            20:已付款’,

`order_amount` varchar(11) DEFAULT NULL COMMENT ‘订单金额’,

`paid_amount` varchar(11) DEFAULT NULL COMMENT ‘实际支付金额’,

`product_id` varchar(20) DEFAULT NULL COMMENT ‘产品表外键ID’,

`buy_counts` int(11) DEFAULT NULL COMMENT ‘产品购买的个数’,

`create_time` datetime DEFAULT NULL COMMENT ‘订单创建时间’,

`paid_time` datetime DEFAULT NULL COMMENT ‘支付时间’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=‘订单表’;

CREATE TABLE `product` (

`id` varchar(20) NOT NULL,

`name` varchar(20) DEFAULT NULL COMMENT ‘产品名称’,

`price` varchar(11) DEFAULT NULL COMMENT ‘价格’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品表 ';

3、dao数据接口层

这里就不介绍了,这个只包括简单的curd,可以使用`通用mapper`,或者`逆向工程`就行。以订单order为例给出:

public interface OrdersMapper {

int countByExample(OrdersExample example);

int deleteByExample(OrdersExample example);

int deleteByPrimaryKey(String id);

int insert(Orders record);

int insertSelective(Orders record);

List selectByExample(OrdersExample example);

Orders selectByPrimaryKey(String id);

int updateByExampleSelective(@Param(“record”) Orders record, @Param(“example”) OrdersExample example);

int updateByExample(@Param(“record”) Orders record, @Param(“example”) OrdersExample example);

int updateByPrimaryKeySelective(Orders record);

int updateByPrimaryKey(Orders record);

}

注意:源代码最后给出

4、service层

同上,最后在项目源代码里可见。 以订单order为例给出:

/**

* 订单操作 service

* @author ibm

*

*/

public interface OrdersService {

/**

* 新增订单

* @param order

*/

public void saveOrder(Orders order);

/**

*

* @Title: OrdersService.java

* @Package com.sihai.service

* @Description: 修改叮当状态,改为 支付成功,已付款; 同时新增支付流水

* Copyright: Copyright © 2017

* Company:FURUIBOKE.SCIENCE.AND.TECHNOLOGY

*

* @author sihai

* @date 2017年8月23日 下午9:04:35

* @version V1.0

*/

public void updateOrderStatus(String orderId, String alpayFlowNum, String paidAmount);

/**

* 获取订单

* @param orderId

* @return

*/

public Orders getOrderById(String orderId);

}

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

支付流程图

首先,启动项目后,输入http://localhost:8080/,会进入到商品页面,如下:

下面是页面代码

商品页面(products.jsp)

代码实现:

<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

<%@ taglib uri=“http://java.sun.com/jsp/jstl/functions” prefix=“fn” %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值