public static final String COL_STATUS = "status";
public static final String COL_FLAG = "flag";
public static final String COL_RECORDNO = "recordno"; //记录号
+ public static final String COL_BANKSEQNO = "payeeno"; //商户银行序号
}
package com.supwisdom.agent.api.bean;
/**
- * * 第二行及以后:交易日期|交易时间|报文业务类型|业务系统流水号|银行流水号|付款银行卡号|收款商户银行卡号|核心记账日期|交易金额|交易摘要|
+ * * 第二行及以后:交易日期|交易时间|报文业务类型|业务系统流水号|银行流水号|付款银行卡号|收款商户银行卡号|[账号序号]|核心记账日期|交易金额|交易摘要|
* <p>
* private static final String[]chkFileColumnList=new String[]{"transdate","transtime","flag","refno","agentrefno",
- * "payerid","payeeid","agentdate","amount","summary"};
+ * "payerid","payeeid",["payeeno"],"agentdate","amount","summary"};
*/
public class CheckFileLine {
private String transdate;
private String agentrefno;
private String payerid;
private String payeeid;
+ private String payeeno; //fixme: 银行测试环境修改对账单新增账号序号 2020.11.27
private String agentdate;
private Integer amount;
private String summary;
public void setSummary(String summary) {
this.summary = summary;
}
+
+ public String getPayeeno() {
+ return payeeno;
+ }
+
+ public void setPayeeno(String payeeno) {
+ this.payeeno = payeeno;
+ }
}
.append("<ID_NO>").append(idNo).append("</ID_NO>")
.append("<MERCHANT_BCNO>").append(merchantBcno).append("</MERCHANT_BCNO>")
.append("<MERCHANT_NAME>").append(merchantName).append("</MERCHANT_NAME>")
-// .append("<MERCHANT_BCNOSEQ>").append(merchantBcnoSeqno).append("</MERCHANT_BCNOSEQ>") //fixme: 银行测试环境新加 2020.11.27
+ .append("<MERCHANT_BCNOSEQ>").append(merchantBcnoSeqno).append("</MERCHANT_BCNOSEQ>") //fixme: 银行测试环境新加 2020.11.27
.append("<AMOUNT>").append(amount).append("</AMOUNT>")
-// .append("<SCENARIO>").append(scenario).append("</SCENARIO>") //fixme: 银行测试环境新加字段 2020.11.27
+ .append("<SCENARIO>").append(scenario).append("</SCENARIO>") //fixme: 银行测试环境新加字段 2020.11.27
.append("<DESCRIPTION>").append(description).append("</DESCRIPTION>")
- .append("<MAC>").append(MD5.encodeByMD5ForYnrcc(merchantBcno + bcNo + amount)).append("</MAC>")
-// .append("<MAC>").append(MD5.encodeByMD5ForYnrcc(merchantBcno + bcNo + amount + "ynnx@2020|dlsmk" + sn)).append("</MAC>") //fixme: 银行测试环境修改MAC算法 2020.11.27
+// .append("<MAC>").append(MD5.encodeByMD5ForYnrcc(merchantBcno + bcNo + amount)).append("</MAC>")
+ .append("<MAC>").append(MD5.encodeByMD5ForYnrcc(merchantBcno + bcNo + amount + "ynnx@2020|dlsmk" + sn)).append("</MAC>") //fixme: 银行测试环境修改MAC算法 2020.11.27
.append("</root>");
return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
.append("<SN>").append(sn).append("</SN>")
.append("<DZDATE>").append(chkdate).append("</DZDATE>")
.append("<MERCHANT_BCNO>").append("</MERCHANT_BCNO>")
-// .append("<MERCHANT_BCNOSEQ>").append("</MERCHANT_BCNOSEQ>") //fixme: 银行测试环境新加商户银行卡序号字段 2020.11.27
+ .append("<MERCHANT_BCNOSEQ>").append("</MERCHANT_BCNOSEQ>") //fixme: 银行测试环境新加商户银行卡序号字段 2020.11.27
.append("</root>");
return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
.append("<TRANSDATE>").append(transdate).append("</TRANSDATE>")
.append("<TRANSTIME>").append(transtime).append("</TRANSTIME>")
.append("<SN>").append(sn).append("</SN>")
- .append("<STLTRXDATE>").append(stltrxdate).append("</STLTRXDATE>")
-// .append("<STLSNDATE>").append(stltrxdate).append("</STLSNDATE>") //fixme: 银行测试环境改了字段名(STLTRXDATE 改为 STLSNDATE) 2020.11.27
+// .append("<STLTRXDATE>").append(stltrxdate).append("</STLTRXDATE>")
+ .append("<STLSNDATE>").append(stltrxdate).append("</STLSNDATE>") //fixme: 银行测试环境改了字段名(STLTRXDATE 改为 STLSNDATE) 2020.11.27
.append("<STLAMT>").append(stlamt).append("</STLAMT>")
.append("<JNLCOUNT>").append(jnlcount).append("</JNLCOUNT>")
.append("</root>");
/**
* 第一行:总笔数|总金额|代扣总笔数|代扣总金额|退款总笔数|退款总金额|
- * 第二行及以后:交易日期|交易时间|报文业务类型|业务系统流水号|银行流水号|付款银行卡号|收款商户银行卡号|核心记账日期|交易金额|交易摘要|
+ * 第二行及以后:交易日期|交易时间|报文业务类型|业务系统流水号|银行流水号|付款银行卡号|收款商户银行卡号|[账号序号]|核心记账日期|交易金额|交易摘要|
*/
private static final String[] chkFileColumnList = new String[]{"transdate", "transtime", Constant.COL_FLAG,
- Constant.COL_REFNO, Constant.COL_AGENT_REFNO, Constant.COL_PAYERID, Constant.COL_PAYEEID,
+ Constant.COL_REFNO, Constant.COL_AGENT_REFNO, Constant.COL_PAYERID, Constant.COL_PAYEEID, Constant.COL_BANKSEQNO,
Constant.COL_AGENT_DATE, Constant.COL_AMOUNT, Constant.COL_SUMMARY};
private static final String chkFileDelimiter = "\\|";
flag = Constant.FLAG_PAY;
fileHeader.setPayCount(fileHeader.getPayCount() - 1);
fileHeader.setPayAmount(fileHeader.getPayAmount() - record.getAmount());
+ fileHeader.setTotalAmount(fileHeader.getTotalAmount() - record.getAmount());
} else if (FLAG_REFUND.equals(record.getFlag())) {
amount = record.getAmount();
flag = Constant.FLAG_REFUND;
fileHeader.setRefundCount(fileHeader.getRefundCount() - 1);
fileHeader.setRefundAmount(fileHeader.getRefundAmount() - record.getAmount());
+ fileHeader.setTotalAmount(fileHeader.getTotalAmount() + record.getAmount());
} else {
throw new IllegalArgumentException("对账文件【报文业务类型】错误,行数 " + lineno + " 。");
}
fileHeader.setTotalCount(fileHeader.getTotalCount() - 1);
- fileHeader.setTotalAmount(fileHeader.getTotalAmount() - record.getAmount());
+// fileHeader.setTotalAmount(fileHeader.getTotalAmount() - record.getAmount());
writeLine(output, record.getRefno(), record.getAgentrefno(), record.getAgentdate(),
flag, record.getPayerid(), record.getPayeeid(), Constant.STATUS_SUCCESS,
amount, record.getSummary(), lineno - 1);