diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java
index 39a759e..6befaec 100644
--- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java
@@ -58,6 +58,9 @@
   @PostMapping("/api/user/bindcard")
   Map<String, Object> bindCard(@RequestBody BindCardParam param);
 
+  @PostMapping("/api/user/bindcardcode")
+  Map<String, Object> bindCardCode(@RequestParam("userid") String userid,@RequestParam("phone") String phone);
+
   @PostMapping("/api/user/signbxy")
   ApiResponse signbxy(@RequestParam("userid") String userid,@RequestParam("code") String code,@RequestParam("phone") String phone);
 
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 d20d616..de8dd4a 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,6 +318,35 @@
     }
 
     /**
+     * 签约验证码
+     */
+    @PostMapping("/bindcardcode")
+    fun bindCardCode(userid: String,phone:String):ResponseEntity<Any>{
+        val card = mobileApiService.findCardByUserid(userid)
+                ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
+                        .fail(400, "卡片不存在，请重新绑定"))
+        //call sign api
+        val person = userService.findOnePersonByUserid(card.userid)
+        var signed=""
+        //call api
+        val resp = citizencardPayService.bindCard(card.cardno, person.name, person.idtype, person.idno, phone)
+        if (resp.code != "0000") {
+            return ResponseEntity.ok(ResponseBodyBuilder.create()
+                    .fail(500, resp.message))
+        }
+
+        if (resp.sinstatus == YnrccUtil.TRANSTYPE_SIGNCARD ) {
+            signed = TradeDict.STATUS_YES
+            if(!card.signed){
+                card.signed = true
+                mobileApiService.saveCard(card)
+            }
+        }
+        return  ResponseEntity.ok(ResponseBodyBuilder.create().data("signed", signed)
+                .success("ok"))
+    }
+
+    /**
      * 签约银行协议
      */
     @PostMapping("/signbxy")
