diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
index c1d15fe..0171ced 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
@@ -318,10 +318,6 @@
         }
         if (resp.sinstatus == YnrccUtil.TRANSTYPE_SIGNCARD ) {
             signed = TradeDict.STATUS_YES
-            if(!card.signed){
-                card.signed = true
-                mobileApiService.saveCard(card)
-            }
             //绑卡返回已签约，保存UserSecret
             mobileApiService.signBxy(card,SignBxyParam().apply {
                 this.userid = person.userid
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
index 0abec96..1214614 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
@@ -428,22 +428,18 @@
         var needupdate = false
         if (resp.sinstatus == YnrccUtil.TRANSTYPE_SIGNCARD ) {
             signed = TradeDict.STATUS_YES
-            if(!card.signed){
-                card.signed = true
-                mobileApiService.saveCard(card)
-            }
-            user.signedtime = DateUtil.getNow();
-            mobileApiService.saveUser(user)
             //  如果银行返回已签约，保存密钥到UserSecret表
             mobileApiService.signBxy(card, SignBxyParam().apply {
-                this.uid=user.uid
+                this.uid = user.uid
                 this.userid = user.userid
                 this.secertkey = user.secertkey
                 this.rsapublic = user.rsapublic
                 this.rsaprivate = user.rsaprivate
             })
-            needupdate = true;
 
+            user.signedtime = DateUtil.getNow()
+            mobileApiService.saveUser(user)
+            needupdate = true;
         }
         if( user.userid.isNullOrEmpty()){
             user.userid = person.userid
@@ -489,12 +485,6 @@
 
         if (resp.sinstatus == YnrccUtil.TRANSTYPE_SIGNCARD ) {
             signed = TradeDict.STATUS_YES
-            if(!card.signed){
-                card.signed = true
-                mobileApiService.saveCard(card)
-            }
-            user.signedtime = DateUtil.getNow();
-            mobileApiService.saveUser(user)
             //  如果银行返回已签约，保存密钥到UserSecret表
             mobileApiService.signBxy(card, SignBxyParam().apply {
                 this.uid=user.uid
@@ -503,6 +493,9 @@
                 this.rsapublic = user.rsapublic
                 this.rsaprivate = user.rsaprivate
             })
+            user.signedtime = DateUtil.getNow()
+            mobileApiService.saveUser(user)
+
         }
 
         return JsonResult.ok("OK")
