优化 AgentResponse
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/agent/AgentResponse.java b/payapi/src/main/java/com/supwisdom/dlpay/agent/AgentResponse.java
index a8dde97..4c0ff3d 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/agent/AgentResponse.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/agent/AgentResponse.java
@@ -1,5 +1,7 @@
 package com.supwisdom.dlpay.agent;
 
+import java.lang.reflect.ParameterizedType;
+
 public class AgentResponse<T> {
   public static final String AGENTCODE_SUCCESS = "0";
 
@@ -69,4 +71,24 @@
   public void setPayload(T payload) {
     this.payload = payload;
   }
+
+  private T newNullPayload(Class<T> clazz) {
+    try {
+      return clazz.newInstance();
+    } catch (InstantiationException | IllegalAccessException e) {
+      throw new IllegalArgumentException("can't instance " + clazz.getName());
+    }
+  }
+
+  @SuppressWarnings("unchecked")
+  private Class<T> getPayloadBeanType() {
+    Class<T> cls = (Class<T>) ((ParameterizedType) getClass()
+        .getGenericSuperclass())
+        .getActualTypeArguments()[0];
+    return cls;
+  }
+
+  public AgentResponse() {
+    this.payload = newNullPayload(getPayloadBeanType());
+  }
 }
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/alipay_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/alipay_service_impl.kt
index 0bcb1bf..9dadacd 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/alipay_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/alipay_service_impl.kt
@@ -79,6 +79,7 @@
                 transaction.shopDtl.shopaccno,
                 qrcodePayTrans.isAnonymous, false)
         val agentResponse = AgentResponse<QrcodePayTrans>()
+        agentResponse.payload = qrcodePayTrans
         if (checkCfg(config, agentResponse)) {
             val request = AlipayTradePayRequest()
             request.bizModel = AlipayTradePayModel().apply {
@@ -97,7 +98,7 @@
                         agentResponse.agentMsg = response.msg
                         agentResponse.agentCode = response.code
                         qrcodePayTrans.agentRefno = response.tradeNo
-                        agentServiceProxy.qrcodePayTransSaveOrUpdate(qrcodePayTrans)
+                        agentResponse.payload = agentServiceProxy.qrcodePayTransSaveOrUpdate(qrcodePayTrans)
                     } else {
                         agentResponse.code = AgentCode.FAIL
                         agentResponse.agentMsg = response.msg
@@ -148,14 +149,14 @@
                 this.totalAmount = transaction.shopDtl.amount.toString()
                 this.productCode = productCode
             }
-            request.notifyUrl = StringUtil.urlAppend(config[PaytypeUtil.CFG_ALIPAY_NOTIFY],transaction.tenantid)
-            request.returnUrl = StringUtil.urlAppend(config[PaytypeUtil.CFG_ALIPAY_RETURNURL],transaction.tenantid)
+            request.notifyUrl = StringUtil.urlAppend(config[PaytypeUtil.CFG_ALIPAY_NOTIFY], transaction.tenantid)
+            request.returnUrl = StringUtil.urlAppend(config[PaytypeUtil.CFG_ALIPAY_RETURNURL], transaction.tenantid)
             try {
                 /**
                  * h5 支付方式
                  * */
                 if (transaction.transCode == TradeCode.TRANSCODE_H5PAY) {
-                    var form = alipayClient.pageExecute(request).body
+                    val form = alipayClient.pageExecute(request).body
                     //body 为Html
                     agentResponse.agentBody = form
                     agentResponse.code = AgentCode.REQUIRE_QUERY