购物车提交订单后与购物车进行交互

在做项目的过程中,感觉到了支付测验的必要性,首先得获取订单的参数,例如订单编号,订单主的地址,手机号码,姓名。

以下是支付代码:

在于

public String  pay(HttpServletRequest requset, HttpServletResponse response)
			throws Exception {
		//接受传过来的参数
		   String address = requset.getParameter("address");
		   String name = requset.getParameter("name");
		   String phone = requset.getParameter("phone");
		   String  oid = requset.getParameter("oid");  
		  /* String total = requset.getParameter("total");
		   System.out.println(total);*/
		   //调用商品订单service来查询订单,之后将地址,电话,人名输入
		   OrderService orderService = (OrderService) BeanFactory.getBean("OrderService");
	       Order order	  =  orderService.getById(oid);  
	       order.setAddress(address);
	       order.setName(name);
	       order.setPhone(phone);
	       orderService.update(order);
	   	// 组织发送支付公司需要哪些数据
			String pd_FrpId = requset.getParameter("pd_FrpId");
			String p0_Cmd = "Buy";
			String p1_MerId = ResourceBundle.getBundle("merchantInfo").getString("p1_MerId");
			String p2_Order = oid;
			String p3_Amt = "0.01";
			System.out.println(p3_Amt);
			String p4_Cur = "CNY";
			String p5_Pid = "";
			String p6_Pcat = "";
			String p7_Pdesc = "";
			// 支付成功回调地址 ---- 第三方支付公司会访问、用户访问
			// 第三方支付可以访问网址在这个属性
			String p8_Url = ResourceBundle.getBundle("merchantInfo").getString("responseURL");
			String p9_SAF = "";
			String pa_MP = "";
			String pr_NeedResponse = "1";
			// 加密hmac 需要密钥
			String keyValue = ResourceBundle.getBundle("merchantInfo").getString("keyValue");
			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);
		
			
			//发送给第三方的url
			StringBuffer sb = new StringBuffer("https://www.yeepay.com/app-merchant-proxy/node?");
			sb.append("p0_Cmd=").append(p0_Cmd).append("&");
			//获取发送的id
			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("&");
			//获取商品id
			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);
			
			response.sendRedirect(sb.toString());
				return null;
		
	}

需要插件的代码:

用的是StringBuffere虽然效率差点,但是线程安全。

merchantInfo.properties

p1_MerId=10001126856
keyValue=69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl
responseURL=http\://localhost/store/order?method\=callback

 

你可能感兴趣的:(Java)