手里的项目没有支付宝相关的代码 比较遗憾, 刚才网上查了一下 貌似支付宝和struts的接口也不是太难 ,有机会再试试吧
一:提交订单
public String add() throws Exception {
order.setName(getLoginCustomer().getUsername());
order.setAddress(getLoginCustomer().getAddress());
order.setMobile(getLoginCustomer().getMobile());
return ADD;
}
<input type="radio" name="paymentWay" value="货到付款">货到付款
我看支付宝的帮助,要在action里准备一个Map,然后put进一系列认证号 然后是总价 最后是成功后返回的url (这些应该在订单的保存之后执行, 成功与否都要在数据库中再更新一下)
二:订单的保存
public String save() throws Exception {
if(getLoginCustomer() != null){//如果用户已登录
order.setOrderId(StringUitl.createOrderId());// 设置订单号
order.setCustomer(getLoginCustomer());// 设置所属用户
Set<OrderItem> cart = getCart();// 获取购物车
if(cart.isEmpty()){//判断条目信息是否为空
return ERROR;//返回订单信息错误提示页面
}
// 依次将更新订单项中的商品的销售数量
for(OrderItem item : cart){//遍历购物车中的订单条目信息
Integer productId = item.getProductId();//获取商品ID
ProductInfo product = productDao.load(productId);//装载商品对象
product.setSellCount(product.getSellCount() + item.getAmount());//更新商品销售数量
productDao.update(product);//修改商品信息
}
order.setOrderItems(cart);// 设置订单项
order.setOrderState(OrderState.DELIVERED);// 设置订单状态
float totalPrice = 0f;// 计算总额的变量
for (OrderItem orderItem : cart) {//遍历购物车中的订单条目信息
totalPrice += orderItem.getProductPrice() * orderItem.getAmount();//商品单价*商品数量
}
order.setTotalPrice(totalPrice);//设置订单的总价格
orderDao.save(order);//保存订单信息
session.remove("cart");// 清空购物车
}
return findByCustomer();//返回消费者订单查询的方法
}
public String findByCustomer() throws Exception {
if(getLoginCustomer() != null){//如果用户已登录
String where = "where customer.id = ?";//将用户id设置为查询条件
Object[] queryParams = {getLoginCustomer().getId()};//创建对象数组
Map<String, String> orderby = new HashMap<String, String>(1);//创建Map集合
orderby.put("createTime", "desc");//设置排序条件及方式
pageModel = orderDao.find(where, queryParams, orderby , pageNo, pageSize);//执行查询方法
}
return LIST;//返回订单列表页面
}