diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
index ad6b740..faaf171 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
@@ -106,7 +106,7 @@
                     tradeflag = builder.person().tradeFlag
                     transdesc = builder.person().description
                     oppositeAccNo = builder.person().oppositeAccNo()
-                    oppositeAccName = builder.person().oppositeSubjNo()
+                    oppositeAccName = builder.person().oppositeAccName()
                     this.reverseFlag = TradeDict.REVERSE_FLAG_NONE
                     remark = builder.person().remark
                     this.status = status
@@ -133,7 +133,7 @@
                     this.shopname = builder.shop().shopacc.shopname
                     this.transdesc = builder.shop().description
                     this.oppositeAccNo = builder.shop().oppositeAccNo()
-                    this.oppositeAccName = builder.shop().oppositeSubjNo()
+                    this.oppositeAccName = builder.shop().oppositeAccName()
                     this.remark = builder.shop().remark
                     this.reverseFlag = TradeDict.REVERSE_FLAG_NONE
                     this.updateBala = false
@@ -156,7 +156,7 @@
                     this.transDate = builder.transDate
                     this.transTime = builder.transTime
                     this.oppositeAccNo = builder.subject().oppositeAccNo()
-                    this.oppositeAccName = builder.subject().oppositeSubjNo()
+                    this.oppositeAccName = builder.subject().oppositeAccName()
                     this.status = status
                 }.also {
                     transaction.subjectDtl = it
@@ -433,13 +433,13 @@
         if (originTrans.person) {
             builder.person().apply {
                 setAmount(-originTrans.personDtl.amount, getOppositeTradeFlag(originTrans.personDtl.tradeflag))
-                setOpposite(AccountProxy(builder.shop().shopacc))
+                setOpposite(originTrans.personDtl.oppositeAccNo, originTrans.personDtl.oppositeAccName)
             }
         }
         if (originTrans.shop) {
             builder.shop().apply {
                 setAmount(-originTrans.shopDtl.amount, getOppositeTradeFlag(originTrans.shopDtl.tradeflag))
-                setOpposite(AccountProxy(builder.person().person))
+                setOpposite(originTrans.shopDtl.oppositeAccNo, originTrans.shopDtl.oppositeAccName)
             }
         }
         val summarySuffix = getReverseSuffix(builder.reverseType)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt b/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
index d47d40e..a237617 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
@@ -26,7 +26,7 @@
         }
 
     private lateinit var oppAccno: String
-    private lateinit var oppSubjno: String
+    private lateinit var oppAccName: String
 
     fun hasOpposite(): Boolean {
         return this::oppAccno.isInitialized
@@ -36,18 +36,18 @@
         return this.oppAccno
     }
 
-    fun oppositeSubjNo(): String {
-        return this.oppSubjno
+    fun oppositeAccName(): String {
+        return this.oppAccName
     }
 
-    fun setOpposite(accno: String, subjno: String) {
+    fun setOpposite(accno: String, accName: String) {
         this.oppAccno = accno
-        this.oppSubjno = subjno
+        this.oppAccName = accName
     }
 
     fun setOpposite(accout: AccountProxy<*>) {
         this.oppAccno = accout.getAccountNo()
-        this.oppSubjno = accout.getSubjectNo()
+        this.oppAccName = accout.getAccountName()
     }
 
     fun and(): TransactionBuilder {
