package com.hehenian.biz.facade.account.chinapnr;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import chinapnr.SecureLink;
import com.hehenian.biz.common.exception.BusinessException;
import com.hehenian.biz.common.util.FormUtil;
import com.hehenian.biz.common.util.HttpClientUtils;
import com.hehenian.biz.facade.account.AbstractAccountManager;
import com.hehenian.biz.facade.account.IQueryManager;
import com.hehenian.biz.facade.account.parameter.InParameter;
import com.hehenian.biz.facade.account.parameter.OutParameter;
@Component("chinaPnrQueryManager")
public class ChinaPnrQueryManager extends AbstractAccountManager implements IQueryManager {
private final Logger logger = Logger.getLogger(this.getClass());
@Override
public OutParameter queryBalance(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter queryBalanceBg(InParameter inParameter) {
try {
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("Version", chinaPnrConfig.getVersion());// 版本
params.put("CmdId", "QueryBalanceBg");// 消息类型
params.put("MerCustId", chinaPnrConfig.getMerCustId());// 商户号
params.put("UsrCustId", (String) inParameter.getParams().get("UsrCustId"));
params.put("ChkValue", getChkValue(params));// 请求签名
String jsonString = HttpClientUtils.post(chinaPnrConfig.getGateway(), params);
return getSuccessOutParameter(jsonString);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter("商户扣款查询失败!");
}
}
@Override
public OutParameter queryAccts(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter queryTransStat(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter queryTenderPlan(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter reconciliation(InParameter inParameter) {
try {
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("Version", chinaPnrConfig.getVersion());// 版本
params.put("CmdId", "Reconciliation");// 消息类型
params.put("MerCustId", chinaPnrConfig.getMerCustId());// 商户号
params.put("BeginDate", (String) inParameter.getParams().get("BeginDate"));
params.put("EndDate", (String) inParameter.getParams().get("EndDate"));
params.put("PageNum", (Integer) inParameter.getParams().get("PageNum") + "");
params.put("PageSize", (Integer) inParameter.getParams().get("PageSize") + "");
params.put("QueryTransType", (String) inParameter.getParams().get("QueryTransType"));// 商户号
params.put("ChkValue", getChkValue(params));// 请求签名
String jsonString = HttpClientUtils.post(chinaPnrConfig.getGateway(), params);
return getSuccessOutParameter(jsonString);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter("商户扣款查询失败!");
}
}
@Override
public OutParameter trfReconciliation(InParameter inParameter) {
try {
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("Version", chinaPnrConfig.getVersion());// 版本
params.put("CmdId", "TrfReconciliation");// 消息类型
params.put("MerCustId", chinaPnrConfig.getMerCustId());// 商户号
params.put("BeginDate", (String) inParameter.getParams().get("BeginDate"));
params.put("EndDate", (String) inParameter.getParams().get("EndDate"));
params.put("PageNum", (Integer) inParameter.getParams().get("PageNum") + "");
params.put("PageSize", (Integer) inParameter.getParams().get("PageSize") + "");
params.put("ChkValue", getChkValue(params));// 请求签名
String jsonString = HttpClientUtils.post(chinaPnrConfig.getGateway(), params);
return getSuccessOutParameter(jsonString);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter("商户扣款查询失败!");
}
}
@Override
public OutParameter cashReconciliation(InParameter inParameter) {
try {
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("Version", chinaPnrConfig.getVersion());// 版本
params.put("CmdId", "CashReconciliation");// 消息类型
params.put("MerCustId", chinaPnrConfig.getMerCustId());// 商户号
params.put("BeginDate", (String) inParameter.getParams().get("BeginDate"));
params.put("EndDate", (String) inParameter.getParams().get("EndDate"));
params.put("PageNum", (Integer) inParameter.getParams().get("PageNum") + "");
params.put("PageSize", (Integer) inParameter.getParams().get("PageSize") + "");
params.put("ChkValue", getChkValue(params));// 请求签名
String jsonString = HttpClientUtils.post(chinaPnrConfig.getGateway(), params);
return getSuccessOutParameter(jsonString);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter("商户扣款查询失败!");
}
}
@Override
public OutParameter queryAcctDetails(InParameter inParameter) {
try {
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("Version", chinaPnrConfig.getVersion());// 接口版本号
params.put("CmdId", "QueryAcctDetails");// 消息类型
params.put("MerCustId", chinaPnrConfig.getMerCustId());// 商户号
params.put("UsrCustId", (Long) inParameter.getParams().get("UsrCustId") + "");
params.put("ChkValue", getChkValue(params));// 设置请求签名
String htmlText = FormUtil.buildHtmlForm(params, chinaPnrConfig.getGateway(), "post");
OutParameter outParameter = new OutParameter();
outParameter.setSuccess(true);
outParameter.getParams().put("htmlText", htmlText);
return outParameter;
} catch (BusinessException e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter(e.getMessage());
} catch (Exception e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter("账户明细查询失败!");
}
}
@Override
public OutParameter saveReconciliation(InParameter inParameter) {
try {
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("Version", chinaPnrConfig.getVersion());// 版本
params.put("CmdId", "SaveReconciliation");// 消息类型
params.put("MerCustId", chinaPnrConfig.getMerCustId());// 商户号
params.put("BeginDate", (String) inParameter.getParams().get("BeginDate"));
params.put("EndDate", (String) inParameter.getParams().get("EndDate"));
params.put("PageNum", (Integer) inParameter.getParams().get("PageNum") + "");
params.put("PageSize", (Integer) inParameter.getParams().get("PageSize") + "");
params.put("ChkValue", getChkValue(params));// 请求签名
String jsonString = HttpClientUtils.post(chinaPnrConfig.getGateway(), params);
return getSuccessOutParameter(jsonString);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter("商户扣款查询失败!");
}
}
@Override
public OutParameter queryReturnDzFee(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter corpRegisterQuery(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter creditAssignReconciliation(InParameter inParameter) {
try {
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("Version", chinaPnrConfig.getVersion());// 版本
params.put("CmdId", "CreditAssignReconciliation");// 消息类型
params.put("MerCustId", chinaPnrConfig.getMerCustId());// 商户号
if (StringUtils.isNotBlank(inParameter.getOrdId())) {
params.put("OrdId", inParameter.getOrdId());// 订单号
}
params.put("BeginDate", (String) inParameter.getParams().get("BeginDate"));
params.put("EndDate", (String) inParameter.getParams().get("EndDate"));
String sellCustId = (String) inParameter.getParams().get("SellCustId");
if (StringUtils.isNotBlank(sellCustId)) {
params.put("SellCustId", sellCustId);// 转让者
}
String buyCustId = (String) inParameter.getParams().get("BuyCustId");
if (StringUtils.isNotBlank(buyCustId)) {
params.put("BuyCustId", buyCustId);// 认购者
}
params.put("PageNum", (Integer) inParameter.getParams().get("PageNum") + "");
params.put("PageSize", (Integer) inParameter.getParams().get("PageSize") + "");
params.put("ReqExt", "");
params.put("ChkValue", getChkValue(params));// 请求签名
String jsonString = HttpClientUtils.post(chinaPnrConfig.getGateway(), params);
return getSuccessOutParameter(jsonString);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter("商户扣款查询失败!");
}
}
@Override
public OutParameter fssPurchaseReconciliation(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter fssRedeemReconciliation(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter queryFss(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter queryFssAccts(InParameter inParameter) {
// TODO Auto-generated method stub
return null;
}
@Override
public OutParameter queryCardInfo(InParameter inParameter) {
try {
Map<String, String> params = new LinkedHashMap<String, String>();
params.put("Version", chinaPnrConfig.getVersion());// 版本
params.put("CmdId", "QueryCardInfo");// 消息类型
params.put("MerCustId", chinaPnrConfig.getMerCustId());// 商户号
params.put("UsrCustId", (String) inParameter.getParams().get("UsrCustId"));// 汇付客户号
params.put("CardId", (String) inParameter.getParams().get("CardId"));// 取现银行的账户号
params.put("ChkValue", getChkValue(params));// 请求签名
String jsonString = HttpClientUtils.post(chinaPnrConfig.getGateway(), params);
return getSuccessOutParameter(jsonString);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return getFailureOutParameter("商户扣款查询失败!");
}
}
}