在线支付代码

25 篇文章 0 订阅
package cn.itcast.shop.util;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

/**
 * 易支付hmac加密算法
 * 
 */
public class PaymentUtil {

	private static String encodingCharset = "UTF-8";

	/**
	 * 生成hmac方法
	 * 
	 * @param p0_Cmd
	 *            业务类型
	 * @param p1_MerId
	 *            商户编号
	 * @param p2_Order
	 *            商户订单号
	 * @param p3_Amt
	 *            支付金额
	 * @param p4_Cur
	 *            交易币种
	 * @param p5_Pid
	 *            商品名称
	 * @param p6_Pcat
	 *            商品种类
	 * @param p7_Pdesc
	 *            商品描述
	 * @param p8_Url
	 *            商户接收支付成功数据的地址
	 * @param p9_SAF
	 *            送货地址
	 * @param pa_MP
	 *            商户扩展信息
	 * @param pd_FrpId
	 *            银行编码
	 * @param pr_NeedResponse
	 *            应答机制
	 * @param keyValue
	 *            商户密钥
	 * @return
	 */
	public static String buildHmac(String p0_Cmd, String p1_MerId, String p2_Order, String p3_Amt, String p4_Cur, String p5_Pid, String p6_Pcat, String p7_Pdesc, String p8_Url,
			String p9_SAF, String pa_MP, String pd_FrpId, String pr_NeedResponse, String keyValue) {
		StringBuilder sValue = new StringBuilder();
		// 业务类型
		sValue.append(p0_Cmd);
		// 商户编号
		sValue.append(p1_MerId);
		// 商户订单号
		sValue.append(p2_Order);
		// 支付金额
		sValue.append(p3_Amt);
		// 交易币种
		sValue.append(p4_Cur);
		// 商品名称
		sValue.append(p5_Pid);
		// 商品种类
		sValue.append(p6_Pcat);
		// 商品描述
		sValue.append(p7_Pdesc);
		// 商户接收支付成功数据的地址
		sValue.append(p8_Url);
		// 送货地址
		sValue.append(p9_SAF);
		// 商户扩展信息
		sValue.append(pa_MP);
		// 银行编码
		sValue.append(pd_FrpId);
		// 应答机制
		sValue.append(pr_NeedResponse);

		return PaymentUtil.hmacSign(sValue.toString(), keyValue);
	}

	/**
	 * 返回校验hmac方法
	 * 
	 * @param hmac
	 *            支付网关发来的加密验证码
	 * @param p1_MerId
	 *            商户编号
	 * @param r0_Cmd
	 *            业务类型
	 * @param r1_Code
	 *            支付结果
	 * @param r2_TrxId
	 *            易宝支付交易流水号
	 * @param r3_Amt
	 *            支付金额
	 * @param r4_Cur
	 *            交易币种
	 * @param r5_Pid
	 *            商品名称
	 * @param r6_Order
	 *            商户订单号
	 * @param r7_Uid
	 *            易宝支付会员ID
	 * @param r8_MP
	 *            商户扩展信息
	 * @param r9_BType
	 *            交易结果返回类型
	 * @param keyValue
	 *            密钥
	 * @return
	 */
	public static boolean verifyCallback(String hmac, String p1_MerId, String r0_Cmd, String r1_Code, String r2_TrxId, String r3_Amt, String r4_Cur, String r5_Pid,
			String r6_Order, String r7_Uid, String r8_MP, String r9_BType, String keyValue) {
		StringBuilder sValue = new StringBuilder();
		// 商户编号
		sValue.append(p1_MerId);
		// 业务类型
		sValue.append(r0_Cmd);
		// 支付结果
		sValue.append(r1_Code);
		// 易宝支付交易流水号
		sValue.append(r2_TrxId);
		// 支付金额
		sValue.append(r3_Amt);
		// 交易币种
		sValue.append(r4_Cur);
		// 商品名称
		sValue.append(r5_Pid);
		// 商户订单号
		sValue.append(r6_Order);
		// 易宝支付会员ID
		sValue.append(r7_Uid);
		// 商户扩展信息
		sValue.append(r8_MP);
		// 交易结果返回类型
		sValue.append(r9_BType);
		String sNewString = PaymentUtil.hmacSign(sValue.toString(), keyValue);
		return sNewString.equals(hmac);
	}

	/**
	 * HMAC签名加密
	 * 
	 * @param aValue
	 * @param aKey
	 * @return
	 */
	public static String hmacSign(String aValue, String aKey) {
		byte k_ipad[] = new byte[64];
		byte k_opad[] = new byte[64];
		byte keyb[];
		byte value[];
		try {
			keyb = aKey.getBytes(encodingCharset);
			value = aValue.getBytes(encodingCharset);
		} catch (UnsupportedEncodingException e) {
			keyb = aKey.getBytes();
			value = aValue.getBytes();
		}

		Arrays.fill(k_ipad, keyb.length, 64, (byte) 54);
		Arrays.fill(k_opad, keyb.length, 64, (byte) 92);
		for (int i = 0; i < keyb.length; i++) {
			k_ipad[i] = (byte) (keyb[i] ^ 0x36);
			k_opad[i] = (byte) (keyb[i] ^ 0x5c);
		}

		MessageDigest md = null;
		try {
			md = MessageDigest.getInstance("MD5");
		} catch (NoSuchAlgorithmException e) {

			return null;
		}
		md.update(k_ipad);
		md.update(value);
		byte dg[] = md.digest();
		md.reset();
		md.update(k_opad);
		md.update(dg, 0, 16);
		dg = md.digest();
		return toHex(dg);
	}

	public static String toHex(byte input[]) {
		if (input == null)
			return null;
		StringBuffer output = new StringBuffer(input.length * 2);
		for (int i = 0; i < input.length; i++) {
			int current = input[i] & 0xff;
			if (current < 16)
				output.append("0");
			output.append(Integer.toString(current, 16));
		}

		return output.toString();
	}

	/**
	 * 
	 * @param args
	 * @param key
	 * @return
	 */
	public static String getHmac(String[] args, String key) {
		if (args == null || args.length == 0) {
			return (null);
		}
		StringBuffer str = new StringBuffer();
		for (int i = 0; i < args.length; i++) {
			str.append(args[i]);
		}
		return (hmacSign(str.toString(), key));
	}

	/**
	 * @param aValue
	 * @return
	 */
	public static String digest(String aValue) {
		aValue = aValue.trim();
		byte value[];
		try {
			value = aValue.getBytes(encodingCharset);
		} catch (UnsupportedEncodingException e) {
			value = aValue.getBytes();
		}
		MessageDigest md = null;
		try {
			md = MessageDigest.getInstance("SHA");
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
			return null;
		}
		return toHex(md.digest(value));

	}

	// public static void main(String[] args) {
	// System.out.println(hmacSign("AnnulCard1000043252120080620160450.0http://localhost/SZXpro/callback.asp杩?4564868265473632445648682654736324511","8UPp0KE8sq73zVP370vko7C39403rtK1YwX40Td6irH216036H27Eb12792t"));
	// }
}


package cn.itcast.shop.action;

import java.io.IOException;
import java.util.Date;

import javax.annotation.Resource;

import org.apache.struts2.ServletActionContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import cn.itcast.shop.service.OrderService;
import cn.itcast.shop.util.PageBean;
import cn.itcast.shop.util.PaymentUtil;
import cn.itcast.shop.vo.Order;
import cn.itcast.shop.vo.OrderItem;
import cn.itcast.shop.vo.User;
import cn.itcast.shop.vo.cart.Cart;
import cn.itcast.shop.vo.cart.CartItem;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

/**
 * 订单模块Action类
 * 
 * @author 吕小刚
 * @version V1.0
 */
@Controller("orderAction")
@Scope("prototype")
@SuppressWarnings("serial")
public class OrderAction extends ActionSupport implements ModelDriven<Order> {
	// =================== Service实例
	@Resource
	// 没注入(页面报错,无任何提示)
	private OrderService orderService;

	// ==================== 模型驱动对象
	private Integer page;// 接收页码
	private String pd_FrpId;// 接收支付通道编码(所属银行)
	// 接收付款成功后的响应数据:
	private String r6_Order;// 订单号
	private String r3_Amt;// 付款金额

	private Order model = new Order();

	public Order getModel() {
		return model;
	}

	public void setR6_Order(String r6_Order) {
		this.r6_Order = r6_Order;
	}

	public void setR3_Amt(String r3_Amt) {
		this.r3_Amt = r3_Amt;
	}

	public void setPd_FrpId(String pd_FrpId) {
		this.pd_FrpId = pd_FrpId;
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	// 订单页面跳转执行方法
	public String save() {
		// 1,保存数据到数据库
		// 订单数据补全
		model.setOrderTime(new Date());// 订单生成时间
		model.setState(1);// 1,未付款 --> 2,付款成功,未发货 --> 3,已发货,没确认收货 --> 4,交易完成
		// 总计的数据是购物车中的信息:
		Cart cart = (Cart) ServletActionContext.getRequest().getSession().getAttribute("cart");
		if (cart == null) {
			ActionContext.getContext().getSession().put("message", "亲!你没有购物!请去购物!");
			return "msg";// 返到购物车并在购物车页面提示
		}
		model.setTotal(cart.getTotal());// 订单总金额(购物车中)
		// 订单项(在购物车中购物项,然后添加到订单项中)
		for (CartItem cartItem : cart.getCartItems()) {
			OrderItem orderItem = new OrderItem();
			orderItem.setCount(cartItem.getCount());// 总数量
			orderItem.setSubtotal(cartItem.getSubtotal());// 商品小计
			orderItem.setProduct(cartItem.getProduct());// 商品信息
			orderItem.setOrder(model);// 订单

			model.getOrderItems().add(orderItem);
		}
		// 获取用户
		User user = (User) ServletActionContext.getRequest().getSession().getAttribute("user");
		if (user == null) {
			this.addFieldError("loginError", "亲!你还没有登录,请先登录!");
			return "login";
		}
		model.setUser(user);// 订单用户(在session中)

		orderService.save(model);
		cart.clearCart();// 清空购物车
		ServletActionContext.getRequest().getSession().removeAttribute("cart");
		// 2,将订单对象显示到页面上:
		// 把订单信息放入值栈中
		ActionContext.getContext().getValueStack().set("model", model);
		return "saveSuccess";
	}

	// 我的订单显示执行方法
	public String findByUserId() {
		// 跟据用户的id查询
		User user = (User) ServletActionContext.getRequest().getSession().getAttribute("user");
		// 调用service
		PageBean<Order> pageBean = orderService.findByPageUserId(user.getId(), page);
		// 将分页的信息显示到页面上:
		ActionContext.getContext().getValueStack().set("pageBean", pageBean);
		return "findByUserIdSuccess";
	}

	// 要据订单id查询订单
	public String findByOrderId() {
		model = orderService.findByOrderId(model.getId());
		return "findByOrderId";
	}

	// 为订单付款的方法
	public String payOrder() throws IOException {
		// 修改订单
		Order currentOrder = orderService.findByOrderId(model.getId());
		currentOrder.setAddress(model.getAddress());// 地址
		currentOrder.setName(model.getName());// 姓名
		currentOrder.setPhone(model.getPhone());// 电话
		// 更新订单信息
		orderService.update(currentOrder);

		// 为订单付款
		String p0_Cmd = "Buy";// 业务类型
		String p1_MerId = "10001126856";// 商户编号
		String p2_Order = model.getId().toString();// 商户订单号
		String p3_Amt = "0.01";// 支付金额
		String p4_Cur = "CNY";// 交易币种
		String p5_Pid = "";// 商品名称
		String p6_Pcat = "";// 商品种类
		String p7_Pdesc = "";// 商品描述
		String p8_Url = "http://localhost:8080/shop/order_callBack.action";// 支付成功后跳转的页面路径
		String p9_SAF = "0";// 送货地址
		String pa_MP = "";// 商户扩展信息
		String pd_FrpId = this.pd_FrpId;// 支付通道编码
		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 stringBuffer = new StringBuffer("https://www.yeepay.com/app-merchant-proxy/node?");
		stringBuffer.append("p0_Cmd=").append(p0_Cmd).append("&");
		stringBuffer.append("p1_MerId=").append(p1_MerId).append("&");
		stringBuffer.append("p2_Order=").append(p2_Order).append("&");
		stringBuffer.append("p3_Amt=").append(p3_Amt).append("&");
		stringBuffer.append("p4_Cur=").append(p4_Cur).append("&");
		stringBuffer.append("p5_Pid=").append(p5_Pid).append("&");
		stringBuffer.append("p6_Pcat=").append(p6_Pcat).append("&");
		stringBuffer.append("p7_Pdesc=").append(p7_Pdesc).append("&");
		stringBuffer.append("p8_Url=").append(p8_Url).append("&");
		stringBuffer.append("p9_SAF=").append(p9_SAF).append("&");
		stringBuffer.append("pa_MP=").append(pa_MP).append("&");
		stringBuffer.append("pd_FrpId=").append(pd_FrpId).append("&");
		stringBuffer.append("pr_NeedResponse=").append(pr_NeedResponse).append("&");
		stringBuffer.append("keyValue=").append(keyValue).append("&");
		stringBuffer.append("hmac=").append(hmac);

		// 重定向到易宝支付:
		ServletActionContext.getResponse().sendRedirect(stringBuffer.toString());

		return NONE;
	}

	// 付款成功后的转向
	public String callBack() {
		// 修改订单状态:修改状态为已付款(1,未付款 --> 2,付款成功,未发货 --> 3,已发货 --> 4,交易完成)
		Order currentOrder = orderService.findByOrderId(Long.parseLong(r6_Order));
		currentOrder.setState(2);
		orderService.update(currentOrder);
		// 在页面显示付款成功信息
		ActionContext.getContext().getSession().put("message", " 付款成功:" + r6_Order + "付款金额:" + r3_Amt);
		return "msg";
	}
}

<!-- 订单模块Action -->
		<action name="order_*" class="orderAction" method="{1}">
			<result name="saveSuccess">/WEB-INF/jsp/order.jsp</result>
			<result name="findByUserIdSuccess">/WEB-INF/jsp/orderList.jsp</result>
			<result name="findByOrderId">/WEB-INF/jsp/order.jsp</result>
		</action>


<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0043)http://localhost:8080/mango/cart/list.jhtml -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

<title>订单页面</title>
<link href="${pageContext.request.contextPath}/css/common.css" rel="stylesheet" type="text/css"/>
<link href="${pageContext.request.contextPath}/css/cart.css" rel="stylesheet" type="text/css"/>

</head>
<body>

<div class="container header">
	<div class="span5">
		<div class="logo">
			<a href="${pageContext.request.contextPath}/网上商城/index.htm">
				<img src="${pageContext.request.contextPath}/image/r___________renleipic_01/logo.gif" alt="传智播客"/>
			</a>
		</div>
	</div>
	<div class="span9">
<div class="headerAd">
	<img src="${pageContext.request.contextPath}/image/header.jpg" width="320" height="50" alt="正品保障" title="正品保障"/>
</div>	
</div>
	<%@ include file="meun.jsp" %>
	
</div>	

<div class="container cart">

		<div class="span24">
		
			<div class="step step1">
				<ul>
					
					<li  class="current"></li>
					<li  >生成订单成功</li>
				</ul>
			</div>
	
		
				<table>
					<tbody>
					<tr>
						<th colspan="5">订单编号:${model.id}</th>
					</tr>
					<tr>
						<th>图片</th>
						<th>商品</th>
						<th>价格</th>
						<th>数量</th>
						<th>小计</th>
					</tr>
					<s:iterator var="orderItems" value="model.orderItems">
						<tr>
							<td width="60">
								<input type="hidden" name="id" value="22"/>
								<img src="${pageContext.request.contextPath }/<s:property value="#orderItems.product.image"/>"/>
							</td>
							<td>
								<s:a action="product_findById.action?id=%{#orderItems.product.id}" target="_blank"><s:property value="#orderItems.product.name"/></s:a>
							</td>
							<td>
								<s:property value="#orderItems.product.shop_price"/>
							</td>
							<td class="quantity" width="60">
								<input type="text" name="count" value="<s:property value="#orderItems.count"/>" maxlength="4" οnpaste="return false;"/>
								<div>
									<span class="increase"> </span>
									<span class="decrease"> </span>
								</div>
							</td>
							<td width="140">
								<span class="subtotal">¥<s:property value="#orderItems.subtotal"/></span>
							</td>
						</tr>
					</s:iterator>
				</tbody>
			</table>
				<dl id="giftItems" class="hidden" style="display: none;">
				</dl>
				<div class="total">
					<em id="promotion"></em>
					商品金额: <strong id="effectivePrice">¥<s:property value="model.total"/>元</strong>
				</div>
			<form id="orderForm" action="${pageContext.request.contextPath}/order_payOrder.action" method="post">
				<s:hidden name="id" value="%{model.id}"/>
				<div class="span24">
					<p>
							收货地址:<input name="address" type="text" value="<s:property value="model.user.address"/>" style="width:350px" />
								<br />
							收货人   :<input name="name" type="text" value="<s:property value="model.user.name"/>" style="width:150px" />
								<br /> 
							联系方式:<input name="phone" type="text"value="<s:property value="model.user.phone"/>" style="width:150px" />

						</p>
						<hr />
						<p>
							选择银行:<br/>
							<input type="radio" name="pd_FrpId" value="ICBC-NET-B2C" checked="checked"/>工商银行
							<img src="${pageContext.request.contextPath}/bank_img/icbc.bmp" align="middle"/>    
							<input type="radio" name="pd_FrpId" value="BOC-NET-B2C"/>中国银行
							<img src="${pageContext.request.contextPath}/bank_img/bc.bmp" align="middle"/>    
							<input type="radio" name="pd_FrpId" value="ABC-NET-B2C"/>农业银行
							<img src="${pageContext.request.contextPath}/bank_img/abc.bmp" align="middle"/>
							<br/>
							<input type="radio" name="pd_FrpId" value="BOCO-NET-B2C"/>交通银行
							<img src="${pageContext.request.contextPath}/bank_img/bcc.bmp" align="middle"/>    
							<input type="radio" name="pd_FrpId" value="PINGANBANK-NET"/>平安银行
							<img src="${pageContext.request.contextPath}/bank_img/pingan.bmp" align="middle"/>    
							<input type="radio" name="pd_FrpId" value="CCB-NET-B2C"/>建设银行
							<img src="${pageContext.request.contextPath}/bank_img/ccb.bmp" align="middle"/>
							<br/>
							<input type="radio" name="pd_FrpId" value="CEB-NET-B2C"/>光大银行
							<img src="${pageContext.request.contextPath}/bank_img/guangda.bmp" align="middle"/>    
							<input type="radio" name="pd_FrpId" value="CMBCHINA-NET-B2C"/>招商银行
							<img src="${pageContext.request.contextPath}/bank_img/cmb.bmp" align="middle"/>
						</p>
						<hr />
						<p style="text-align:right">
							<a href="javascript:document.getElementById('orderForm').submit();">
								<img src="${pageContext.request.contextPath}/images/finalbutton.gif" width="204" height="51" border="0" />
							</a>
						</p>
				</div>
			</form>
		</div>
		
	</div>
<div class="container footer">
	<div class="span24">
		<div class="footerAd">
					<img src="image\r___________renleipic_01/footer.jpg" alt="我们的优势" title="我们的优势" height="52" width="950">
</div>
</div>
	<div class="span24">
		<ul class="bottomNav">
					<li>
						<a href="#">关于我们</a>
						|
					</li>
					<li>
						<a href="#">联系我们</a>
						|
					</li>
					<li>
						<a href="#">诚聘英才</a>
						|
					</li>
					<li>
						<a href="#">法律声明</a>
						|
					</li>
					<li>
						<a>友情链接</a>
						|
					</li>
					<li>
						<a target="_blank">支付方式</a>
						|
					</li>
					<li>
						<a target="_blank">配送方式</a>
						|
					</li>
					<li>
						<a >SHOP++官网</a>
						|
					</li>
					<li>
						<a>SHOP++论坛</a>
						
					</li>
		</ul>
	</div>
	<div class="span24">
		<div class="copyright">Copyright © 2005-2015 网上商城 版权所有</div>
	</div>
</div>
</body>
</html>



<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0043)http://localhost:8080/mango/cart/list.jhtml -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

<title>我的订单页面</title>
<link href="${pageContext.request.contextPath}/css/common.css" rel="stylesheet" type="text/css"/>
<link href="${pageContext.request.contextPath}/css/cart.css" rel="stylesheet" type="text/css"/>

</head>
<body>

<div class="container header">
	<div class="span5">
		<div class="logo">
			<a href="${pageContext.request.contextPath}/网上商城/index.htm">
				<img src="${pageContext.request.contextPath}/image/r___________renleipic_01/logo.gif" alt="传智播客"/>
			</a>
		</div>
	</div>
	<div class="span9">
<div class="headerAd">
	<img src="${pageContext.request.contextPath}/image/header.jpg" width="320" height="50" alt="正品保障" title="正品保障"/>
</div>	
</div>
	<%@ include file="meun.jsp" %>
</div>	

<div class="container cart">

		<div class="span24">
			
			<div class="step step1">
				<ul>
					
					<li  class="current"></li>
					<li>我的订单显示</li>
				</ul>
			</div>
	
		
				<table>
					<tbody>
					<%-- 订单信息 --%>
					<s:iterator var="order" value="pageBean.list">
						<tr>
							<th colspan="5">订单编号:<s:property value="#order.id"/>   
								<s:if test="#order.state == 1">
									订单状态:<s:a action="order_findByOrderId.action?id=%{#order.id}"><font color="red">未付款</font></s:a> 
								</s:if>
								<s:if test="#order.state == 2">
									订单状态:付款成功,等待发货
								</s:if>
								<s:if test="#order.state == 3">
									订单状态:已发货
								</s:if>
								<s:if test="#order.state == 4">
									订单状态:<s:a action="#"><font color="red">确认收货</font></s:a> 
								</s:if>
							</th>
						</tr>
						<tr>
							<th>图片</th>
							<th>商品</th>
							<th>价格</th>
							<th>数量</th>
							<th>小计</th>
						</tr>
							<%-- 订单项信息 --%>
							<s:iterator var="orderItems" value="#order.orderItems">
							<tr>
								<td width="60">
									<input type="hidden" name="id" value="22"/>
									<img src="${pageContext.request.contextPath }/<s:property value="#orderItems.product.image"/>"/>
								</td>
								<td>
									<s:a action="product_findById.action?id=%{#orderItems.product.id}" target="_blank"><s:property value="#orderItems.product.name"/></s:a>
								</td>
								<td>
									<s:property value="#orderItems.product.shop_price"/>
								</td>
								<td class="quantity" width="60">
									<input type="text" name="count" value="<s:property value="#orderItems.count"/>" maxlength="4" οnpaste="return false;"/>
									<div>
										<span class="increase"> </span>
										<span class="decrease"> </span>
									</div>
								</td>
								<td width="140">
									<span class="subtotal">¥<s:property value="#orderItems.subtotal"/></span>
								</td>
							</tr>
						</s:iterator>
				</s:iterator>	
				</tbody>
			</table>
		</div>
			
<div class="pagination">
			<span>第<s:property value="pageBean.page"/>/<s:property value="pageBean.totalPage"/>页</span>
			
				<s:if test="pageBean.page!=1">
					<s:a class="firstPage" action="order_findByUserId.action?page=1"> </s:a><!-- 返回第一页 -->
					<s:a class="previousPage" action="order_findByUserId.action?page=%{pageBean.page-1}"> </s:a><!-- 返回上一页 -->
				</s:if>
		
					<s:iterator var="i" begin="1" end="pageBean.totalPage">		
						<s:if test="pageBean.page != #i">
							<s:a action="order_findByUserId.action?page=%{i}"><s:property value="#i"/></s:a>
						</s:if>		
						<s:else>
							<span class="currentPage"><s:property value="#i"/> </span>
						</s:else>	
					</s:iterator>		
					
				<s:if test="pageBean.page!=pageBean.totalPage">	
					<s:a class="nextPage" action="order_findByUserId.action?page=%{pageBean.page+1}"> </s:a><!-- 下一页 -->
					<s:a class="lastPage" action="order_findByUserId.action?page=%{pageBean.totalPage}"> </s:a><!-- 最后一页 -->
				</s:if>
	</div>

	</div>
<div class="container footer">
	<div class="span24">
		<div class="footerAd">
					<img src="image\r___________renleipic_01/footer.jpg" alt="我们的优势" title="我们的优势" height="52" width="950">
</div>
</div>
	<div class="span24">
		<ul class="bottomNav">
					<li>
						<a href="#">关于我们</a>
						|
					</li>
					<li>
						<a href="#">联系我们</a>
						|
					</li>
					<li>
						<a href="#">诚聘英才</a>
						|
					</li>
					<li>
						<a href="#">法律声明</a>
						|
					</li>
					<li>
						<a>友情链接</a>
						|
					</li>
					<li>
						<a target="_blank">支付方式</a>
						|
					</li>
					<li>
						<a target="_blank">配送方式</a>
						|
					</li>
					<li>
						<a >SHOP++官网</a>
						|
					</li>
					<li>
						<a>SHOP++论坛</a>
						
					</li>
		</ul>
	</div>
	<div class="span24">
		<div class="copyright">Copyright © 2005-2015 网上商城 版权所有</div>
	</div>
</div>
</body>
</html>



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值