diff --git a/build.gradle b/build.gradle
index e2bb75d..b332efb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -92,7 +92,7 @@
     annotationProcessor 'org.projectlombok:lombok:1.18.8'
     compileOnly 'org.projectlombok:lombok:1.18.8'
 
-    compile 'com.supwisdom:payapi-sdk:ae0b0e2'
+    compile 'com.supwisdom:payapi-sdk:55725ca'
 
     testImplementation 'org.springframework.boot:spring-boot-starter-test'
     testImplementation 'io.rest-assured:rest-assured:3.3.0'
diff --git a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
index c6bf48f..4be6e83 100644
--- a/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
+++ b/src/main/java/com/supwisdom/dlpay/doorlist/controller/DoorlistMgrController.java
@@ -419,7 +419,7 @@
             TCard card = webInterfaceService.findCardByCustid(customer.getCustid());
 
             customer.setStatus(customer.getStatus());
-            customer.setCustname(response.getName());
+            customer.setCustname(response.getUsername());
 //            customer.setSex(list.getSex());
 //            customer.setEmail(list.getEmail());
 //            customer.setMobile(list.getMobile());
@@ -434,7 +434,7 @@
             if (card!=null) {
                 card.setCardphyid(response.getCardphyid());
                 card.setExpiredate(response.getExpiredate());
-                card.setStatus(response.getStatus());
+                card.setStatus(response.getCardstatus());
                 card.setTranstatus(response.getTransstatus());
                 card.setCardverno(Integer.parseInt(card.getCardverno()) + 1 + "");
                 card.setLastsavedtime(now);
@@ -446,7 +446,7 @@
                 cardTmp.setCustid(response.getUserid());
                 cardTmp.setCardphyid(response.getCardphyid());
                 cardTmp.setExpiredate(response.getExpiredate());
-                cardTmp.setStatus(response.getStatus());
+                cardTmp.setStatus(response.getCardstatus());
                 cardTmp.setTranstatus(response.getTransstatus());
                 cardTmp.setCardverno("1");
                 cardTmp.setLastsavedtime(now);
@@ -457,7 +457,7 @@
             TCustomer customerTmp = new TCustomer();
             customerTmp.setCustid(response.getUserid());
             customerTmp.setStatus("1");
-            customerTmp.setCustname(response.getName());
+            customerTmp.setCustname(response.getUsername());
 //            customerTmp.setSex(list.getSex());
 //            customerTmp.setEmail(list.getEmail());
 //            customerTmp.setMobile(list.getMobile());
@@ -475,7 +475,7 @@
             cardTmp.setCustid(customerTmp.getCustid());
             cardTmp.setCardphyid(response.getCardphyid());
             cardTmp.setExpiredate(response.getExpiredate());
-            cardTmp.setStatus(response.getStatus());
+            cardTmp.setStatus(response.getCardstatus());
             cardTmp.setTranstatus(response.getTransstatus());
             cardTmp.setCardverno("1");
             cardTmp.setLastsavedtime(now);
diff --git a/src/main/java/com/supwisdom/dlpay/task/SyncCustomerTask.java b/src/main/java/com/supwisdom/dlpay/task/SyncCustomerTask.java
index 0f24a75..e649b63 100644
--- a/src/main/java/com/supwisdom/dlpay/task/SyncCustomerTask.java
+++ b/src/main/java/com/supwisdom/dlpay/task/SyncCustomerTask.java
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay.task;
 
 import com.supwisdom.dlpay.api.bean.CardsResponse;
+import com.supwisdom.dlpay.api.bean.CitizenCardInfo;
 import com.supwisdom.dlpay.api.bean.QueryCardsParam;
 import com.supwisdom.dlpay.doorlist.service.DoorlistMgrService;
 import com.supwisdom.dlpay.framework.util.DateUtil;
@@ -96,11 +97,11 @@
 
             CardsResponse response = userProxy.querycards(param);
             if (0 == response.getRetcode()) {
-                List<LinkedHashMap> cards = response.getCards();
-                for (LinkedHashMap card : cards) {//3.根据获取到的card数据进行同步
-                    String cardno = (String) card.get("cardno");
-                    String status = (String) card.get("status");
-                    String transStatus = (String) card.get("transStatus");
+                List<CitizenCardInfo> cards = response.getCards();
+                for (CitizenCardInfo card : cards) {//3.根据获取到的card数据进行同步
+                    String cardno = card.getCardno();
+                    String status = card.getCardstatus();
+                    String transStatus = card.getTransstatus();
                     //(1).判断数据库中是否存在该卡
                     TCard cardByCardno = webInterfaceService.findCardByCardno(cardno);
                     if (cardByCardno == null) {
