diff --git a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
index ceb15e8..01245b0 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
@@ -256,13 +256,20 @@
     private fun dealIntent() {
         amount = this.intent.getIntExtra("amount", 0)
         payWay = this.intent.getStringExtra("payway")
+        val operation = this.intent.getStringExtra("operation")
+        if (operation == "reverse") {
+            presenter.clickToReverse(amount)
+            dialogPurchase!!.show("等待冲正", CommonUtil.showFormatAmount("金额:", amount))
+        }
         this.intent.putExtra("amount", "0")
         this.intent.putExtra("payway", "")
+        this.intent.putExtra("operation", "")
     }
 
     override fun onNewIntent(intent: Intent) {
         this.intent.putExtra("amount", intent.getStringExtra("amount"))
         this.intent.putExtra("payway", intent.getStringExtra("payway"))
+        this.intent.putExtra("operation", intent.getStringExtra("operation"))
     }
 
     private fun refresh() {
@@ -289,6 +296,7 @@
             try {
                 amount = Integer.parseInt(record.paraval)
                 amountTxt.text = String.format("%.02f", amount / 100.0f)
+                payStatusEnable = true
                 presenter.clickToPay(amount)
                 showDialogPay()
             } catch (ex: Exception) {
@@ -428,6 +436,7 @@
             AuxScreenController.getInstance()
                 .refreshContent(Arrays.asList("等待付款", CommonUtil.showFormatAmount("金额", amount)))
             amountTxt.text = String.format("%.02f", amount / 100.0f)
+            payStatusEnable = true
             presenter.clickToPay(amount)
             showDialogPay()
         } else {
diff --git a/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt b/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
index 64f34f5..ffa329b 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
@@ -98,6 +98,13 @@
                                 doConsume()
                             } catch (ex: CardPayFailError) {
                                 sendMsg(PublicDef.MSG_CARD_PAY_FAIL, getErrorInfo(ex.message))
+                            } catch (ex: Exception) {
+                                ex.printStackTrace()
+                                LogUtil.d(
+                                    TAG, "card pay exception: cardphyid=$cardphyid"
+                                            + "exception=${CommonUtil.getExceptionStack(ex)}"
+                                )
+                                sendMsg(PublicDef.MSG_CARD_PAY_FAIL, getErrorInfo("程序异常"))
                             }
                             clickStat = ClickStat.INIT
                         }
@@ -106,6 +113,13 @@
                                 doReverse()
                             } catch (ex: CardPayCancelFailError) {
                                 sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getErrorInfo(ex.message))
+                            } catch (ex: Exception) {
+                                ex.printStackTrace()
+                                LogUtil.d(
+                                    TAG, "card pay cancel exception: cardphyid=$cardphyid"
+                                            + "exception=${CommonUtil.getExceptionStack(ex)}"
+                                )
+                                sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getErrorInfo("程序异常"))
                             }
                             clickStat = ClickStat.INIT
                         }
@@ -213,7 +227,8 @@
             saveTransdtlOnlineReverse(record)
             showRvsSucInfo(
                 onlRvsRecord.payamt,
-                onlRvsRecord.username!!,
+                onlRvsRecord.username,
+                onlRvsRecord.cardno,
                 onlRvsRecord.transdate + onlRvsRecord.transtime
             )
             asyncUpload(onlRvsRecord)
@@ -223,7 +238,12 @@
             val record = pos.getTransdtlOfflineLast() ?: throw CardPayCancelFailError("未找到离线记录")
             checkOfflineReverseVaild(unionRecord, record)
             saveTransdtlOfflineReverse(record)
-            showRvsSucInfo(offRvsRecord.payamt, offRvsRecord.cardno!!, offRvsRecord.transdate + onlRvsRecord.transtime)
+            showRvsSucInfo(
+                offRvsRecord.payamt,
+                null,
+                offRvsRecord.cardno,
+                offRvsRecord.transdate + onlRvsRecord.transtime
+            )
             asyncUpload(offRvsRecord)
         }
 
@@ -315,7 +335,12 @@
             resp = consumeApi.payConfirm(onlRecord)
             result = parseConfirmResult(resp)
             if (result) {
-                showRvsSucInfo(onlRecord.payamt, onlRecord.username!!, onlRecord.transdate + onlRecord.transtime)
+                showRvsSucInfo(
+                    onlRecord.payamt,
+                    onlRecord.username,
+                    onlRecord.cardno,
+                    onlRecord.transdate + onlRecord.transtime
+                )
             }
             updateTransdtlOnline(result)
             return result
@@ -331,8 +356,6 @@
                 throw CardPayFailError(retBean.retmsg!!)
             }
             onlRecord.billno = retBean.billno
-            onlRecord.username = retBean.username
-//            onlRecord.userid = retBean.userid
             return true
         }
 
@@ -391,7 +414,7 @@
             initTransdtlOffline()
             checkCardValid()
             updateTransdtlOffline(true)
-            showSucInfo(offRecord.payamt, offRecord.cardno!!, offRecord.transdate + offRecord.transtime)
+            showSucInfo(offRecord.payamt, null, offRecord.cardno, offRecord.transdate + offRecord.transtime)
         }
 
         private fun checkCardValid() {
@@ -459,24 +482,26 @@
             asyncUpload(offRecord)
         }
 
-        private fun showSucInfo(amount: Int, username: String, datetime: String) {
+        private fun showSucInfo(amount: Int, username: String?, cardno: String?, datetime: String) {
             val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
             info.showtime = pos.getSysPara()!!.sucShowtime
             info.amount = amount
             info.payamt = amount
             info.username = username
+            info.cardno = cardno
             info.datetime = datetime
             info.payway = "card"
             info.status = PayStatus.SUC
             sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
         }
 
-        private fun showRvsSucInfo(amount: Int, username: String, datetime: String) {
+        private fun showRvsSucInfo(amount: Int, username: String?, cardno: String?, datetime: String) {
             val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
             info.showtime = pos.getSysPara()!!.sucShowtime
             info.amount = amount
             info.payamt = amount
             info.username = username
+            info.cardno = cardno
             info.datetime = datetime
             info.payway = "card"
             info.status = PayStatus.SUC
diff --git a/app/src/main/java/com/supwisdom/activities/menu/MenuPresenter.kt b/app/src/main/java/com/supwisdom/activities/menu/MenuPresenter.kt
index cbfac25..68b8dd6 100644
--- a/app/src/main/java/com/supwisdom/activities/menu/MenuPresenter.kt
+++ b/app/src/main/java/com/supwisdom/activities/menu/MenuPresenter.kt
@@ -108,6 +108,7 @@
         intent.putExtra("datetime", DateUtil.getNowDateNoFormat())
         intent.putExtra("amount", record.payamt.toString())
         intent.putExtra("payway", record.payway)
+        intent.putExtra("operation", "reverse")
         intent.setClass(iMenuView.getActivity(), ConsumeActivity::class.java)
         iMenuView.getActivity().startActivity(intent)
     }
diff --git a/app/src/main/java/com/supwisdom/entity/TransdtlOnlineRecord.kt b/app/src/main/java/com/supwisdom/entity/TransdtlOnlineRecord.kt
index 5eb7e1a..584e629 100644
--- a/app/src/main/java/com/supwisdom/entity/TransdtlOnlineRecord.kt
+++ b/app/src/main/java/com/supwisdom/entity/TransdtlOnlineRecord.kt
@@ -19,7 +19,6 @@
     var extraamt: Int = 0
     var managefeetype: String? = null // none,discount,mealer
     var username: String? = null
-    //    var userid: Int = 0
     var billno: String? = null
     var reversalflag: ReversalFlag? = null //消费none 自动冲正auto 手动撤销 manual
     var reversalbillno: String? = null //被冲正交易参考号
diff --git a/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt b/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt
index bf93d9b..5e3f70c 100644
--- a/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt
+++ b/app/src/main/java/com/supwisdom/okhttp/NetworkHandler.kt
@@ -121,6 +121,8 @@
     }
 
     private fun addExtentHeader(request: Request.Builder): Request.Builder {
+        request.addHeader("Accept", "application/json; q=0.5")
+            .addHeader("Connection", "close")
         if (!TextUtils.isEmpty(clientId)) {
             request.addHeader("X-TENANT-ID", clientId)
         }
@@ -133,16 +135,12 @@
     fun get(url: String, params: WebParams?): TransResp? {
         val request = Request.Builder()
             .url(geturl(url, params))
-            .addHeader("Accept", "application/json; q=0.5")
-            .addHeader("Connection", "close")
         return getTransResp(addExtentHeader(request).build())
     }
 
     fun get(url: String, params: WebParams, callback: com.supwisdom.okhttp.ICallBackok<Any?>) {
         val request = Request.Builder()
             .url(geturl(url, params))
-            .addHeader("Accept", "application/json; q=0.5")
-            .addHeader("Connection", "close")
         client!!.newCall(addExtentHeader(request).build()).enqueue(object : Callback {
             override fun onFailure(call: Call, e: IOException) {
                 callback.callback(null)
@@ -172,8 +170,6 @@
         }
         val request = Request.Builder()
             .url(url)
-            .addHeader("Accept", "application/json; q=0.5")
-            .addHeader("Connection", "close")
             .post(builder.build())
         return getTransResp(addExtentHeader(request).build())
     }
@@ -185,8 +181,6 @@
         }
         val request = Request.Builder()
             .url(url)
-            .addHeader("Accept", "application/json; q=0.5")
-            .addHeader("Connection", "close")
             .post(builder.build())
         return getLongTransResp(addExtentHeader(request).build())
     }
@@ -195,8 +189,6 @@
         val body = RequestBody.create(JSON, json)
         val request = Request.Builder()
             .url(url)
-            .addHeader("Accept", "application/json; q=0.5")
-            .addHeader("Connection", "close")
             .post(body)
         return getTransResp(addExtentHeader(request).build())
     }
@@ -205,8 +197,6 @@
         val body = RequestBody.create(JSON, json)
         val request = Request.Builder()
             .url(url)
-            .addHeader("Accept", "application/json; q=0.5")
-            .addHeader("Connection", "close")
             .post(body)
         client!!.newCall(addExtentHeader(request).build()).enqueue(object : Callback {
             override fun onFailure(call: Call, e: IOException) {
diff --git a/app/src/main/java/com/supwisdom/service/AuthEpay.kt b/app/src/main/java/com/supwisdom/service/AuthEpay.kt
index 9b534e8..1e4ef62 100644
--- a/app/src/main/java/com/supwisdom/service/AuthEpay.kt
+++ b/app/src/main/java/com/supwisdom/service/AuthEpay.kt
@@ -35,7 +35,7 @@
         val url = StringBuilder()
         url.append(record!!.epayIP).append(":").append(record.epayPort)
             .append("/").append(record.epayUri)
-            .append("/api/auth/refresh/").append(record.devphyid).append("?")
+            .append("/api/auth/refresh")
         val resp = NetworkHandler.getInstance().get(url.toString(), null)
             ?: throw AuthEpayError("jwt刷新请求超时")
         if (resp.retcode != HttpStatus.SC_OK) {
diff --git a/app/src/main/java/com/supwisdom/service/BackgroundTaskService.kt b/app/src/main/java/com/supwisdom/service/BackgroundTaskService.kt
index 8c8d0c5..287293c 100644
--- a/app/src/main/java/com/supwisdom/service/BackgroundTaskService.kt
+++ b/app/src/main/java/com/supwisdom/service/BackgroundTaskService.kt
@@ -8,12 +8,15 @@
 import com.supwisdom.utils.CommonUtil
 import com.supwisdom.utils.DateUtil
 import com.supwisdom.utils.FileUtil
+import com.supwisdom.utils.LogUtil
+import java.lang.Exception
 
 /**
  ** create by zzq on 2019/7/23
  ** @desc
  **/
 class BackgroundTaskService : Thread() {
+    private val TAG = "BackgroundTaskService"
     private val pos = SPApplication.getInstance().getPos()
     private var apiInterface: APIInterface = EpayApiImpl()
     private var sysRecord: SysParaRecord? = null
@@ -34,10 +37,13 @@
     override fun run() {
         var heartgap: Int
         while (!isExist) {
-            //做一卡通心跳和流水上传
-            heartAndTransdtl()
-            //清除流水
-            clearTransdtl()
+            try {
+                heartAndTransdtl()
+                clearTransdtl()
+            } catch (ex: Exception) {
+                ex.printStackTrace()
+                LogUtil.d(TAG, CommonUtil.getExceptionStack(ex))
+            }
             sysRecord = pos.getSysPara()
             heartgap = if (sysRecord == null || sysRecord!!.heatBeat < 10 || sysRecord!!.heatBeat > 600) {
                 60
diff --git a/app/src/main/java/com/supwisdom/view/DialogPurchase.kt b/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
index 39b5806..f0611f4 100644
--- a/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
+++ b/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
@@ -18,13 +18,14 @@
  ** create by zzq on 2019/7/26
  ** @desc 消费弹窗
  **/
+@Suppress("DEPRECATION")
 class DialogPurchase constructor(context: Context, callBack: ICallBack) : DialogBase(context), IDecoderAcquirer {
     private val TAG = "DialogPurchase"
     private val callBack = callBack
     private var vCount: TextView
     private var vPayhint: TextView
     private var vPayamt: TextView
-    private var vBalance: TextView
+    private var vUsername: TextView
     private var posDec: PosDecoder? = null
     private var lastFixpayDecoderOpenTime: Long = 0
     private val waitTime = 60
@@ -38,7 +39,7 @@
         vCount = this.findViewById(R.id.tv_close_count) as TextView
         vPayhint = this.findViewById(R.id.tv_pay_hint) as TextView
         vPayamt = this.findViewById(R.id.tv_pay_amount) as TextView
-        vBalance = this.findViewById(R.id.tv_pay_balance) as TextView
+        vUsername = this.findViewById(R.id.tv_pay_username) as TextView
 
         posDec = PosDecoder(this)
     }
@@ -74,11 +75,11 @@
 
     fun show(hint: String, amount: String) {
         vPayhint.text = hint
-        vPayhint.setTextColor(Color.BLACK)
+        vPayhint.setTextColor(context.resources.getColor(R.color.blue))
         vPayamt.text = amount
         vPayamt.visibility = View.VISIBLE
 
-        vBalance.visibility = View.GONE
+        vUsername.visibility = View.GONE
         show()
         asyncOpenDecoder()
         resetCounter(waitTime)
@@ -90,7 +91,7 @@
         vPayamt.text = amount
         vPayamt.visibility = View.VISIBLE
 
-        vBalance.visibility = View.GONE
+        vUsername.visibility = View.GONE
         resetCounter(waitTime)
     }
 
@@ -99,12 +100,8 @@
         vPayhint.setTextColor(Color.GREEN)
         vPayamt.text = CommonUtil.showFormatAmount("金额", info.payamt)
         vPayamt.visibility = View.VISIBLE
-        if (info.balance == null) {
-            vBalance.visibility = View.GONE
-        } else {
-            vBalance.text = CommonUtil.showFormatAmount("余额", info.balance!!)
-            vBalance.visibility = View.VISIBLE
-        }
+        vUsername.text = "姓名: ${info.username ?: info.cardno}"
+        vUsername.visibility = View.VISIBLE
         show()
         resetCounter(info.showtime)
     }
@@ -114,7 +111,7 @@
         vPayhint.setTextColor(Color.RED)
         vPayamt.text = info.retmsg
         vPayamt.visibility = View.VISIBLE
-        vBalance.visibility = View.GONE
+        vUsername.visibility = View.GONE
         show()
         resetCounter(info.showtime)
     }
@@ -124,7 +121,7 @@
         vPayhint.setTextColor(Color.GREEN)
         vPayamt.text = CommonUtil.showFormatAmount("金额", info.amount)
         vPayamt.visibility = View.VISIBLE
-        vBalance.visibility = View.GONE
+        vUsername.visibility = View.GONE
         show()
         resetCounter(info.showtime)
     }
@@ -134,7 +131,7 @@
         vPayhint.setTextColor(Color.RED)
         vPayamt.text = info.retmsg
         vPayamt.visibility = View.VISIBLE
-        vBalance.visibility = View.GONE
+        vUsername.visibility = View.GONE
         show()
         resetCounter(info.showtime)
     }
diff --git a/app/src/main/res/layout/activity_consume.xml b/app/src/main/res/layout/activity_consume.xml
index 44ed9bd..08a845f 100644
--- a/app/src/main/res/layout/activity_consume.xml
+++ b/app/src/main/res/layout/activity_consume.xml
@@ -110,7 +110,6 @@
                     android:padding="@dimen/consume_text_pad_size">
 
                 <TextView
-                        android:id="@+id/tv_consume_hint"
                         android:layout_width="260dp"
                         android:layout_height="match_parent"
                         android:gravity="start|center"
diff --git a/app/src/main/res/layout/dialog_purchase.xml b/app/src/main/res/layout/dialog_purchase.xml
index e43ef15..bb9a98a 100644
--- a/app/src/main/res/layout/dialog_purchase.xml
+++ b/app/src/main/res/layout/dialog_purchase.xml
@@ -32,22 +32,20 @@
                     style="@style/purchase_tv_text_hint_style"
                     android:text="消费成功"
                     android:textColor="@color/light_green"/>
-
+            <TextView
+                    android:id="@+id/tv_pay_username"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="姓名:  张三"
+                    android:textColor="@color/blue"
+                    android:textSize="@dimen/ordinary_consume_text_size"/>
             <TextView
                     android:id="@+id/tv_pay_amount"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
                     android:text="金额:  10.00元"
-                    android:textColor="@color/black"
-                    android:textSize="@dimen/ordinary_consume_text_size"/>
-
-            <TextView
-                    android:id="@+id/tv_pay_balance"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="余额:  123.00元"
-                    android:textColor="@color/black"
+                    android:textColor="@color/blue"
                     android:textSize="@dimen/ordinary_consume_text_size"/>
 
         </LinearLayout>
