diff --git a/backend/build.gradle b/backend/build.gradle
index 684619c..468595c 100644
--- a/backend/build.gradle
+++ b/backend/build.gradle
@@ -74,7 +74,7 @@
     compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.9.1'
     compile group: 'log4j', name: 'log4j', version: '1.2.17'
 
-    compile group: 'com.supwisdom', name: 'payapi-sdk', version: '1.0.28-1-g7415df3'
+    compile group: 'com.supwisdom', name: 'payapi-sdk', version: '1.0.28'
     
     implementation 'org.hamcrest:hamcrest:2.1'
 }
diff --git a/backend/src/main/java/com/supwisdom/dlpay/medicine/domain/TBMedicalDtl.java b/backend/src/main/java/com/supwisdom/dlpay/medicine/domain/TBMedicalDtl.java
index ad1fecc..4ada05d 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/medicine/domain/TBMedicalDtl.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/medicine/domain/TBMedicalDtl.java
@@ -3,7 +3,7 @@
 import javax.persistence.*;
 
 @Entity
-@Table(name = "tb_medicaldtl",indexes = {@Index(name = "medicaldtl_idx",columnList = "admnumber,organizationid,feeno")})
+@Table(name = "tb_medicaldtl",indexes = {@Index(name = "medicaldtl_idx",columnList = "admnumber,feeno,organizationid")})
 public class TBMedicalDtl {
   @Id
   @Column(name = "billno", length = 32)
diff --git a/backend/src/main/java/com/supwisdom/dlpay/medicine/util/MedicalConstant.java b/backend/src/main/java/com/supwisdom/dlpay/medicine/util/MedicalConstant.java
index d0ad509..86bcd24 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/medicine/util/MedicalConstant.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/medicine/util/MedicalConstant.java
@@ -33,12 +33,13 @@
   public final static String DTL_STATUS_INIT = "init";
   public final static String DTL_STATUS_WIP = "wip";
   public final static String DTL_STATUS_SUCCESS = "sucess";
+  public final static String DTL_STATUS_FAIL = "fail";
   /**
    * 子系统代码
    */
   public final static String DTLTYPE_MEDICAL = "medical";
   /**
-   * payapi成功响应代码
+   * payapi响应代码
    */
   public final static Integer PAYAPI_SUCCESS_RETCODE = 0;
 
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/MedicineApi.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/MedicineApi.kt
index c56a6e9..166c520 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/MedicineApi.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/MedicineApi.kt
@@ -200,7 +200,9 @@
             return checkResult
         }
         val cardNo = checkResult["data"] as String
-        medicineService.medicalPayInit(user.uid, bean,cardNo)
+        medicineService.medicalPayPreInit(user.uid, bean,cardNo)
+//        medicineService.medicalPayInit()
+//        medicineService.medicalPayConfirm()
         return JsonResult.ok()
     }
 
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/dao/MedicalDtlDao.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/dao/MedicalDtlDao.kt
index 95f0acb..a641ace 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/dao/MedicalDtlDao.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/dao/MedicalDtlDao.kt
@@ -16,5 +16,5 @@
     @QueryHints(QueryHint(name = "javax.persistence.lock.timeout", value = "0"))
     fun findByBillnoForUpdate(billno: String?): TBMedicalDtl
 
-    fun findByAdmnumberAndOrganizationidAndFeeno(admNumber: String, organizationId: String, feeNo: String): TBMedicalDtl?
+    fun findByAdmnumberAndFeenoAndOrganizationidAndPaystatusNot(admNumber: String, organizationId: String, feeNo: String, payStatus: String): TBMedicalDtl?
 }
\ No newline at end of file
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/service/MedicineService.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/service/MedicineService.kt
index 5cf9537..c592c93 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/service/MedicineService.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/service/MedicineService.kt
@@ -38,8 +38,14 @@
     fun getPayedList(uid: String, organizationId: String, cardId: String): ArrayList<PayedDTO>
 
     @Transactional
-    fun medicalPayInit(uid: String, bean: PaymentRequestBean, cardNo: String): JsonResult?
+    fun medicalPayPreInit(uid: String, bean: PaymentRequestBean, cardNo: String): JsonResult?
 
     @Transactional
-    fun medicalPayConfirm(billno: String): JsonResult?
+    fun medicalPayInit(billNo: String): JsonResult?
+
+    @Transactional
+    fun medicalPayConfirm(billNo: String): JsonResult?
+
+    @Transactional
+    fun notifyHISPayed()
 }
\ No newline at end of file
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/service/impl/MedicineServiceImpl.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/service/impl/MedicineServiceImpl.kt
index 8ca738c..baeddcf 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/service/impl/MedicineServiceImpl.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/medicine/service/impl/MedicineServiceImpl.kt
@@ -223,7 +223,7 @@
         return payedDTOList
     }
 
-    override fun medicalPayInit(uid: String, bean: PaymentRequestBean, cardNo: String): JsonResult? {
+    override fun medicalPayPreInit(uid: String, bean: PaymentRequestBean, cardNo: String): JsonResult? {
         val medicalCard = medicalCardDao.findByCardidAndUid(bean.cardid, uid)
                 ?: throw MedicineException("未找到该就诊卡")
         //1.从HIS中找到待支付流水
@@ -257,14 +257,22 @@
         }
         val preFeeResponse = medicalClient.getPreCalculatedFee(preFeeRequest)
         //查看本地是否有该条流水记录
-        val localMedicalDtl = medicalDtlDao.findByAdmnumberAndOrganizationidAndFeeno(bean.admnumber, bean.organizationid, mergingItems!!.feeNo)
+        val localMedicalDtl = medicalDtlDao.findByAdmnumberAndFeenoAndOrganizationidAndPaystatusNot(
+                bean.admnumber, bean.organizationid, mergingItems!!.feeNo, MedicalConstant.DTL_STATUS_FAIL)
         if (localMedicalDtl != null) {
             //锁住该条流水
             medicalDtlDao.findByBillnoForUpdate(localMedicalDtl.billno)
-            if (localMedicalDtl.paystatus == MedicalConstant.DTL_STATUS_SUCCESS) {
-                return JsonResult.ok("该缴费已成功支付")
-            } else if (localMedicalDtl.paystatus == MedicalConstant.DTL_STATUS_WIP) {
-
+            when (localMedicalDtl.paystatus) {
+                MedicalConstant.DTL_STATUS_SUCCESS -> {
+                    return JsonResult.ok("该缴费已成功支付")
+                }
+                MedicalConstant.DTL_STATUS_WIP -> {
+                    return JsonResult.ok("请求正在处理中，请稍后查询处理结果")
+                }
+                MedicalConstant.DTL_STATUS_INIT -> {
+                    //流水已生成，跳过生成本地流水步骤
+                    return JsonResult.ok("continue")
+                }
             }
         }
         //3.本地新建一条支付流水
@@ -286,10 +294,10 @@
         return JsonResult.ok()
     }
 
-    override fun medicalPayConfirm(billno: String): JsonResult? {
+    override fun medicalPayInit(billNo: String): JsonResult? {
         //4.本地向payapi扣费
         //4.1 payapi扣费初始化
-        val medicalDtl = medicalDtlDao.findByBillnoForUpdate(billno)
+        val medicalDtl = medicalDtlDao.findByBillnoForUpdate(billNo)
         val initParam = CitizenCardPayinitParam().apply {
             this.billno = medicalDtl.billno
             this.cardNo = medicalDtl.citizencardno
@@ -306,7 +314,12 @@
         medicalDtl.refno = payInit.refno
         medicalDtl.paystatus = MedicalConstant.DTL_STATUS_WIP
         medicalDtlDao.save(medicalDtl)
+        return JsonResult.ok()
+    }
+
+    override fun medicalPayConfirm(billNo: String): JsonResult? {
         //4.2 paypai扣费确认
+        val medicalDtl = medicalDtlDao.findByBillnoForUpdate(billNo)
         val confirmParam = CitizenCardPayfinishParam().apply {
             this.refno = medicalDtl.refno
         }
@@ -316,14 +329,12 @@
         }
 
         //6.修改本地流水状态
-
         medicalDtl.paystatus = MedicalConstant.DTL_STATUS_SUCCESS
         medicalDtlDao.save(medicalDtl)
         return JsonResult.ok()
     }
 
-    fun notifyHIS() {
-
+    override fun notifyHISPayed() {
         //5.向HIS支付确认
         val notifyPayedRequest = NotifyPayedRequest().apply {
 
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
index e29742f..3c3e0fc 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
@@ -722,15 +722,7 @@
             return JsonResult.error("用户不存在，请注册")
         }
         if (!user.userid.isNullOrEmpty()) {
-            val response = userProxy.signbxy(SignBxyParam().apply {
-                this.userid = user.userid
-                this.code = agree
-                this.phone = user.phone
-                this.uid = user.uid
-                this.rsaprivate = user.rsaprivate
-                this.rsapublic = user.rsapublic
-                this.secertkey = user.secertkey
-            })
+            val response = userProxy.signbxy(user.userid, agree, user.phone)
             if (response.retcode != 0) {
                 logger.error { "用户签约失败:${response.retmsg}" }
                 return JsonResult.error("签约失败，${response.retmsg}")
