/**
*
*/
package jframe.pay.http.ord;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.Map;
import io.netty.util.CharsetUtil;
import jframe.pay.domain.http.ReqOp;
import jframe.pay.domain.http.RspCode;
import jframe.pay.domain.util.HttpUtil;
import jframe.pay.domain.util.XmlUtil;
import jframe.pay.http.handler.PayException;
import jframe.pay.http.handler.PayHandler;
/**
* @author dzh
* @date Sep 1, 2015 7:31:17 PM
* @since 1.0
*/
public class OrderHandler extends PayHandler {
static final OrderService svc = new OrderService();
/*
* (non-Javadoc)
*
* @see jframe.pay.http.handler.PayHandler#doService(java.util.Map,
* java.util.Map)
*/
@Override
protected void doService(Map<String, String> req, Map<String, Object> rsp) throws Exception {
String reqOp = getReqOp();
if (ReqOp.CONSUME.code.equals(reqOp)) {
svc.consume(req, rsp);
} else if (ReqOp.QRYOD.code.equals(reqOp)) {
svc.qryod(req, rsp);
} else if (ReqOp.ALIBACK.code.equals(reqOp)) {
svc.aliback(req, rsp);
} else if (ReqOp.WXBACK.code.equals(reqOp)) {
// getPara().forEach((k, v) -> {
// if (!v.isEmpty()) {
// req.put(k, v.get(0));
// }
// });
svc.wxback(req, rsp);
} else if (ReqOp.UPMPBACK.code.equals(reqOp)) {
svc.upmpback(req, rsp);
} else {
RspCode.setRspCode(rsp, RspCode.FAIL_HTTP_REQOP);
throw new PayException("Not found");
}
}
@Override
protected Map<String, String> parseHttpReq(String content) throws Exception {
// if (content.indexOf('=') != -1) {
// return parseHttpParas(content);
// }
// return JsonUtil.decode(content);
Map<String, String> req = null;
if (ReqOp.WXBACK.code.equals(getReqOp())) {
req = XmlUtil.fromXml(content.trim());
} else {
req = HttpUtil.parseHttpParas(content.trim());
}
req.put("reqUrl", getReqUrl());
return req;
}
@Override
protected String parseReqContent(String content) throws UnsupportedEncodingException {
return ReqOp.UPMPBACK.code.equals(getReqOp()) ? content : super.parseReqContent(content);
}
@Override
protected Charset getReqCharset() {
return ReqOp.UPMPBACK.code.equals(getReqOp()) ? CharsetUtil.ISO_8859_1 : super.getReqCharset();
}
// private Map<String, String> fromParameters() {
// Map<String, String> map = new HashMap<>();
// getPara().forEach((k, v) -> {
// if (v != null && v.size() > 0)
// map.put(k, v.get(0));
// });
// return map;
// }
}