2 次代码提交 0de990cdea ... cbfe23ab63

作者 SHA1 备注 提交日期
  zoufan_kd cbfe23ab63 Merge remote-tracking branch 'origin/master' 7 月之前
  zoufan_kd eda143e4b0 付款代码 7 月之前
共有 1 个文件被更改,包括 40 次插入26 次删除
  1. 40 26
      src/main/java/fi/cas/opplugin/PayBillToolUtil.java

+ 40 - 26
src/main/java/fi/cas/opplugin/PayBillToolUtil.java

@@ -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();