/**
*
*/
package jframe.pay.http.handler;
import java.util.Map;
import jframe.pay.domain.Fields;
import jframe.pay.domain.http.RspCode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author dzh
* @date Jul 29, 2015 2:09:06 PM
* @since 1.0
*/
public abstract class PayHandler extends SafeHandler {
public static final Logger LOG = LoggerFactory.getLogger(PayHandler.class);
@Override
public void service(Map<String, String> req, Map<String, Object> rsp) throws PayException {
super.service(req, rsp);
long start = System.currentTimeMillis();
try {
doService(req, rsp);
if (!rsp.containsKey(Fields.F_rspCode)) {
RspCode.setRspCode(rsp, RspCode.SUCCESS);
}
} catch (Exception e) {
if (!rsp.containsKey(Fields.F_rspCode)) {
RspCode.setRspCode(rsp, RspCode.FAIL_NET);
}
LOG.error(e.getMessage(), e.getCause());
if (isDebug()) {
rsp.put(Fields.F_error, e.getMessage());
}
}
if (LOG.isDebugEnabled()) {
LOG.debug("remoteIp->{} reqOp->{} invokeTime->{}ms req->{} rsp->{}", getRemoteIp(), getReqOp(),
System.currentTimeMillis() - start, req, rsp);
}
}
protected abstract void doService(Map<String, String> req, Map<String, Object> rsp) throws Exception;
public boolean isDebug() {
return "true".equals(Plugin.getConfig("jframe.debug", "false")) ? true : false;
}
}