卡单次金额上限
diff --git a/supwisdom/sp_consume.c b/supwisdom/sp_consume.c
index da6ab83..5d28351 100644
--- a/supwisdom/sp_consume.c
+++ b/supwisdom/sp_consume.c
@@ -241,6 +241,7 @@
   uint16 ret;
   sp_transdtl_t record;
   MEMCLEAR(&record, sizeof(record));
+  MEMCLEAR(card,sizeof(sp_card_t));
   card->cardtype = pos->cardState.tag_type;
   MEMCPY(card->cardphyid, pos->cardState.snr, 4);
   ret = sp_card_read(card);
@@ -448,7 +449,12 @@
     }
     if(pos->purchase.paid_num > card->waterlimit)
     {
-      disp_hint_info_two(pos,"Í£Ö¹³öË®","ÒÑ´ïµ¥´Î³öË®ÉÏÏÞ",DELAY_TIME2s);
+      disp_hint_info_two(pos, "Í£Ö¹³öË®","ÒÑ´ïµ¥´Î³öË®ÉÏÏÞ", DELAY_TIME2s);
+      cardWorkState->current_state = CARDWORKSTATUS_STOPPING;
+    }
+    else if(pos->purchase.paid_sum > card->amountlimit)
+    {
+      disp_hint_info_two(pos, "Í£Ö¹³öË®","ÒÑ´ïµ¥´Î½ð¶îÉÏÏÞ", DELAY_TIME2s);
       cardWorkState->current_state = CARDWORKSTATUS_STOPPING;
     }
     cardWorkState->pause_tick = timer_get_ticker();
@@ -640,6 +646,7 @@
       break;
     }
     disp_hint_info_two(pos, "ÇëÇó¶þάÂë","ÇëÉÔµÈ...",0);
+	MEMCLEAR(&CARD,sizeof(sp_card_t));
     ret = sp_qrcode_init(pos, &CARD);
     if(ret)
     {
@@ -704,11 +711,16 @@
       cardWorkState->current_state = CARDWORKSTATUS_ERROR;
       break;
     }
-    if(pos->purchase.paid_num > CARD.waterlimit)
+    if(pos->purchase.paid_num >CARD.waterlimit)
     {
       disp_hint_info_two(pos, "Í£Ö¹³öË®","ÒÑ´ïµ¥´Î³öË®ÉÏÏÞ", DELAY_TIME2s);
       cardWorkState->current_state = CARDWORKSTATUS_STOPPING;
     }
+    else if(pos->purchase.paid_sum > CARD.amountlimit)
+    {
+      disp_hint_info_two(pos, "Í£Ö¹³öË®","ÒÑ´ïµ¥´Î½ð¶îÉÏÏÞ", DELAY_TIME2s);
+      cardWorkState->current_state = CARDWORKSTATUS_STOPPING;
+    }
     cardWorkState->last_state = cardWorkState->current_state;
     cardWorkState->pause_tick = sp_get_ticker();
     break;