Sfoglia il codice sorgente

fix đăng ký qua website

student 4 settimane fa
parent
commit
fc12b42a0c

+ 1 - 1
KittyFallWs/KittyFallWs/src/com/vas/kittyfallwsvas/wsfw/database/WsProcessUtils.java

@@ -78,7 +78,7 @@ public class WsProcessUtils extends DbProcessorAbstract {
             = "select * from list_prize WHERE action_type = ? and status <> 0 ";
     private final String SQL_GET_USER_BY_MSISDN_AND_PASSWORD
             = "select * from account_user WHERE msisdn = ? and pass = ? and service_id = ? and status <> 0";
-    private final String SQL_CHECK_USED_MSISDN = "select * from REG_INFO WHERE msisdn = ? and product_name = ?";
+    private final String SQL_CHECK_USED_MSISDN = "select * from REG_INFO WHERE msisdn = ? and product_name = ? and expire_time > sysdate";
     private final String sqlGetUser = "select * from ws_user where username = ?";
     private final String sqlCheckUser = "select * from ws_user where username = ? and password=?";
     private final String sqlCheckCheckPass = "SELECT * FROM blacklist_Password WHERE password = ?";

+ 14 - 0
KittyFallWs/KittyFallWs/src/com/vas/kittyfallwsvas/wsfw/services/WSProcessor.java

@@ -146,6 +146,11 @@ public class WSProcessor extends WebserviceFW {
     }
 
     public String requestMpsOtp(String msisdn, int fee, String REQ, String packName) {
+        return requestMpsOtp(msisdn, fee, REQ, packName, null);
+    }
+
+    public String requestMpsOtp(String msisdn, int fee, String REQ, String packName,
+            Map<String, String> mpsResponse) {
         // TODO add your handling code here: 
 //        Map<String, String> params = new HashMap();
         WebserviceObject wsObj = this.getWebservice("register_otp");
@@ -175,6 +180,15 @@ public class WSProcessor extends WebserviceFW {
 
             logger.info("Response from MPS:" + response);
             String data_complete_spamsms = EncryptUtil.decodeMpsResponse(response, mpsConfig.getKeyPath());
+            if (mpsResponse != null) {
+                String[] responseParams = data_complete_spamsms.split("&");
+                for (String responseParam : responseParams) {
+                    String[] keyValue = responseParam.split("=", 2);
+                    if (keyValue.length == 2) {
+                        mpsResponse.put(keyValue[0], keyValue[1]);
+                    }
+                }
+            }
             value = EncryptUtil.analyseCodeReturn(data_complete_spamsms);
             logger.info("mps response value:" + value);
             String error = value.split("\\|")[0];

+ 21 - 13
KittyFallWs/KittyFallWs/src/com/vas/webservices/KittyFallWs.java

@@ -238,9 +238,8 @@ public class KittyFallWs extends WebserviceAbstract {
                 db.iInsertRegisterInfo(reg);
             }
 
-            db.addTurnSpin(msisdn,productInfo.getNumberSpin());
-            logger.info("add turn success Register " + msisdn + ", turn " + productInfo.getNumberSpin());
-            
+
+
             //insert chargelog
             if (fee > 0) {
                 ChargeLog chargeLog = new ChargeLog();
@@ -250,6 +249,8 @@ public class KittyFallWs extends WebserviceAbstract {
                 chargeLog.setDescription("Register " + productInfo.getProductName());
                 chargeLog.setStatus(Common.Constant.REGISTER_STATUS);
                 db.iInsertChargeLog(chargeLog);
+                db.addTurnSpin(msisdn,productInfo.getNumberSpin());
+                logger.info("add turn success Register " + msisdn + ", turn " + productInfo.getNumberSpin());
             }
 
             // send message
@@ -1155,7 +1156,7 @@ public class KittyFallWs extends WebserviceAbstract {
                             //insert chargelog
                             if (fee > 0) {
                                 ChargeLog chargeLog = new ChargeLog();
-                                chargeLog.setFee(productInfo.getFee());
+                                chargeLog.setFee(fee);
                                 chargeLog.setChargeTime(new Timestamp(System.currentTimeMillis()));
                                 chargeLog.setMsisdn(msisdn);
                                 chargeLog.setDescription("Register " + packageName);
@@ -1669,22 +1670,28 @@ public class KittyFallWs extends WebserviceAbstract {
                         int fee = (int) productInfo.getFee();
                         boolean registered = false;
                         if (!db.checkRegistered(msisdn, productInfo.getProductName())) {
-                            // new user
+                            // new user Chưa đăng ký trong chu kỳ hiện tại
 //                            fee = 0;
                         } else {
-                            if (listRegInday != null && !listRegInday.isEmpty()) {
-                                fee = 0;
-                                registered = true;
-                            }
+                            // Đã đăng ký trong chu kỳ hiện tại
+                            fee = 0;
                         }
                         // neu khong co buoc otp thi tao them requestId ban di
                         String REQ = reqDf.format(new Date()) + productInfo.getProductId() + msisdn.substring(Common.COUNTRY_CODE.length());
                         logger.info("after get product info " + fee);
                         // right -----------------------------------------------
-                        resultPaid = ws.requestMpsOtp(msisdn, fee, REQ, productInfo.getProductName());
+                        Map<String, String> mpsRes = new HashMap<String, String>();
+                        resultPaid = ws.requestMpsOtp(msisdn, fee, REQ, productInfo.getProductName(), mpsRes);
                         
                         String errorCode = resultPaid.split("\\|")[0];
                         if (WSProcessor.LIST_SUCCESS_RES.contains(resultPaid)) {
+                            String mpsPrice = mpsRes.get("PRICE");
+                            try {
+                                fee = mpsPrice == null ? 0 : Integer.parseInt(mpsPrice);
+                            } catch (NumberFormatException ex) {
+                                logger.error("Invalid PRICE from MPS: " + mpsPrice, ex);
+                                fee = 0;
+                            }
                             logger.info("Register success success " + msisdn + ", fee " + fee);
                             Timestamp expireTime = getExpireTime(productInfo);
                             // check registered
@@ -1707,15 +1714,16 @@ public class KittyFallWs extends WebserviceAbstract {
                             //insert chargelog
                             if (fee > 0) {
                                 ChargeLog chargeLog = new ChargeLog();
-                                chargeLog.setFee(productInfo.getFee());
+                                chargeLog.setFee(fee);
                                 chargeLog.setChargeTime(new Timestamp(System.currentTimeMillis()));
                                 chargeLog.setMsisdn(msisdn);
                                 chargeLog.setDescription("Register " + packageName);
                                 chargeLog.setStatus(Common.Constant.REGISTER_STATUS);
                                 db.iInsertChargeLog(chargeLog);
+                                db.addTurnSpin(msisdn,productInfo.getNumberSpin());
+                                logger.info("add turn success Register " + msisdn + ", turn " + productInfo.getNumberSpin());
                             }
-                            db.addTurnSpin(msisdn,productInfo.getNumberSpin());
-                            logger.info("add turn success Register " + msisdn + ", turn " + productInfo.getNumberSpin());
+
                             // create a new account_user for this user
                             boolean isCreated = true;
                             // check existed