diff --git a/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java b/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
index 84fbf7a..f9f0604 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
@@ -44,6 +44,7 @@
         secret = businessparaService.findByParakey(WaterBudinessConstants.WATER_SECRET).getParaval();
         ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
         helper.login(appid, secret);
+        System.out.println("向支付中心登录成功");
         ApiVersionResponse version = apiCommonProxy.apiVersion();
         assertThat("get version error " + version.getException(),
                 version.getVersion(), notNullValue());
diff --git a/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java b/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
index 324c43e..5b2c92a 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
@@ -3,10 +3,7 @@
 import com.supwisdom.dlpay.api.bean.*;
 import com.supwisdom.dlpay.framework.service.BusinessparaService;
 import com.supwisdom.dlpay.framework.service.SystemUtilService;
-import com.supwisdom.dlpay.framework.util.Constants;
-import com.supwisdom.dlpay.framework.util.TradeDict;
-import com.supwisdom.dlpay.framework.util.TradeErrorCode;
-import com.supwisdom.dlpay.framework.util.WaterBudinessConstants;
+import com.supwisdom.dlpay.framework.util.*;
 import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
 import com.supwisdom.dlpay.paysdk.proxy.TransactionProxy;
 import com.supwisdom.dlpay.system.service.UserDataService;
@@ -159,15 +156,20 @@
     }
 
     private CitizenCardPayinitParam buildPayInitParam(TAccdtl accdtl) {
-        CitizenCardPayinitParam initParam = new CitizenCardPayinitParam();
-        initParam.setBillno(accdtl.getBillno());
-        initParam.setCardNo(accdtl.getCitizenCardno());
-        Double amount = (accdtl.getAmount() * 100);
-        initParam.setAmount(amount.intValue());
-        initParam.setDtltype(Constants.DTLTYPE_WATER);
-        initParam.setTransdate(accdtl.getTransDate());
-        initParam.setTranstime(accdtl.getTransTime());
-        initParam.setShopaccno(businessparaService.findByParakey(WaterBudinessConstants.WATER_SHOP_ACCNO).getParaval());
+        CitizenCardPayinitParam initParam = null;
+        try {
+            initParam = new CitizenCardPayinitParam();
+            initParam.setBillno(accdtl.getBillno());
+            initParam.setCardNo(accdtl.getCitizenCardno());
+            initParam.setAmount(MoneyUtil.YuanToFen(accdtl.getAmount()));
+            initParam.setDtltype(Constants.DTLTYPE_WATER);
+            initParam.setTransdate(accdtl.getTransDate());
+            initParam.setTranstime(accdtl.getTransTime());
+            initParam.setShopaccno(businessparaService.findByParakey(WaterBudinessConstants.WATER_SHOP_ACCNO).getParaval());
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException();
+        }
         return initParam;
     }
 
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt b/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
index f546b16..e68eeb7 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
@@ -1,6 +1,5 @@
 package com.supwisdom.dlpay.water
 
-import com.supwisdom.dlpay.framework.service.SystemUtilService
 import com.supwisdom.dlpay.paysdk.ApiLoginHelper
 import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy
 import com.supwisdom.dlpay.water.pay.WaterPayAsyncTask
