diff --git a/src/main/java/com/supwisdom/dlpay/bus/service/impl/QrcodeConsumeServiceImpl.java b/src/main/java/com/supwisdom/dlpay/bus/service/impl/QrcodeConsumeServiceImpl.java
index 61bf880..b233471 100644
--- a/src/main/java/com/supwisdom/dlpay/bus/service/impl/QrcodeConsumeServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/bus/service/impl/QrcodeConsumeServiceImpl.java
@@ -78,8 +78,10 @@
   public TThirdpartQrcodeTransdtl saveQRcodeTransdtl(String appid, String billno, String cardno, long amount, String transdate, String transtime, String qrcode, String tac, String termdesc, String shopaccno, boolean offlineflag) throws Exception {
     TThirdpartQrcodeTransdtl transdtl = thirdpartQrcodeTransdtlDao.getByBillnoWithLock(billno, appid);
     if (null != transdtl) {
-      if (cardno.equals(transdtl.getCardno()) && amount == transdtl.getAmount() && transdate.equals(transdtl.getTransdate())
-          && transtime.equals(transdtl.getTranstime()) && qrcode.equals(transdtl.getQrcode()) && tac.equals(transdtl.getTac())) {
+      if (amount == transdtl.getAmount() && transdate.equals(transdtl.getTransdate()) && transtime.equals(transdtl.getTranstime()) && qrcode.equals(transdtl.getQrcode()) &&
+          ((cardno == null && tac == null && transdtl.getCardno() == null && transdtl.getTac() == null)  //联机
+              || (cardno != null && tac != null && cardno.equals(transdtl.getCardno()) && tac.equals(transdtl.getTac()))) //脱机
+      ) {
         if (BusConstant.STATUS_TRANSDTL_INIT.equals(transdtl.getStatus()) && StringUtil.isEmpty(transdtl.getRefno())) {
           return transdtl; //重复请求
         } else {
