You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
test1/ticketing-master/src/com/cn/servlet/PayServlet.java

117 lines
4.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.cn.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.cn.domain.Prep;
import com.cn.service.PrepService;
import com.cn.service.impl.PrepServiceImpl;
/**
*
* @ClassName: PayServlet
* @Description: 用户付款的Servlet
* @author: ljy
* @date: 2019年9月28日 下午10:38:37
*/
public class PayServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* 处理GET请求的方法。
* 当客户端发送GET请求到此Servlet时这个方法会被调用。
* @param request HttpServletRequest对象包含客户端请求信息。
* @param response HttpServletResponse对象用于发送响应到客户端。
* @throws ServletException 可能抛出的Servlet异常。
* @throws IOException 可能抛出的IO异常。
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取请求参数temp用于判断是否是从支付宝支付接口回跳来的
String temp = request.getParameter("temp");
// 判断是否是从支付宝支付接口回跳来的
if (temp != null && "1".equals(temp)) {
// 获取订单ID
Integer prepId = Integer.valueOf(request.getParameter("prepId"));
// 创建PrepService的实现类对象用于访问订单相关的业务逻辑
PrepService prepService = new PrepServiceImpl();
// 根据订单ID获取订单对象
Prep prep = prepService.getById(prepId);
// 设置付款状态为真
prep.setWay(true);
// 更新订单对象
int recordNumber = prepService.update(prep);
// 获取PrintWriter对象用于向客户端发送响应
PrintWriter out = response.getWriter();
// 判断更新是否成功
if (recordNumber == 1) {
// 如果成功,弹出提示并跳转到会员中心
out.write("<script>alert('付款成功!');" + "window.location.href='pages/user/myCenter/myCenter.jsp'</script>");
} else {
// 如果失败,弹出提示并跳转到我的订单页面
out.write("<script>alert('很抱歉,付款失败!');" + "window.location.href='MyPrepServlet'</script>");
}
// 关闭PrintWriter对象
out.close();
}
// 获取订单ID
Integer prepId = Integer.valueOf(request.getParameter("prepId"));
// 创建PrepService的实现类对象
PrepService prepService = new PrepServiceImpl();
// 根据订单ID获取订单对象
Prep prep = prepService.getById(prepId);
// 将订单对象设置为request属性以便在支付页面中可以访问
request.setAttribute("prep", prep);
// 转发请求到支付接口调用的Servlet
request.getRequestDispatcher("AlipayServlet").forward(request, response);
// 支付接口调用 end
/* 沙箱服务器在每周日12点至周一12点维护如调用接口失效 1.将本段解除注释2.将 上面代码全部注释
Integer prepId = Integer.valueOf(request.getParameter("prepId")); PrepService
prepService = new PrepServiceImpl();
Prep prep = prepService.getById(prepId);
prep.setWay(true); int recordNumber = prepService.update(prep);
PrintWriter out = response.getWriter();
if(recordNumber == 1) {
out.write("<script>alert('付款成功!');" +
"window.location.href='MyPrepServlet'</script>");
} else {
out.write("<script>alert('很抱歉,付款失败!');" +
"window.location.href='MyPrepServlet'</script>"); }
out.close();
*/
}
/**
* 处理POST请求的方法。
* 当客户端发送POST请求时这个方法会被调用。
* @param request HttpServletRequest对象包含客户端请求信息。
* @param response HttpServletResponse对象用于发送响应到客户端。
* @throws ServletException 可能抛出的Servlet异常。
* @throws IOException 可能抛出的IO异常。
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}