Prechádzať zdrojové kódy

验证码加入重试功能

skyfffire 1 mesiac pred
rodič
commit
6609a2c282

+ 29 - 4
src/main/java/common/utils/hyg/HygSDK.java

@@ -71,16 +71,31 @@ public class HygSDK {
         Map<String, Object> bizParams = new HashMap<>();
         bizParams.put("workerName", workerData.getString("workerName"));
         bizParams.put("receiptChannel", 10);
-        bizParams.put("workerAccount", workerData.getString("backCardNo"));
+        bizParams.put("workerAccount", workerData.getString("bankCardNo"));
         bizParams.put("workerType", 1);
         bizParams.put("idNumber", workerData.getString("identNo"));
         bizParams.put("workerMobile", workerData.getString("workerMobile"));
+        bizParams.put("distributeAmount", amount);
         bizParams.put("requestNo", requestNo);
         bizParams.put("positionId", positionId);
 
         return HygSDK.invokeApi("/api/distribute/singleDistribute", bizParams);
     }
 
+    /**
+     * 放款状态查询
+     * 
+     * @param requestNo 放款订单号,由平台自己生成
+     * @return 放款结果
+     * @throws Exception  放款查询异常捕获
+     */
+    public static JSONObject signalQuery(String requestNo) throws Exception {
+        Map<String, Object> bizParams = new HashMap<>();
+        bizParams.put("requestNo", requestNo);
+
+        return HygSDK.invokeApi("/api/query/singleQuery", bizParams);
+    }
+    
     /**
      * 可以添加一个公共的请求方法,处理签名、加密、响应解析等通用逻辑
      * @param apiPath 例如 FIND_DETAILS_API
@@ -143,9 +158,19 @@ public class HygSDK {
             // AppConfig.LOGGER.info(HygSDK.findDepositAccount().toString());
             
             // 放款100分测试
-            String orderSn = OrderService.generateOrderSn();
-            AppConfig.LOGGER.info("order_sn = {}", orderSn);
-            AppConfig.LOGGER.info(HygSDK.singleDistribute("W1420857775537291264", "100", orderSn, "").toString());
+            
+            /*
+             * 2025-09-26 14:39:50.604 [main] INFO  common.jfinal.AppConfig - order_sn = 17588690942918042
+             * 2025-09-26 14:39:51.306 [main] INFO  common.jfinal.AppConfig - {"data":{"distributeId":"BL1421144242402639872","distributeAmount":"100"},"statusText":"success","statusCode":"000000"}
+             */
+            // String orderSn = OrderService.generateOrderSn();
+            // AppConfig.LOGGER.info("order_sn = {}", orderSn);
+            // AppConfig.LOGGER.info(HygSDK.singleDistribute("W1420857775537291264", "1000", orderSn, "P1421138295391289344").toString());
+            
+            // 一次至少提现1000分
+            // {"data":{"valueAddedTax":"0","distributeStatus":75,"incomeActualAmount":0,"constructionTax":"0","localEducationSupplementaryTax":"0","educationSurchargeTax":"0","remark":"计费标准超出范围","requestNo":"17588687904896652","individualIncomeTax":"0","incomeTaxAmount":0,"serviceCharge":"0","distributeId":"BL1421144242402639872","createTime":"2025-09-26 14:39:51","useCouponAmount":0,"distributeAmount":"100"},"statusText":"success","statusCode":"000000"}
+            // {"data":{"valueAddedTax":"0","distributeStatus":60,"incomeActualAmount":1000,"constructionTax":"0","localEducationSupplementaryTax":"0","payTime":"2025-09-26 14:44:55","educationSurchargeTax":"0","remark":"","requestNo":"17588690942918042","individualIncomeTax":"0","incomeTaxAmount":0,"serviceCharge":"75","distributeId":"BL1421145516409892864","createTime":"2025-09-26 14:44:55","useCouponAmount":0,"bankSerialNo":"2011000420250926143698976426","distributeAmount":"1000"},"statusText":"success","statusCode":"000000"}
+            // AppConfig.LOGGER.info(HygSDK.signalQuery("17588690942918042").toString());
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 18 - 14
src/main/java/modules/user/UserController.java

@@ -74,22 +74,26 @@ public class UserController extends MyController {
 
         // 3. 生成验证码
         String verifyCode = VerifyCode.randomVerifyCode();
+        
+        // 4. 实际发送验证码
+        try {
+            BatchSendResponse response = SMS.sendVerifyCodeByMobileNumber(mobileNumber, verifyCode);
+            String jsonResponse = JSONObject.toJSONString(response);
+            boolean isSentSuccessfully = response.getResult().getStatus();
 
-        // 4. 将验证码和发送时间戳存入 Session
-        setSessionAttr("verify_mobile_number", mobileNumber); // 是谁发的验证码
-        setSessionAttr("verify_code", verifyCode); // 验证码本身
-        setSessionAttr("last_send_verify_code_time", System.currentTimeMillis()); // 记录本次发送时间戳
-
-        // 5. 实际发送验证码(这里是模拟发送)
-        BatchSendResponse response = SMS.sendVerifyCodeByMobileNumber(mobileNumber, verifyCode);
-        String jsonResponse = JSONObject.toJSONString(response);
-        boolean isSentSuccessfully = response.getResult().getStatus();
+            if (isSentSuccessfully) {
+                // 5. 将验证码和发送时间戳存入 Session
+                setSessionAttr("verify_mobile_number", mobileNumber); // 是谁发的验证码
+                setSessionAttr("verify_code", verifyCode); // 验证码本身
+                setSessionAttr("last_send_verify_code_time", System.currentTimeMillis()); // 记录本次发送时间戳
 
-        if (isSentSuccessfully) {
-            renderJson(MyRet.ok("验证码已发送,请注意查收。").setData(jsonResponse));
-        } else {
-            // 短信服务商返回发送失败的情况处理
-            renderJson(MyRet.fail("验证码发送失败,请稍后再试").setData(jsonResponse));
+                renderJson(MyRet.ok("验证码已发送,请注意查收。").setData(jsonResponse));
+            } else {
+                // 短信服务商返回发送失败的情况处理
+                renderJson(MyRet.fail("验证码发送失败,请稍后再试").setData(jsonResponse));
+            }
+        } catch (Exception e) {
+            renderJson(MyRet.fail("验证码发送失败,请重试: " + e.getMessage()));
         }
     }