diff --git a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java
index be86202..41a1adc 100644
--- a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java
+++ b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java
@@ -162,7 +162,7 @@
     //param.setTenantid("default");
     param.setShopaccno("2000000012");
     param.setQrcode("134985742861278239");
-    param.setUserid("402882816be4b6b9016be4b78ab30001");
+    param.setUserid("402882816c2727a2016c2728165f0001");
     param.setDtltype("canteen");
     param.setSpip("172.28.43.3");
     QrcodePayResponse response = consumePropxy.qrcodePayInit(param);
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
index ccbb872..150f0cd 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
@@ -264,6 +264,7 @@
         + MoneyUtil.YuanToFen(this.availbal)
         + MoneyUtil.YuanToFen(this.balance)
         + MoneyUtil.YuanToFen(this.frozebal);
+    System.out.println("accno="+this.accno+",data="+data);
     return Signature.generateTac(this.accno, data);
   }
 
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Signature.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Signature.java
index 849d275..184130f 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Signature.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Signature.java
@@ -16,6 +16,7 @@
     if (tenant == null) {
       throw new IllegalArgumentException("TenantID 未定义");
     }
+    System.out.println("factor="+factor+",data="+data+",tenant="+tenant);
     return HMACUtil.sha256HMAC(deliveryKey(tenant, factor), data).substring(0, 24);
   }
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
index a7cf9a7..dde1fe6 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
@@ -146,8 +146,9 @@
         shopacc.setOpendate(dt.getHostdate());
         shopacc.setBalance(0D);
         shopacc.setTenantId(shop.getTenantId());
+        shopacc = shopaccDao.save(shopacc);
+        shopacc.setMac(shopacc.genMAC());
         shopaccDao.save(shopacc);
-
         shop.setShopaccno(shopacc.getShopaccno());
         shopDao.save(shop);
 
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
index 0cc0b4d..8b04848 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
@@ -118,8 +118,9 @@
       account.setLastdayDpsamt(0.0);
       account.setLastdayTransamt(0.0);
       account.setOpendate(systemDateTime.getHostdate());
-      account.setTac(account.generateTac());
       account.setTenantid(person.getTenantid());
+      account = accountDao.save(account);
+      account.setTac(account.generateTac());
       accountDao.save(account);
     }
     return JsonResult.ok("添加成功");
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt
index 50a80d1..ff890fb 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt
@@ -67,7 +67,7 @@
         if (shoptypeCheck.isInEnums(shop.shoptype, ShopTypes.NORMAL)) {
             //非商户组要创建账号
             val shopaccno = String.format("2%09d", shop.shopid)
-            shopaccDao.save(TShopacc().apply {
+            var acc = shopaccDao.save(TShopacc().apply {
                 this.shopaccno = shopaccno
                 this.shopid = shop.shopid
                 this.shopname = shop.shopname
@@ -76,6 +76,8 @@
                 this.opendate = shop.opendate
                 this.tenantId = param.tenantid
             })
+            acc.mac = acc.genMAC()
+            shopaccDao.save(acc)
             shop.shopaccno = shopaccno
             shopDao.save(shop) //更新账号
         }
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
index 80ad233..c19454b 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
@@ -56,7 +56,7 @@
 
         if (accountDao.findByUseridAndSubjno(person.userid, Subject.SUBJNO_PERSONAL_DEPOSIT) == null) {
             //开户
-            TAccount().apply {
+            var a = TAccount().apply {
                 accname = person.name
                 subjno = Subject.SUBJNO_PERSONAL_DEPOSIT
                 userid = person.userid
@@ -75,6 +75,8 @@
                 tac = this.generateTac()
                 accountDao.save(this)
             }
+            a.tac = a.generateTac()
+            accountDao.save(a)
         }
         personIdentityDao.save(TPersonIdentity().apply {
             thirdUid = param.uid
