diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayResp.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayResp.java
index 2ed95c0..3f01175 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayResp.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayResp.java
@@ -10,6 +10,7 @@
   private String transdate;
   private String transtime;
   private String bankjourno; //银行流水号
+  private String sinstatus; //1-已签约 2-未签约
   private String captcha; //验证码
   private String status; //0-成功；1-失败；2-已退款；3-部分退款
   private String filename;
@@ -59,6 +60,15 @@
     this.bankjourno = bankjourno;
   }
 
+  @XmlElement(name = "SINSTATUS")
+  public String getSinstatus() {
+    return sinstatus;
+  }
+
+  public void setSinstatus(String sinstatus) {
+    this.sinstatus = sinstatus;
+  }
+
   @XmlElement(name = "CAPTCHA")
   public String getCaptcha() {
     return captcha;
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/util/YnrccUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/util/YnrccUtil.java
index e2ef84f..d5a2528 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/util/YnrccUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/util/YnrccUtil.java
@@ -50,7 +50,7 @@
     errcode.put("0401", "原始流水不存在");
     errcode.put("0402", "原始流水未成功");
     errcode.put("0403", "原始流水已退款");
-    errcode.put("4004", "商户账户余额不足");
+    errcode.put("0404", "商户账户余额不足");
     errcode.put("0405", "不在退款时间范围内");
     errcode.put("0406", "当日无交易明细");
     errcode.put("0407", "非大理市民卡,不允许交易");
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/impl/citizencard_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/impl/citizencard_service_impl.kt
index 5785262..96b8dda 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/impl/citizencard_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/impl/citizencard_service_impl.kt
@@ -64,6 +64,7 @@
                 "transcode" to YnrccUtil.BANKCARD_BIND_TRANSCODE,
                 "transdate" to systime.hostdate,
                 "transtime" to systime.hosttime,
+                "categorie" to YnrccUtil.DLPAY_CATEGORIE,
                 "refno" to refno,
                 "bankcardno" to bankcardno,
                 "username" to username,
@@ -272,7 +273,7 @@
         val systime = systemUtilService.sysdatetime
         val params = hashMapOf<String, String>()
         params.plus(mapOf(
-                "transcode" to YnrccUtil.BANKCARD_PAYREFUND_TRANSCODE,
+                "transcode" to YnrccUtil.BANKCARD_QUERYRESULT_TRANSCODE,
                 "transdate" to systime.hostdate,
                 "transtime" to systime.hosttime,
                 "refno" to refno,
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java
index 8ef13f7..03f957f 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java
@@ -44,6 +44,7 @@
         .append("<TRANSCODE>").append(transcode).append("</TRANSCODE>")
         .append("<TRANSDATE>").append(transdate).append("</TRANSDATE>")
         .append("<TRANSTIME>").append(transtime).append("</TRANSTIME>")
+        .append("<CATEGORIE>").append(categorie).append("</CATEGORIE>")
         .append("<SN>").append(sn).append("</SN>")
         .append("<BC_NO>").append(bcNo).append("</BC_NO>")
         .append("<NAME>").append(name).append("</NAME>")
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayResp.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayResp.java
index 7c18daf..f5d5263 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayResp.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayResp.java
@@ -11,6 +11,7 @@
   private String transtime;
   private String bankjourno;
   private String captcha;
+  private String sinstatus;
   private String status;
   private String filename;
 
@@ -59,6 +60,15 @@
     this.bankjourno = bankjourno;
   }
 
+  @XmlElement(name = "SINSTATUS")
+  public String getSinstatus() {
+    return sinstatus;
+  }
+
+  public void setSinstatus(String sinstatus) {
+    this.sinstatus = sinstatus;
+  }
+
   @XmlElement(name = "CAPTCHA")
   public String getCaptcha() {
     return captcha;
@@ -89,4 +99,6 @@
   public String errPrint() {
     return "error: code=[" + this.code + "],message=[" + this.message + "]";
   }
+
+
 }
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
index 5afd7d0..8c229d3 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
@@ -52,13 +52,13 @@
    */
   @PostMapping("/bindcard")
   public DlpayResp bindBankcard(@FormParam("transcode") String transcode, @FormParam("transdate") String transdate,
-                                @FormParam("transtime") String transtime, @FormParam("refno") String refno,
-                                @FormParam("bankcardno") String bankcardno, @FormParam("username") String username,
-                                @FormParam("idtype") String idtype, @FormParam("idno") String idno,
-                                @FormParam("phone") String phone,
+                                @FormParam("transtime") String transtime, @FormParam("categorie") String categorie,
+                                @FormParam("refno") String refno, @FormParam("bankcardno") String bankcardno,
+                                @FormParam("username") String username, @FormParam("idtype") String idtype,
+                                @FormParam("idno") String idno, @FormParam("phone") String phone,
                                 @FormParam("sign_type") String sign_type, @FormParam("sign") String sign) {
     DlpayResp resp = new DlpayResp();
-    if (!ynrccParamCheckService.checkBindCardParam(transcode, transdate, transtime, refno, bankcardno, username, idtype, idno, phone, sign_type, sign, resp)) {
+    if (!ynrccParamCheckService.checkBindCardParam(transcode, transdate, transtime, refno, bankcardno, username, idtype, idno, phone, categorie, sign_type, sign, resp)) {
       logger.error(resp.errPrint());
       return resp;
     }
@@ -67,6 +67,7 @@
     params.put("transcode", transcode);
     params.put("transdate", transdate);
     params.put("transtime", transtime);
+    params.put("categorie", categorie);
     params.put("refno", refno);
     params.put("bankcardno", bankcardno);
     params.put("username", username);
@@ -84,6 +85,7 @@
       req.setTranscode(transcode);
       req.setTransdate(transdate);
       req.setTranstime(transtime);
+      req.setCategorie(categorie);
       req.setSn(refno);
       req.setBcNo(bankcardno);
       req.setName(username);
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/YnrccParamCheckService.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/YnrccParamCheckService.java
index 88b1fa8..4eb674b 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/YnrccParamCheckService.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/YnrccParamCheckService.java
@@ -7,7 +7,7 @@
 public interface YnrccParamCheckService {
   boolean checkBindCardParam(String transcode, String transdate, String transtime, String refno,
                              String bankcardno, String username, String idtype, String idno,
-                             String phone, String sign_type, String sign, DlpayResp resp);
+                             String phone, String categorie, String sign_type, String sign, DlpayResp resp);
 
   boolean checkSign(Map<String, String> param);
 
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccApiServiceImpl.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccApiServiceImpl.java
index 3f55da7..94eb9f7 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccApiServiceImpl.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccApiServiceImpl.java
@@ -71,7 +71,7 @@
     }
 
     try {
-      DlpayResp resp = XmlUtils.getXmlToObject(returnXml, "GBK", DlpayResp.class);
+      DlpayResp resp = XmlUtils.getXmlToObject(returnXml.substring(8), "GBK", DlpayResp.class);
       return resp;
     } catch (Exception e) {
       throw new BussinessException("返回报文解析异常！");
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java
index c490e1b..5a3c5ab 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java
@@ -58,7 +58,7 @@
   }
 
   @Override
-  public boolean checkBindCardParam(String transcode, String transdate, String transtime, String refno, String bankcardno, String username, String idtype, String idno, String phone, String sign_type, String sign, DlpayResp resp) {
+  public boolean checkBindCardParam(String transcode, String transdate, String transtime, String refno, String bankcardno, String username, String idtype, String idno, String phone, String categorie, String sign_type, String sign, DlpayResp resp) {
     if (!checkYnrccBaseParam(transcode, transdate, transtime, refno, sign_type, sign, resp)) {
       return false;
     }
@@ -87,6 +87,11 @@
       resp.setMessage("请求参数错误[手机号]");
       return false;
     }
+    if (StringUtil.isEmpty(categorie)) {
+      resp.setCode(ErrorCode.REQ_PARAM_ERROR);
+      resp.setMessage("请求参数错误[消费类别]");
+      return false;
+    }
 
     return true;
   }
@@ -116,12 +121,7 @@
   @Override
   public boolean checkSignCardParam(String transcode, String transdate, String transtime, String refno, String categorie, String bankcardno, String username,
                                     String idtype, String idno, String phone, String transtype, String sign_type, String sign, DlpayResp resp) {
-    if (!checkBindCardParam(transcode, transdate, transtime, refno, bankcardno, username, idtype, idno, phone, sign_type, sign, resp)) {
-      return false;
-    }
-    if (StringUtil.isEmpty(categorie)) {
-      resp.setCode(ErrorCode.REQ_PARAM_ERROR);
-      resp.setMessage("请求参数错误[消费类别]");
+    if (!checkBindCardParam(transcode, transdate, transtime, refno, bankcardno, username, idtype, idno, phone, categorie, sign_type, sign, resp)) {
       return false;
     }
     if (StringUtil.isEmpty(transtype)) {
