diff --git a/build.gradle b/build.gradle
index 471af3a..a2789f4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -92,7 +92,7 @@
     compileOnly 'org.projectlombok:lombok:1.18.8'
     annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
     
-    compile 'com.supwisdom:payapi-sdk:e4bf762'
+    compile 'com.supwisdom:payapi-sdk:b5eceda'
     
 //    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
     testImplementation 'org.springframework.boot:spring-boot-starter-test'
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 37c08c2..03f3806 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -10,10 +10,9 @@
 spring.datasource.username=watermanager
 spring.datasource.password=123456
 # Redis settings
-redis.server=172.28.201.101
-redis.port=16379
-redis.password=kingstar
-redis.database=0
+spring.redis.host=172.28.201.101
+spring.redis.port=16379
+spring.redis.password=kingstar
 # jwt settings
 jwt.secret=Zj5taLomEbrM0lk+NMQZbHfSxaDU1wekjT+kiC3YzDw=
 # timeout seconds
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
index 4a697c6..e6dd9d4 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
@@ -4,11 +4,12 @@
 import javax.persistence.Entity;
 import javax.persistence.Id;
 import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
+import java.io.Serializable;
 
 @Entity
 @Table(name = "TB_BUSINESSPARA")
-public class TBusinesspara {
+public class TBusinesspara implements Serializable {
+  private static final long serialVersionUID = 2100555481864398666L;
   @Id
   @Column(name="PARAKEY", nullable = false, length = 60)
   private String parakey;
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/BusinessparaService.java b/src/main/java/com/supwisdom/dlpay/framework/service/BusinessparaService.java
new file mode 100644
index 0000000..d53716f
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/BusinessparaService.java
@@ -0,0 +1,8 @@
+package com.supwisdom.dlpay.framework.service;
+
+import com.supwisdom.dlpay.framework.domain.TBusinesspara;
+
+public interface BusinessparaService {
+    TBusinesspara findByParakey(String paraKey);
+    TBusinesspara saveOrUpdatePara(TBusinesspara para);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/BusinessparaServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/BusinessparaServiceImpl.java
new file mode 100644
index 0000000..eba5c9c
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/BusinessparaServiceImpl.java
@@ -0,0 +1,33 @@
+package com.supwisdom.dlpay.framework.service.impl;
+
+import com.supwisdom.dlpay.framework.dao.BusinessparaDao;
+import com.supwisdom.dlpay.framework.domain.TBusinesspara;
+import com.supwisdom.dlpay.framework.service.BusinessparaService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+
+@Service
+public class BusinessparaServiceImpl implements BusinessparaService {
+
+    @Autowired
+    private BusinessparaDao businessparaDao;
+
+    @Override
+    @Cacheable(cacheNames = "businesspara_cache", key = "#p0")
+    public TBusinesspara findByParakey(String paraKey) {
+        TBusinesspara tb = businessparaDao.findByParakey(paraKey);
+        if (null == tb) {
+            throw new RuntimeException("未找到业务参数" + paraKey + "对应的值");
+        }
+        return tb;
+    }
+
+    @Override
+    @CacheEvict(cacheNames = "businesspara_cache", key = "#para.parakey")
+    public TBusinesspara saveOrUpdatePara(TBusinesspara para) {
+        return businessparaDao.save(para);
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/ShortURLUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/ShortURLUtil.java
index 0081395..f4ed735 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/ShortURLUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/ShortURLUtil.java
@@ -1,6 +1,9 @@
 package com.supwisdom.dlpay.framework.util;
 
+import com.supwisdom.dlpay.framework.service.BusinessparaService;
 import net.sf.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
@@ -8,14 +11,17 @@
 import java.net.URL;
 import java.net.URLEncoder;
 
+@Component
 public class ShortURLUtil {
 
-    public static String doGetSinaShortUrl(String longUrl) {
+    @Autowired
+    private BusinessparaService businessparaService;
+
+    public String doGetSinaShortUrl(String longUrl) {
         String result = "";
         BufferedReader in = null;
         try {
-            //http://www.mynb8.com/api/sina?appkey=APPKEY&sign=SIGN&long_url=LONG_URL
-            String address = "http://api.t.sina.com.cn/short_url/shorten.json?source=2223392143";
+            String address = businessparaService.findByParakey(WaterBudinessConstants.waterSinaShortUrl).getParaval();
             address += "&url_long=" + URLEncoder.encode(longUrl, "UTF-8");
             URL url = new URL(address);
             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/WaterBudinessConstants.java b/src/main/java/com/supwisdom/dlpay/framework/util/WaterBudinessConstants.java
new file mode 100644
index 0000000..1f24d3d
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/WaterBudinessConstants.java
@@ -0,0 +1,7 @@
+package com.supwisdom.dlpay.framework.util;
+
+public class WaterBudinessConstants {
+    public final static String waterAuthUrl = "water_auth_url";
+    public final static String waterSinaShortUrl = "water_sina_shorturl";
+    public final static String waterDeviceStatus = "device_status";
+}
diff --git a/src/main/java/com/supwisdom/dlpay/water/init/PayInit.java b/src/main/java/com/supwisdom/dlpay/water/init/PayInit.java
new file mode 100644
index 0000000..1389880
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/water/init/PayInit.java
@@ -0,0 +1,28 @@
+package com.supwisdom.dlpay.water.init;
+
+import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
+import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+
+@Component
+@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
+@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})
+public class PayInit {
+
+    private final static String appid = "700001";
+    private final static String secret = "5f788ce433ec44f299351cdf7f137e81";
+
+    @Autowired
+    private ApiLoginProxy apiLoginProxy;
+
+//    @PostConstruct
+//    public void login() {
+//        ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+//        helper.login(appid,secret);
+//    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
index 4e34676..5df271b 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
@@ -4,6 +4,7 @@
 import com.supwisdom.dlpay.framework.domain.TDictionary;
 import com.supwisdom.dlpay.framework.util.PageResult;
 import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.framework.util.WaterBudinessConstants;
 import com.supwisdom.dlpay.framework.util.WaterDeviceParam;
 import com.supwisdom.dlpay.water.DeviceLineCheckParam;
 import com.supwisdom.dlpay.water.DeviceLoginParam;
@@ -163,7 +164,7 @@
 
     @Override
     public List<TDictionary> groupStatus() {
-        return dictionaryDao.findAllByDicttype("device_status");
+        return dictionaryDao.findAllByDicttype(WaterBudinessConstants.waterDeviceStatus);
     }
 
     @Override
diff --git a/src/main/kotlin/com/supwisdom/dlpay/WaterManagerApplication.kt b/src/main/kotlin/com/supwisdom/dlpay/WaterManagerApplication.kt
index 73c71d8..a182b93 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/WaterManagerApplication.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/WaterManagerApplication.kt
@@ -1,9 +1,13 @@
 package com.supwisdom.dlpay
 
 import io.lettuce.core.ReadFrom
+import org.bouncycastle.crypto.tls.ConnectionEnd.server
+import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.beans.factory.annotation.Value
 import org.springframework.boot.autoconfigure.SpringBootApplication
+import org.springframework.boot.autoconfigure.data.redis.RedisProperties
 import org.springframework.boot.runApplication
+import org.springframework.cache.annotation.EnableCaching
 import org.springframework.context.annotation.Bean
 import org.springframework.context.annotation.Configuration
 import org.springframework.data.redis.connection.RedisConnectionFactory
@@ -22,28 +26,19 @@
 @EnableRedisRepositories
 class AppConfig {
 
-    @Value("\${redis.server}")
-    lateinit var server: String
-
-    @Value("\${redis.port}")
-    var port: Int = 0
-
-    @Value("\${redis.database}")
-    var database: Int = 0
-
-    @Value("\${redis.password}")
-    lateinit var password: String
+    @Autowired
+    private lateinit var redisProperties: RedisProperties
 
     @Bean
     fun redisConnectionFactory(): RedisConnectionFactory {
         val clientConfig = LettuceClientConfiguration.builder()
                 .readFrom(ReadFrom.SLAVE_PREFERRED)
                 .build()
-        val serverConfig = RedisStandaloneConfiguration(server, port)
-        if (password.isNotEmpty()) {
-            serverConfig.password = RedisPassword.of(password)
+        val serverConfig = RedisStandaloneConfiguration(redisProperties.host, redisProperties.port)
+        if (redisProperties.password.isNotEmpty()) {
+            serverConfig.password = RedisPassword.of(redisProperties.password)
         }
-        serverConfig.database = database
+        serverConfig.database = redisProperties.database
 
         return LettuceConnectionFactory(serverConfig, clientConfig)
     }
@@ -67,6 +62,7 @@
 
 @SpringBootApplication
 @EnableScheduling
+@EnableCaching
 class WaterManagerApplication
 
 fun main(args: Array<String>) {
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
index 364cc95..55772db 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
@@ -2,11 +2,9 @@
 
 import com.supwisdom.dlpay.framework.ResponseBodyBuilder
 import com.supwisdom.dlpay.framework.dao.BusinessparaDao
+import com.supwisdom.dlpay.framework.service.BusinessparaService
 import com.supwisdom.dlpay.framework.service.SystemUtilService
-import com.supwisdom.dlpay.framework.util.ShortURLUtil
-import com.supwisdom.dlpay.framework.util.TradeDict
-import com.supwisdom.dlpay.framework.util.WaterDeviceParam
-import com.supwisdom.dlpay.framework.util.WaterErrorCode
+import com.supwisdom.dlpay.framework.util.*
 import com.supwisdom.dlpay.system.service.UserDataService
 import com.supwisdom.dlpay.water.*
 import com.supwisdom.dlpay.water.domain.TTransdtl
@@ -35,7 +33,10 @@
     private lateinit var transdtlService: TransdtlService
 
     @Autowired
-    private lateinit var businessparaDao: BusinessparaDao
+    private lateinit var shortURLUtil: ShortURLUtil
+
+    @Autowired
+    private lateinit var businessparaService: BusinessparaService
 
     @PostMapping("/devicelogin")
     fun deviceLogin(param: DeviceLoginParam): ResponseEntity<Any> {
@@ -71,7 +72,7 @@
                     .success())
         } catch (ex: Exception) {
             return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .exception(WaterErrorCode.PROCESS_ERROR, ex, "系统出错"))
+                    .exception(WaterErrorCode.PROCESS_ERROR, ex, ex.message))
         }
     }
 
@@ -138,8 +139,8 @@
             val savedTrans = transdtlService.createNewTransdtl(trans)
             //2.将流水号及认证地址返回给终端
             //将认证url转为短码
-            val url = ShortURLUtil.doGetSinaShortUrl(
-                    businessparaDao.findByParakey("water_auth_url").paraval + savedTrans.billno)
+            val url = shortURLUtil.doGetSinaShortUrl(
+                    businessparaService.findByParakey(WaterBudinessConstants.waterAuthUrl).paraval + savedTrans.billno)
             return ResponseEntity.ok(ResponseBodyBuilder.create()
                     .data(WaterDeviceParam.billNo, savedTrans.billno)
                     .data(WaterDeviceParam.url, url)
@@ -153,19 +154,28 @@
 
     @PostMapping("/qrcode/query")
     fun qrcodeQuery(param: QrcodeQueryRequest): ResponseEntity<Any> {
-        val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
-        val trans = transdtlService.queryTrans(param)
-        return ResponseEntity.ok(ResponseBodyBuilder.create()
-                .data(WaterDeviceParam.billNo, trans.billno)
-                .data(WaterDeviceParam.authStatus, trans.authStatus)
-                //2为代扣模式
-                .data(WaterDeviceParam.payStatus, 2)
-                .data(WaterDeviceParam.feeAmount, deviceParam[WaterDeviceParam.feeAmount]!!)
-                .data(WaterDeviceParam.feestart, deviceParam[WaterDeviceParam.feestart]!!)
-                .data(WaterDeviceParam.feeUnit, deviceParam[WaterDeviceParam.feeUnit]!!)
-                //  如果订单为已支付状态，支付金额多少
-                .data(WaterDeviceParam.paidAmount, 0)
-                .success())
+        try {
+            val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
+            val trans = transdtlService.queryTrans(param)
+            var authStatus = 0
+            if (trans.authStatus) {
+                authStatus = 1
+            }
+            return ResponseEntity.ok(ResponseBodyBuilder.create()
+                    .data(WaterDeviceParam.billNo, trans.billno)
+                    .data(WaterDeviceParam.authStatus, authStatus)
+                    //2为代扣模式
+                    .data(WaterDeviceParam.payStatus, 2)
+                    .data(WaterDeviceParam.feeAmount, deviceParam[WaterDeviceParam.feeAmount]!!)
+                    .data(WaterDeviceParam.feestart, deviceParam[WaterDeviceParam.feestart]!!)
+                    .data(WaterDeviceParam.feeUnit, deviceParam[WaterDeviceParam.feeUnit]!!)
+                    //  如果订单为已支付状态，支付金额多少
+                    .data(WaterDeviceParam.paidAmount, 0)
+                    .success())
+        } catch (ex: Exception) {
+            return ResponseEntity.ok(ResponseBodyBuilder.create()
+                    .exception(WaterErrorCode.PROCESS_ERROR, ex, ex.message))
+        }
     }
 
     @GetMapping("/confirm")
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 4efcdb1..992c6c6 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -8,6 +8,7 @@
 # logging
 logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
 logging.level.org.hibernate.SQL=debug
+spring.redis.database=1
 #################### JSP PAGE ####################
 #spring.mvc.view.prefix=/pages/
 #spring.mvc.view.suffix=.jsp
@@ -24,3 +25,4 @@
 ################################################
 # user password
 auth.password.bcrypt.length=10
+payapi.url=http://localhost:9000/payapi
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index aa3d4e9..79bc39c 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -112,6 +112,8 @@
 INSERT INTO "tb_person_identity"("third_uid", "createtime", "lockflag", "lossflag", "status", "userid", "cardphyid") VALUES ('000000000000000000000000', NULL, 0, 0, '1', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '6655ec27');
 INSERT INTO "tb_person"("userid", "addr", "country", "email", "idno", "idtype", "lastsaved", "mobile", "name", "nation", "sex", "status", "tel", "zipcode") VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '王富贵', NULL, NULL, '1', NULL, NULL);
 INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_auth_url', 'http://172.28.43.20:8080/water/api/device/confirm?billno=');
+INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_sina_shorturl', 'http://api.t.sina.com.cn/short_url/shorten.json?source=2223392143');
+
 
 INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('正常', 'device_status', 'normal', '设备状态');
 INSERT INTO "tb_dictionary"("dictval", "dicttype", "dictcaption", "dicttypename") VALUES ('注销', 'device_status', 'closed', '设备状态');
diff --git a/src/main/resources/templates/system/confirm/confirm.html b/src/main/resources/templates/system/confirm/confirm.html
index 5b0452a..6562948 100644
--- a/src/main/resources/templates/system/confirm/confirm.html
+++ b/src/main/resources/templates/system/confirm/confirm.html
@@ -31,7 +31,7 @@
     }
     $("#button-auth").click(function () {
         $.ajax({
-            url: "[[@{/api/auth}]]",
+            url: "[[@{/api/device/auth}]]",
             type:"POST",
             contentType:"application/json;charset=UTF-8",
             data:JSON.stringify(allData),
