|
@@ -51,6 +51,9 @@ public class PayBillToolUtil {
|
|
|
createElement(doc, body, "channelcode", "经费共享");//发起渠道
|
|
|
Calendar currentdate = Calendar.getInstance();
|
|
|
createElement(doc, body, "channeldate", TypeUtils.date2String(currentdate.getTime(),"yyyyMMdd"));//发起渠道日期
|
|
|
+
|
|
|
+ payBillEntity.set("nckd_fqqdrq",TypeUtils.date2String(currentdate.getTime(),"yyyyMMdd"));
|
|
|
+
|
|
|
String channelserno = payBillEntity.get("billno")+"-"+payBillEntity.getInt("nckd_bbh");
|
|
|
createElement(doc, body, "channelserno", channelserno);//发起渠道流水
|
|
|
createElement(doc, body, "channeltime", currentdate.get(Calendar.HOUR)+""+currentdate.get(Calendar.MINUTE)+""+currentdate.get(Calendar.SECOND));
|
|
@@ -63,7 +66,7 @@ public class PayBillToolUtil {
|
|
|
//付款账号
|
|
|
DynamicObject payeracctbankEntity = BusinessDataServiceHelper.loadSingle(payBillEntity.getDynamicObject("payeracctbank").getPkValue(), "am_accountbank");
|
|
|
String payeracc = payeracctbankEntity.getString("bankaccountnumber");
|
|
|
- String payername = payeracctbankEntity.getString("name");
|
|
|
+ String payername = payeracctbankEntity.getString("acctname");
|
|
|
createElement(doc, body, "payeracc", payeracc);//付款账户
|
|
|
createElement(doc, body, "payername", payername);//付款人名称
|
|
|
createElement(doc, body, "realpayeracc", payeracc);//实际付款人账户
|
|
@@ -182,36 +185,44 @@ public class PayBillToolUtil {
|
|
|
if(cbsReturnJson==null){
|
|
|
isSuccess = false;
|
|
|
errMsg.append("单据号:").append(billNum).append(",推送支付前置失败,");
|
|
|
- errMsg.append("错误号:").append("XXXXXX");
|
|
|
+ errMsg.append("错误号:").append("XXXXXXX");
|
|
|
errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果");
|
|
|
errMsg.append("\r\n");
|
|
|
}else{
|
|
|
- String errcode =cbsReturnJson.getString("errorcode");
|
|
|
-
|
|
|
- if ("FIN0000".equals(errcode)) {//已受理,不代表支付成功
|
|
|
- isSuccess = true;
|
|
|
- errMsg.append("单据号:").append(billNum).append(",推送支付前置成功!");
|
|
|
- payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1
|
|
|
- payBillEntity.set("nckd_sbyy",cbsReturnJson.getString("errormsg"));//错误信息
|
|
|
- String zfstatus = cbsReturnJson.getString("status");
|
|
|
- if("S".equals(zfstatus)){//成功
|
|
|
- payBillEntity.set("nckd_paystatus",3);
|
|
|
- }else if("U".equals(zfstatus)){//在途
|
|
|
- payBillEntity.set("nckd_paystatus",2);//支付中
|
|
|
- }else if("F".equals(zfstatus)){//失败
|
|
|
- payBillEntity.set("nckd_paystatus",4);//支付失败
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
+ JSONObject bodyinfo = cbsReturnJson.getJSONObject("Message").getJSONObject("Body");
|
|
|
+ if(bodyinfo==null){
|
|
|
isSuccess = false;
|
|
|
errMsg.append("单据号:").append(billNum).append(",推送支付前置失败,");
|
|
|
- errMsg.append("错误号:").append(errcode);
|
|
|
- errMsg.append(",错误原因:").append(cbsReturnJson.getString("errormsg"));
|
|
|
+ errMsg.append("错误号:").append("DDDDDDD");
|
|
|
+ errMsg.append(",错误原因:").append("接口已连通,但无法解析返回结果"+cbsReturnJson.toString());
|
|
|
errMsg.append("\r\n");
|
|
|
+ }else{
|
|
|
+ String errcode =bodyinfo.getString("errorcode");
|
|
|
+
|
|
|
+ if ("FIN0000".equals(errcode)) {//已受理,不代表支付成功
|
|
|
+ isSuccess = true;
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",推送支付前置成功!");
|
|
|
+ payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1
|
|
|
+ payBillEntity.set("nckd_sbyy",bodyinfo.getString("errormsg"));//错误信息
|
|
|
+ String zfstatus = bodyinfo.getString("status");
|
|
|
+ if("S".equals(zfstatus)){//成功
|
|
|
+ payBillEntity.set("nckd_paystatus",3);
|
|
|
+ }else if("U".equals(zfstatus)){//在途
|
|
|
+ payBillEntity.set("nckd_paystatus",2);//支付中
|
|
|
+ }else if("F".equals(zfstatus)){//失败
|
|
|
+ payBillEntity.set("nckd_paystatus",4);//支付失败
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ isSuccess = false;
|
|
|
+ errMsg.append("单据号:").append(billNum).append(",推送支付前置失败,");
|
|
|
+ errMsg.append("错误号:").append(errcode);
|
|
|
+ errMsg.append(",错误原因:").append(bodyinfo.getString("errormsg"));
|
|
|
+ errMsg.append("\r\n");
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
- ////返回日志处理
|
|
|
- System.out.println("调用支付前置接口返回值:" + cbsReturnJson.toString());
|
|
|
|
|
|
if (isSuccess) {
|
|
|
SaveServiceHelper.update(new DynamicObject[]{payBillEntity});
|
|
@@ -227,10 +238,13 @@ public class PayBillToolUtil {
|
|
|
logInfo.set("number",channelserno);
|
|
|
logInfo.set("name",payBillEntity.get("billno")+"付款日志");
|
|
|
logInfo.set("status","A");
|
|
|
+ logInfo.set("enable","1");
|
|
|
+ Calendar currentdate = Calendar.getInstance();
|
|
|
+ logInfo.set("nckd_redate",currentdate.getTime());
|
|
|
logInfo.set("nckd_billno",payBillEntity.get("billno"));
|
|
|
logInfo.set("nckd_payid",payBillEntity.getPkValue()+"");
|
|
|
- logInfo.set("nckd_qqbw",qqbw);
|
|
|
- logInfo.set("nckd_fhbw",fhbw);
|
|
|
+ logInfo.set("nckd_qqbw_tag",qqbw);
|
|
|
+ logInfo.set("nckd_fhbw_tag",fhbw);
|
|
|
logInfo.set("nckd_djlx","1");
|
|
|
OperationServiceHelper.executeOperate("save","nckd_zfjkdyrz",new DynamicObject[]{logInfo});
|
|
|
|
|
@@ -246,7 +260,7 @@ public class PayBillToolUtil {
|
|
|
try {
|
|
|
Socket client = new Socket(serverName,TypeUtils.nullToInt(port));
|
|
|
int messageLength = xmlData.getBytes("GBK").length;
|
|
|
- String header = String.format("%08dXMLBTSCO001%%%%%%%%%%%%%%%%%%%%%%%%", messageLength);
|
|
|
+ String header = String.format("%08dXMLBTSCO001%%%%%%%%%%%%%%%%%%%%%%%%%%", messageLength);
|
|
|
String fullMessage = header + xmlData;
|
|
|
OutputStream outToServer = client.getOutputStream();
|
|
|
|