package yanggc.servlets;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import yanggc.base.BaseServlet;
import yanggc.domain.Cart;
import yanggc.domain.CartItem;
import yanggc.domain.OrderItem;
import yanggc.domain.Orders;
import yanggc.domain.User;
import yanggc.service.OrderService;
import yanggc.serviceImp.OrderServiceImp;
import yanggc.utils.PageModel;
import yanggc.utils.PaymentUtil;
import yanggc.utils.UUIDUtils;
public class OrderServlet extends BaseServlet {
private static final long serialVersionUID = 1L;
public String saveOrder(HttpServletRequest request, HttpServletResponse response) throws Exception {
User user = (User) request.getSession().getAttribute("user");
if(null == user) {
request.setAttribute("msg", "请登录后再进行相关操作...");
request.getRequestDispatcher("yanggengchen_v3.0/jsp/info.jsp");
return "/jsp/info.jsp";
}
Cart cart = (Cart) request.getSession().getAttribute("cart");
if(null == cart) {
cart = new Cart();
request.getSession().setAttribute("cart", cart);
}
Orders orders = new Orders();
//订单对象赋予属性
orders.setOid(UUIDUtils.getId());
orders.setOrdertime(new Date());
orders.setTotal(cart.getTotal());
orders.setUser(user);
orders.setState(1);
//遍历购物车上的map
for ( CartItem ct : cart.getCartItems()) {
OrderItem orderItem = new OrderItem();
orderItem.setItemid(UUIDUtils.getId());
orderItem.setProduct(ct.getPro());
orderItem.setOrders(orders);
orderItem.setQuantity(ct.getNum());
orderItem.setTotal(ct.getSubTotal());
orders.getList().add(orderItem);
}
OrderServiceImp orderService = new OrderServiceImp();
orderService.saveOrder(orders);
System.out.println("订单信息已经持久化....");
cart.clearCart();
request.setAttribute("order", orders);
return "/jsp/order_info.jsp";
}
public String findOrderByOid(HttpServletRequest request, HttpServletResponse response) throws Exception {
String oid = request.getParameter("oid");
OrderServiceImp orderService = new OrderServiceImp();
Orders order = orderService.findOrderByOid(oid);
request.setAttribute("order", order);
return "/jsp/order_info.jsp";
}
public String findMyOrdersWithPage(HttpServletRequest request, HttpServletResponse response) throws Exception {
User user = (User)request.getSession().getAttribute("user");
int num = Integer.parseInt(request.getParameter("num"));
OrderServiceImp orderService = new OrderServiceImp();
PageModel pm = orderService.findMyOrdersWithPage(user, num);
System.out.println("pm="+pm);
System.out.println("page.list="+pm.getList());
request.setAttribute("page", pm);
return "/jsp/order_list.jsp";
}
/*//payOrder
public String payOrder(HttpServletRequest request, HttpServletResponse response) throws Exception {
//接收5个参数
System.out.println("进入payOrder方法....");
String oid=request.getParameter("oid");
String name=request.getParameter("name");
String address=request.getParameter("address");
String telephone=request.getParameter("telephone");
String pd_FrpId=request.getParameter("pd_FrpId");
//根据订单OID查询订单,目的:获取金额
OrderService orderService=new OrderServiceImp();
Orders order=orderService.findOrderByOid(oid);
System.out.println("oid="+oid+"name="+name+"address="+address+"telephone="+telephone);
//更新订单3个属性
order.setAddress(address);
order.setName(name);
order.setTelephone(telephone);
orderService.updateOrder(order);
//拼凑原文+密文,向易宝支付发起请求
// 把付款所需要的参数准备好:
String p0_Cmd = "Buy";
//商户编号
String p1_MerId = "10001126856";
//订单编号
String p2_Order = oid;
//金额
String p3_Amt = "0.01";
String p4_Cur = "CNY";
String p5_Pid = "";
String p6_Pcat = "";
String p7_Pdesc = "";
//接受响应参数的Servlet
String p8_Url = "http://localhost:8080/yanggengchen_v3.0/OrderServlet?method=callBack";
String p9_SAF = "";
String pa_MP = "";
String pr_NeedResponse = "1";
//公司的秘钥
String keyValue = "69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
//调用易宝的加密算法,对所有数据进行加密,返回电子签名
String hmac = PaymentUtil.buildHmac(p0_Cmd, p1_MerId, p2_Order, p3_Amt, p4_Cur, p5_Pid, p6_Pcat, p7_Pdesc, p8_Url, p9_SAF, pa_MP, pd_FrpId, pr_NeedResponse, keyValue);
StringBuffer sb = new StringBuffer("https://www.yeepay.com/app-merchant-proxy/node?");
sb.append("p0_Cmd=").append(p0_Cmd).append("&");
sb.append("p1_MerId=").append(p1_MerId).append("&");
sb.append("p2_Order=").append(p2_Order).append("&");
sb.append("p3_Amt=").append(p3_Amt).append("&");
sb.append("p4_Cur=").append(p4_Cur).append("&");
sb.append("p5_Pid=").append(p5_Pid).append("&");
sb.append("p6_Pcat=").append(p6_Pcat).append("&");
sb.append("p7_Pdesc=").append(p7_Pdesc).append("&");
sb.append("p8_Url=").append(p8_Url).append("&");
sb.append("p9_SAF=").append(p9_SAF).append("&");
sb.append("pa_MP=").append(pa_MP).append("&");
sb.append("pd_FrpId=").append(pd_FrpId).append("&");
sb.append("pr_NeedResponse=").append(pr_NeedResponse).append("&");
sb.append("hmac=").append(hmac);
System.out.println(sb.toString());
// 使用重定向:
response.sendRedirect(sb.toString());
return null;
}
public String callBack(HttpServletRequest request, HttpServletResponse response) throws Exception {
//接受支付结果,判断如果支付成功,更新订单状态,做对应的提示
// 验证请求来源和数据有效性
// 阅读支付结果参数说明
// System.out.println("==============================================");
String p1_MerId = request.getParameter("p1_MerId");
String r0_Cmd = request.getParameter("r0_Cmd");
String r1_Code = request.getParameter("r1_Code");
String r2_TrxId = request.getParameter("r2_TrxId");
String r3_Amt = request.getParameter("r3_Amt");
String r4_Cur = request.getParameter("r4_Cur");
String r5_Pid = request.getParameter("r5_Pid");
String r6_Order = request.getParameter("r6_Order");
String r7_Uid = request.getParameter("r7_Uid");
String r8_MP = request.getParameter("r8_MP");
String r9_BType = request.getParameter("r9_BType");
String rb_BankId = request.getParameter("rb_BankId");
String ro_BankOrderId = request.getParameter("ro_BankOrderId");
String rp_PayDate = request.getParameter("rp_PayDate");
String rq_CardNo = request.getParameter("rq_CardNo");
String ru_Trxtime = request.getParameter("ru_Trxtime");
// hmac
String hmac = request.getParameter("hmac");
// 利用本地密钥和加密算法 加密数据
String keyValue = "69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
boolean isValid = PaymentUtil.verifyCallback(hmac, p1_MerId, r0_Cmd,
r1_Code, r2_TrxId, r3_Amt, r4_Cur, r5_Pid, r6_Order, r7_Uid,
r8_MP, r9_BType, keyValue);
if (isValid) {
// 有效
if (r9_BType.equals("1")) {
// 浏览器重定向
response.setContentType("text/html;charset=utf-8");
//更新订单状态
OrderService OrderService=new OrderServiceImp();
Orders order=OrderService.findOrderByOid(r6_Order);
order.setState(2);
OrderService.updateOrder(order);
//response.getWriter().println("支付成功!订单号:" + r6_Order + "金额:" + r3_Amt);
request.setAttribute("msg", "支付成功!订单号:" + r6_Order + "金额:" + r3_Amt);
return "/jsp/info.jsp";
}
} else {
request.setAttribute("msg", "数据被篡改");
throw new RuntimeException("数据被篡改!");
}
return "/jsp/info.jsp";
}*/
没有合适的资源?快使用搜索试试~ 我知道了~
基于JavaWeb的在线商城.zip
共1639个文件
jpg:616个
gif:298个
png:173个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 4 下载量 111 浏览量
2023-10-29
11:26:40
上传
评论
收藏 90.94MB ZIP 举报
温馨提示
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 -------- 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
基于JavaWeb的在线商城.zip (1639个子文件)
common.css.bak 19KB
common.css.bak 19KB
common.css.bak 19KB
common.css.bak 19KB
ningbo.bmp 6KB
hx.bmp 6KB
gf.bmp 6KB
zx.bmp 6KB
pingan.bmp 6KB
shpd.bmp 6KB
post.bmp 6KB
ccb.bmp 6KB
bh.bmp 6KB
zheshang.bmp 6KB
dy.bmp 6KB
abc.bmp 6KB
icbc.bmp 6KB
cmbc.bmp 6KB
beijingnongshang.bmp 6KB
cib.bmp 6KB
bj.bmp 6KB
bc.bmp 6KB
guangda.bmp 6KB
sfz.bmp 6KB
bcc.bmp 6KB
sh.bmp 6KB
nanjing.bmp 6KB
cmb.bmp 6KB
pingan.bmp 6KB
cmb.bmp 6KB
ccb.bmp 6KB
gf.bmp 6KB
dy.bmp 6KB
abc.bmp 6KB
hx.bmp 6KB
cmbc.bmp 6KB
post.bmp 6KB
beijingnongshang.bmp 6KB
bj.bmp 6KB
sfz.bmp 6KB
zx.bmp 6KB
zheshang.bmp 6KB
bh.bmp 6KB
cib.bmp 6KB
sh.bmp 6KB
bcc.bmp 6KB
nanjing.bmp 6KB
shpd.bmp 6KB
icbc.bmp 6KB
bc.bmp 6KB
guangda.bmp 6KB
ningbo.bmp 6KB
abc.bmp 6KB
cmb.bmp 6KB
beijingnongshang.bmp 6KB
zx.bmp 6KB
bj.bmp 6KB
sh.bmp 6KB
pingan.bmp 6KB
hx.bmp 6KB
sfz.bmp 6KB
cmbc.bmp 6KB
ccb.bmp 6KB
post.bmp 6KB
gf.bmp 6KB
icbc.bmp 6KB
cib.bmp 6KB
dy.bmp 6KB
guangda.bmp 6KB
ningbo.bmp 6KB
bcc.bmp 6KB
bh.bmp 6KB
bc.bmp 6KB
zheshang.bmp 6KB
shpd.bmp 6KB
nanjing.bmp 6KB
cmb.bmp 6KB
gf.bmp 6KB
pingan.bmp 6KB
hx.bmp 6KB
nanjing.bmp 6KB
dy.bmp 6KB
beijingnongshang.bmp 6KB
ccb.bmp 6KB
zx.bmp 6KB
post.bmp 6KB
cib.bmp 6KB
sh.bmp 6KB
bcc.bmp 6KB
icbc.bmp 6KB
shpd.bmp 6KB
cmbc.bmp 6KB
bc.bmp 6KB
bj.bmp 6KB
bh.bmp 6KB
ningbo.bmp 6KB
abc.bmp 6KB
guangda.bmp 6KB
sfz.bmp 6KB
zheshang.bmp 6KB
共 1639 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17
资源评论
- 菜菜酱今天也在努力学习编程!2023-12-24资源值得借鉴的内容很多,那就浅学一下吧,值得下载!
- Esther1112222024-04-29发现一个宝藏资源,资源有很高的参考价值,赶紧学起来~
- bzdsmm12024-05-15怎么能有这么好的资源!只能用感激涕零来形容TAT...
程皮
- 粉丝: 258
- 资源: 2554
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功