消费金额按厘计算
diff --git a/supwisdom/sp_communicate.c b/supwisdom/sp_communicate.c
index fab5b44..3ea33cf 100644
--- a/supwisdom/sp_communicate.c
+++ b/supwisdom/sp_communicate.c
@@ -144,7 +144,7 @@
     }
     else if(IS_KEY(PK_INT_AMOUNT_LIMIT,field.key))
     {
-      card->amountlimit = (uint32)field.val.intval;
+      card->amountlimit = (uint32)field.val.intval*10;
     }
   }
   //disp_hint_info(pos,"Éí·ÝÈÏÖ¤³É¹¦",DELAY_TIME1s);
@@ -167,7 +167,7 @@
   cw_pack_map_size(&pack,4);
 
   sp_pack_put_bin(&pack, PK_BIN_CARDPHYID, card->cardphyid, 4);
-  sp_pack_put_bin(&pack, PK_BIN_CITIZEN_CARDNO, card->citizen_cardno+8, 4);
+  sp_pack_put_bin(&pack, PK_BIN_CITIZEN_CARDNO, card->citizen_cardno, 4);
   sp_pack_put_bin(&pack, PK_BIN_DEVPHYID, pos->devphyid, 4);
   sp_pack_put_bin(&pack, PK_BIN_DEVTIME, ctime, 6);
 
@@ -360,7 +360,7 @@
     }
     else if(IS_KEY(PK_INT_PAYAMT, field.key))
     {
-      card->qrcode.paidAmount = (uint8)field.val.intval;
+      card->qrcode.paidAmount = (uint32)field.val.intval;
     }
     else if(IS_KEY(PK_INT_FEEAMOUNT,field.key))
     {
@@ -384,7 +384,7 @@
     }
     else if(IS_KEY(PK_INT_AMOUNT_LIMIT,field.key))
     {
-      card->amountlimit = (uint16)field.val.intval;
+      card->amountlimit = (uint32)field.val.intval*10;
     }
   }
   return resp.retcode;
@@ -417,10 +417,12 @@
   cw_pack_context pack;
   sp_protocol_request_t req;
 
+  pos->heartbeat.heart_status = HEART_SEND;
+
   transdtl_account_cobilLno = transdtl->cobillno;
   sp_protocol_req_init(&req, SP_CMD_TRANSDTL_ACCOUNT);
   sp_pack_init(&pack,req.data,sizeof(req.data));
-  cw_pack_map_size(&pack,10);
+  cw_pack_map_size(&pack,11);
 
   sp_pack_put_bin(&pack, PK_BIN_DEVPHYID, transdtl->devphyid,4);
   sp_pack_put_bin(&pack, PK_BIN_TRANSDATE, transdtl->transdate,3);
@@ -428,6 +430,7 @@
   sp_pack_put_int(&pack, PK_INT_COBILLNO, transdtl->cobillno);
   sp_pack_put_bin(&pack, PK_BIN_CARDPHYID, transdtl->cardphyid,
                   sizeof(transdtl->cardphyid));
+  sp_pack_put_bin(&pack, PK_BIN_CITIZEN_CARDNO, transdtl->cardno, 4);
   sp_pack_put_int(&pack, PK_INT_TRANSWAY, transdtl->transway);
   sp_pack_put_int(&pack, PK_INT_AMOUNT, transdtl->amount);
   sp_pack_put_int(&pack, PK_INT_PAYAMT, transdtl->paidAmount);
@@ -447,29 +450,30 @@
   cw_unpack_context unpack;
   unpack_field_t field;
 
-  if(!resp->retcode)
+  if(resp->retcode)
   {
-    sp_unpack_init(&unpack, resp->data, resp->datalen);
-    size = sp_unpack_map_size(&unpack);
-    while(size-- > 0)
+    return resp->retcode;
+  }
+  pos->heartbeat.heart_status = HEART_RECV;
+  sp_unpack_init(&unpack, resp->data, resp->datalen);
+  size = sp_unpack_map_size(&unpack);
+  while(size-- > 0)
+  {
+    sp_unpack_value(&unpack,&field);
+    if(IS_KEY(PK_INT_COBILLNO,field.key))
     {
-      sp_unpack_value(&unpack,&field);
-      if(IS_KEY(PK_INT_COBILLNO,field.key))
+      if(field.val.intval == transdtl_account_cobilLno)
       {
-        if(field.val.intval == transdtl_account_cobilLno)
+        pos->unconfirm_transdtl.transaddr+= sizeof(sp_transdtl_t);
+        if(ADDR_TRANSDTL_END <= pos->unconfirm_transdtl.transaddr)
         {
-          pos->unconfirm_transdtl.transaddr+= sizeof(sp_transdtl_t);
-          if(ADDR_TRANSDTL_END <= pos->unconfirm_transdtl.transaddr)
-          {
-            pos->unconfirm_transdtl.transaddr= ADDR_TRANSDTL_BEGIN;
-          }
-          return sp_write_unconfirm_record(pos);
+          pos->unconfirm_transdtl.transaddr= ADDR_TRANSDTL_BEGIN;
         }
+        return sp_write_unconfirm_record(pos);
       }
     }
   }
   return resp->retcode;
-
 }
 
 static uint8 sp_confirm_heartbeat(sp_protocol_response_t* resp, sp_pos_t* pos)