diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
index 84a951e..fab8949 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
@@ -130,6 +130,8 @@
 
   public static final int NO_DEAL_EEROR = 30005; // 无交易记录
 
+  public static final int BUSINESS_USER_NO_SIGN = 30006; // 用户未签约
+
   //============= 交易错误 ============//
   public static final int CARD_NOT_EXISTS = 40000; //卡不存在
 
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
index 8d8a26d..da34d6d 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
@@ -849,14 +849,16 @@
      * */
     @PostMapping("/ynrccpay/order")
     fun ynrccPayOrder(@Valid @RequestBody param: YnrccPayOrderParam): ResponseEntity<Any> {
-        val userSign = ynrccNetPayBusinessService.queryUserYnrccPaySign(param.bankcardno, param.shopaccno)
+        val userSign = ynrccNetPayBusinessService.queryUserYnrccPaySignInfo(param.bankcardno, param.shopaccno)
+        if (null == userSign || !userSign.isSignFlag || StringUtil.isEmpty(userSign.customerSignNo)) {
+            return ResponseEntity.ok(ResponseBodyBuilder.create()
+                .fail(TradeErrorCode.BUSINESS_USER_NO_SIGN, "用户未签约农商行网关快捷支付！"))
+        }
+
         val person = userService.findOnePersonByUserid(param.userid)
         if (person.userid != userSign.userid) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
                     .fail(TradeErrorCode.INPUT_DATA_ERROR, "银行卡持有人错误！"))
-        } else if (!userSign.isSignFlag || StringUtil.isEmpty(userSign.customerSignNo)) {
-            return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .fail(TradeErrorCode.BUSINESS_DEAL_ERROR, "用户未签约农商行网关快捷支付！"))
         }
         val dtlType = consumePayService.getDtltypeDictionary(param.dtltype, Dictionary.DTLTYPES)
         if (consumePayService.checkShopPaytype(param.shopaccno, TradeDict.PAYTYPE_YNRCC_PAY)) {
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/ynrcc_netpay_business_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/ynrcc_netpay_business_service.kt
index 6489303..65f8145 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/ynrcc_netpay_business_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/ynrcc_netpay_business_service.kt
@@ -215,6 +215,10 @@
                 ?: throw RequestParamCheckException("银行卡签约记录不存在！")
     }
 
+    override fun queryUserYnrccPaySignInfo(bankcardno: String, shopaccno: String): TYnrccPaySign? {
+        return ynrccPaySignDao.getUserSign(bankcardno.trim(), shopaccno.trim())
+    }
+
     override fun doYnrccPayInit(transdtl: TTransactionMain, userSign: TYnrccPaySign): YnrccPayOrderResponse {
         if (StringUtil.isEmpty(transdtl.refno) || null == transdtl.shopDtl || null == transdtl.shopDtl.amount) {
             throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR, "流水初始化错误！")
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/ynrcc_netpay_business_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/ynrcc_netpay_business_service.kt
index aa2ddec..4884f07 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/ynrcc_netpay_business_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/ynrcc_netpay_business_service.kt
@@ -24,6 +24,9 @@
     fun queryUserYnrccPaySign(bankcardno: String, shopaccno: String): TYnrccPaySign
 
     @Transactional(rollbackFor = [Exception::class], readOnly = true)
+    fun queryUserYnrccPaySignInfo(bankcardno: String, shopaccno: String): TYnrccPaySign?
+
+    @Transactional(rollbackFor = [Exception::class], readOnly = true)
     fun doYnrccPayInit(transdtl: TTransactionMain, userSign: TYnrccPaySign): YnrccPayOrderResponse
 
     @Transactional(rollbackFor = [Exception::class])
