//package com.unionpay.acp.demo;
//
//
//import java.io.IOException;
//import java.util.Enumeration;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.Map;
//import java.util.Map.Entry;
//
//import javax.servlet.ServletException;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import com.unionpay.acp.sdk.LogUtil;
//import com.unionpay.acp.sdk.SDKConfig;
//import com.unionpay.acp.sdk.SDKConstants;
//import com.unionpay.acp.sdk.SDKUtil;
//
///**
// * 名称:商户前台通知类 功能: 类属性: 方法调用 版本:5.0 日期:2014-07 作者:中国银联ACP团队 版权:中国银联
// * 说明:以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。该代码仅供参考。
// * */
//
//public class FrontRcvResponse extends HttpServlet {
//
// /**
// *
// */
// private static final long serialVersionUID = -4826029673018921502L;
//
// @Override
// public void init() throws ServletException {
// /**
// * 参数初始化
// * 在java main 方式运行时必须每次都执行加载
// * 如果是在web应用开发里,这个方写在可使用监听的方式写入缓存,无须在这出现
// */
// SDKConfig.getConfig().loadPropertiesFromSrc();// 从classpath加载acp_sdk.properties文件
// super.init();
// }
//
// @Override
// protected void doPost(HttpServletRequest req, HttpServletResponse resp)
// throws ServletException, IOException {
//
// LogUtil.writeLog("FrontRcvResponse前台接收报文返回开始");
//
// req.setCharacterEncoding("ISO-8859-1");
// String encoding = req.getParameter(SDKConstants.param_encoding);
// LogUtil.writeLog("返回报文中encoding=[" + encoding + "]");
// String pageResult = "";
// if ("UTF-8".equalsIgnoreCase(encoding)) {
// pageResult = "/utf8_result.jsp";
// } else {
// pageResult = "/gbk_result.jsp";
// }
// Map<String, String> respParam = getAllRequestParam(req);
//
// // 打印请求报文
// LogUtil.printRequestLog(respParam);
//
// Map<String, String> valideData = null;
// StringBuffer page = new StringBuffer();
// if (null != respParam && !respParam.isEmpty()) {
// Iterator<Entry<String, String>> it = respParam.entrySet()
// .iterator();
// valideData = new HashMap<String, String>(respParam.size());
// while (it.hasNext()) {
// Entry<String, String> e = it.next();
// String key = (String) e.getKey();
// String value = (String) e.getValue();
// value = new String(value.getBytes("ISO-8859-1"), encoding);
// page.append("<tr><td width=\"30%\" align=\"right\">" + key
// + "(" + key + ")</td><td>" + value + "</td></tr>");
// valideData.put(key, value);
// }
// }
// if (!SDKUtil.validate(valideData, encoding)) {
// page.append("<tr><td width=\"30%\" align=\"right\">验证签名结果</td><td>失败</td></tr>");
// LogUtil.writeLog("验证签名结果[失败].");
// } else {
// page.append("<tr><td width=\"30%\" align=\"right\">验证签名结果</td><td>成功</td></tr>");
// LogUtil.writeLog("验证签名结果[成功].");
// System.out.println(valideData.get("orderId")); //其他字段也可用类似方式获取
// }
// req.setAttribute("result", page.toString());
// req.getRequestDispatcher(pageResult).forward(req, resp);
//
// LogUtil.writeLog("FrontRcvResponse前台接收报文返回结束");
// }
//
// @Override
// protected void doGet(HttpServletRequest req, HttpServletResponse resp)
// throws ServletException, IOException {
// this.doPost(req, resp);
// }
//
// /**
// * 获取请求参数中所有的信息
// *
// * @param request
// * @return
// */
// public static Map<String, String> getAllRequestParam(
// final HttpServletRequest request) {
// Map<String, String> res = new HashMap<String, String>();
// Enumeration<?> temp = request.getParameterNames();
// if (null != temp) {
// while (temp.hasMoreElements()) {
// String en = (String) temp.nextElement();
// String value = request.getParameter(en);
// res.put(en, value);
// // 在报文上送时,如果字段的值为空,则不上送<下面的处理为在获取所有参数数据时,判断若值为空,则删除这个字段>
// if (res.get(en) == null || "".equals(res.get(en))) {
// // System.out.println("======为空的字段名===="+en);
// res.remove(en);
// }
// }
// }
// return res;
// }
//
//}