Browse Source

fix 柬埔寨ip无法下单

zoujiajian 2 năm trước cách đây
mục cha
commit
b8c07c1dd7

+ 22 - 0
netflix-common/src/main/java/com/cyksj/common/util/StringUtil.java

@@ -499,4 +499,26 @@ public final class StringUtil {
 
 		return "unknown";
 	}
+
+	public static String getInternalAddressByIP(String ip) {
+		if (StrUtil.isBlank(ip)) {
+			return "unknown";
+		}
+		try {
+			String url = String.format("http://whois.pconline.com.cn/ipJson.jsp?ip=%s" + "&json=true", ip);
+			HttpResponse<String> send = J11HttpC
+					.custom().ofGet().url(url)
+					.send(HttpResponse.BodyHandlers.ofString());
+			String rspStr = send.body();
+			if (StrUtil.isEmpty(rspStr)) {
+				return "unknown";
+			}
+			JSONObject obj = JSONUtil.parseObj(rspStr);
+			String addr = obj.getStr("addr");
+			return addr;
+		} catch (Exception e) {
+		}
+
+		return "unknown";
+	}
 }

+ 4 - 0
netflix-web/src/main/java/com/cyksj/web/controller/payment/OrderController.java

@@ -12,6 +12,7 @@ import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.IoKit;
 import com.cyksj.common.util.Jsons;
+import com.cyksj.common.util.StringUtil;
 import com.cyksj.common.util.Xmls;
 import com.cyksj.config.zfb.BaseZfbConfig;
 import com.cyksj.config.zfb.ZfbProductCode;
@@ -135,6 +136,9 @@ public class OrderController {
         log.info("{}[start] params:{}", methodName, payRequest);
 
         String ip = ServletUtil.getClientIP(request);
+        if (StringUtil.getInternalAddressByIP(ip).contains("柬埔寨")) {
+            throw BusinessRuntimeException.getInstance("系统异常");
+        }
         payRequest.setIp(ip);
 
         OrderDon orderDon = orderDonService.submit(payRequest);