Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c976264581 | ||
|
|
b7c068e1ae | ||
|
|
b43a94f006 | ||
|
|
163a0f46df | ||
|
|
4625fbefed | ||
|
|
d7e971f32d | ||
|
|
7ab231a76f |
@@ -5,7 +5,7 @@
|
||||
<meta charset='UTF-8'>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
|
||||
<title>顺诚百宝箱</title>
|
||||
<title>支付测试- 顺诚百宝箱</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 10px auto;
|
||||
@@ -54,7 +54,7 @@
|
||||
alert('获取二维码失败');
|
||||
return;
|
||||
}
|
||||
$('.imgs').html("<img src='data:image/jpg;base64," + img + "'><br><a href='" + code + "'>手机点这里打开支付宝APP</a><br>使用支付宝扫一扫<br><button onclick='selectPay(" + id + ")'>查询支付状态</button> <button onclick='getPayQr()'>刷新二维码</button>");
|
||||
$('.imgs').html("<img src='data:image/jpg;base64," + img + "'><br><a href='alipays://platformapi/startapp?saId=10000007&qrcode=" + code + "'>手机点这里打开支付宝APP</a><br>使用支付宝扫一扫<br><button onclick='selectPay(" + id + ")'>查询支付状态</button> <button onclick='getPayQr()'>刷新二维码</button>");
|
||||
subscribe(id);
|
||||
|
||||
} else alert('遇到错误 ' + res.msg);
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
package sc545.pay.interceptor;
|
||||
|
||||
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.*;
|
||||
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
|
||||
import sc545.pay.utils.DBUtil;
|
||||
import sc545.pay.utils.ReadTxt;
|
||||
import sc545.pay.utils.Utils;
|
||||
|
||||
|
||||
|
||||
|
||||
public class testInterceptor implements HandlerInterceptor{
|
||||
|
||||
@Override
|
||||
public boolean preHandle(
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
Object handler) throws Exception {
|
||||
|
||||
response.setCharacterEncoding("utf-8");
|
||||
response.setContentType("text/html;charset=utf-8");
|
||||
request.setCharacterEncoding("utf-8");
|
||||
|
||||
/*************************************拉黑高频访问ip******************************************/
|
||||
if(!"".equals(ReadTxt.getSetting(null, "拉黑ip.txt", Utils.getIpAddr(request), ""))){
|
||||
PrintWriter out = response.getWriter();
|
||||
out.print("<meta name='viewport' content='width=device-width, initial-scale=1.0'>系统检测到高频次访问已被拉黑IP<br>若误封请前往微信公众号【顺诚百宝箱】反馈<br>感谢理解!<br>IP:"+Utils.getIpAddr(request));
|
||||
return false;
|
||||
}
|
||||
String ipdate = ReadTxt.getSetting(null, "访问者IP.txt", Utils.getIpAddr(request), "");//获取此ip上次访问时间和已经访问的次数
|
||||
String[] idt = ipdate.split("_");//分隔
|
||||
long i=0;//已经访问的次数
|
||||
if(!"".equals(ipdate)){
|
||||
if(ipdate.indexOf("_")>0) i=Utils.getNum(idt[1]);
|
||||
//检查此ip第一次访问到现在过了几秒
|
||||
Date ds = Utils.string2Date(idt[0], null);
|
||||
long xc = (new Date().getTime() - ds.getTime())/1000;
|
||||
if(xc<=30){//30秒超过50次
|
||||
if(i>50){//拉黑此ip3天
|
||||
ReadTxt.writeSetting(null,"拉黑ip.txt", Utils.getIpAddr(request), Utils.date2String(new Date(), null));
|
||||
ReadTxt.delSetting(null, "访问者IP.txt", Utils.getIpAddr(request));
|
||||
}else{//正常ip
|
||||
}
|
||||
}else{//正常ip
|
||||
ReadTxt.delSetting(null, "访问者IP.txt", Utils.getIpAddr(request));
|
||||
}
|
||||
ReadTxt.writeSetting(null,"访问者IP.txt", Utils.getIpAddr(request), idt[0]+"_"+(++i));
|
||||
}else
|
||||
ReadTxt.writeSetting(null,"访问者IP.txt", Utils.getIpAddr(request), Utils.date2String(new Date(), "yyyy-MM-dd HH:mm:ss")+"_1");
|
||||
/*******************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DBUtil db = new DBUtil();
|
||||
|
||||
//闭站
|
||||
String cw = ReadTxt.getSetting(null, "setting.ini", "closeweb", "0");
|
||||
if("1".equals(cw)) {
|
||||
String uri = request.getRequestURI();
|
||||
if(uri.indexOf("/admin")<0){
|
||||
Utils.outHtml(response.getWriter(), ReadTxt.getSetting(null, "setting.ini", "closewebtxt", "本站暂停访问"), "/*about:blank*/");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,10 +2,8 @@ package sc545.pay.utils;
|
||||
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonParser;
|
||||
|
||||
@@ -1,15 +1,7 @@
|
||||
package sc545.pay.utils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.net.URLEncoder;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
@@ -29,12 +21,8 @@ import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.Header;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.ParseException;
|
||||
import org.apache.http.client.ClientProtocolException;
|
||||
import org.apache.http.client.CookieStore;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
@@ -60,14 +48,7 @@ import org.apache.http.util.EntityUtils;
|
||||
*/
|
||||
public class HttpUtils {
|
||||
|
||||
private static final CloseableHttpClient httpClient;
|
||||
public static final String CHARSET = "UTF-8";
|
||||
// 采用静态代码块,初始化超时时间配置,再根据配置生成默认httpClient对象
|
||||
static {
|
||||
//10秒相应超时
|
||||
RequestConfig config = RequestConfig.custom().setConnectTimeout(10000).setSocketTimeout(10000).setConnectionRequestTimeout(5000).build();
|
||||
httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
|
||||
}
|
||||
|
||||
public static String doGet(String url, Map<String, String> params) {
|
||||
return doGet(url, params, CHARSET);
|
||||
@@ -93,7 +74,10 @@ public class HttpUtils {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
CloseableHttpResponse response = null;
|
||||
HttpGet httpGet = null;
|
||||
RequestConfig config = RequestConfig.custom().setConnectTimeout(10000).setSocketTimeout(10000).setConnectionRequestTimeout(5000).build();
|
||||
CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
|
||||
try {
|
||||
if (params != null && !params.isEmpty()) {
|
||||
List<NameValuePair> pairs = new ArrayList<NameValuePair>(params.size());
|
||||
@@ -106,8 +90,8 @@ public class HttpUtils {
|
||||
// 将请求参数和url进行拼接
|
||||
url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, charset));
|
||||
}
|
||||
HttpGet httpGet = new HttpGet(url);
|
||||
CloseableHttpResponse response = httpClient.execute(httpGet);
|
||||
httpGet = new HttpGet(url);
|
||||
response = httpClient.execute(httpGet);
|
||||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
if (statusCode != 200) {
|
||||
httpGet.abort();
|
||||
@@ -125,7 +109,20 @@ public class HttpUtils {
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
System.out.println("url错误:::"+e.toString());
|
||||
try {
|
||||
response.close();
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
try {
|
||||
response.close();
|
||||
httpClient.close();
|
||||
httpGet.reset();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -157,6 +154,8 @@ public class HttpUtils {
|
||||
}
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
CloseableHttpResponse response = null;
|
||||
RequestConfig config = RequestConfig.custom().setConnectTimeout(10000).setSocketTimeout(10000).setConnectionRequestTimeout(5000).build();
|
||||
CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
|
||||
try {
|
||||
if (pairs != null && pairs.size() > 0) {
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(pairs, CHARSET));
|
||||
@@ -176,14 +175,19 @@ public class HttpUtils {
|
||||
EntityUtils.consume(entity);
|
||||
if(!"UTF-8".equals(getEncoding(result))) result=GBKtoUTF8(result);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
return "";
|
||||
} finally {
|
||||
if (response != null)
|
||||
try {
|
||||
response.close();
|
||||
} catch (IOException e) {}
|
||||
}catch (Exception e) {
|
||||
System.out.println("url错误:::"+e.toString());
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
try {
|
||||
response.close();
|
||||
httpClient.close();
|
||||
httpPost.reset();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -198,7 +202,9 @@ public class HttpUtils {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
CloseableHttpResponse response = null;
|
||||
HttpGet httpGet = null;
|
||||
CloseableHttpClient httpsClient = null;
|
||||
try {
|
||||
if (params != null && !params.isEmpty()) {
|
||||
List<NameValuePair> pairs = new ArrayList<NameValuePair>(params.size());
|
||||
@@ -210,11 +216,11 @@ public class HttpUtils {
|
||||
}
|
||||
url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, charset));
|
||||
}
|
||||
HttpGet httpGet = new HttpGet(url);
|
||||
httpGet = new HttpGet(url);
|
||||
|
||||
// https 注意这里获取https内容,使用了忽略证书的方式,当然还有其他的方式来获取https内容
|
||||
CloseableHttpClient httpsClient = HttpUtils.createSSLClientDefault();
|
||||
CloseableHttpResponse response = httpsClient.execute(httpGet);
|
||||
httpsClient = HttpUtils.createSSLClientDefault();
|
||||
response = httpsClient.execute(httpGet);
|
||||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
if (statusCode != 200) {
|
||||
httpGet.abort();
|
||||
@@ -229,8 +235,17 @@ public class HttpUtils {
|
||||
response.close();
|
||||
if(!"UTF-8".equals(getEncoding(result))) result=GBKtoUTF8(result);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
}catch (Exception e) {
|
||||
System.out.println("url错误:::"+e.toString());
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
try {
|
||||
response.close();
|
||||
httpsClient.close();
|
||||
httpGet.reset();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -298,6 +313,7 @@ public class HttpUtils {
|
||||
CloseableHttpClient client = httpClientBuilder.build();
|
||||
client = (CloseableHttpClient) wrapClient(client);
|
||||
HttpPost post = new HttpPost(url);
|
||||
CloseableHttpResponse res = null;
|
||||
try {
|
||||
StringEntity s = new StringEntity(json, "utf-8");
|
||||
if (StringUtils.isBlank(contentType)) {
|
||||
@@ -305,19 +321,29 @@ public class HttpUtils {
|
||||
}
|
||||
s.setContentType(contentType);
|
||||
post.setEntity(s);
|
||||
HttpResponse res = client.execute(post);
|
||||
res = client.execute(post);
|
||||
HttpEntity entity = res.getEntity();
|
||||
String str = EntityUtils.toString(entity, charset);
|
||||
if(!"UTF-8".equals(getEncoding(str))) str=GBKtoUTF8(str);
|
||||
return str;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}catch (Exception e) {
|
||||
System.out.println("url错误:::"+e.toString());
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
try {
|
||||
res.close();
|
||||
client.close();
|
||||
post.reset();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private static org.apache.http.client.HttpClient wrapClient(HttpClient base) {
|
||||
@SuppressWarnings("deprecation")
|
||||
private static org.apache.http.client.HttpClient wrapClient(HttpClient base) {
|
||||
try {
|
||||
SSLContext ctx = SSLContext.getInstance("TLSv1");
|
||||
X509TrustManager tm = new X509TrustManager() {
|
||||
@@ -368,6 +394,8 @@ public class HttpUtils {
|
||||
return false;
|
||||
}
|
||||
HttpGet httpGet = new HttpGet(url);
|
||||
RequestConfig config = RequestConfig.custom().setConnectTimeout(10000).setSocketTimeout(10000).setConnectionRequestTimeout(5000).build();
|
||||
CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
|
||||
try {
|
||||
CloseableHttpResponse response = httpClient.execute(httpGet);
|
||||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
@@ -491,6 +519,7 @@ public class HttpUtils {
|
||||
* @param header
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static String doPost2(String url, Map<String, String> params, CookieStore cookie,Map<String, String> header,String charset) {
|
||||
if(charset==null||charset.trim().length()<1) charset="UTF-8";
|
||||
if (StringUtils.isBlank(url)) {
|
||||
@@ -517,12 +546,13 @@ public class HttpUtils {
|
||||
}
|
||||
|
||||
CloseableHttpResponse response = null;
|
||||
CloseableHttpClient httpClientc = null;
|
||||
try {
|
||||
if (pairs != null && pairs.size() > 0) {
|
||||
httpPost.setEntity(new UrlEncodedFormEntity(pairs, CHARSET));
|
||||
}
|
||||
|
||||
CloseableHttpClient httpClientc = HttpUtils.createSSLClientCookie(cookie);
|
||||
httpClientc = HttpUtils.createSSLClientCookie(cookie);
|
||||
response = httpClientc.execute(httpPost);
|
||||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
if (statusCode != 200) {
|
||||
@@ -538,22 +568,38 @@ public class HttpUtils {
|
||||
if(!"UTF-8".equals(getEncoding(result))) result=GBKtoUTF8(result);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
System.out.println("url错误:::"+e.toString());
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (response != null)
|
||||
try {
|
||||
response.close();
|
||||
} catch (IOException e) {e.printStackTrace();}
|
||||
}finally{
|
||||
try {
|
||||
response.close();
|
||||
httpClientc.close();
|
||||
httpPost.reset();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 带有cookie和header 的get请求
|
||||
* @param url
|
||||
* @param params
|
||||
* @param cookie
|
||||
* @param header
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static String doGet2(String url, Map<String, String> params, CookieStore cookie,Map<String, String> header,String charset) {
|
||||
if(charset==null||charset.trim().length()<1) charset="UTF-8";
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
HttpGet httpGet = null;
|
||||
CloseableHttpClient httpsClient = null;
|
||||
CloseableHttpResponse response = null;
|
||||
try {
|
||||
if (params != null && !params.isEmpty()) {
|
||||
List<NameValuePair> pairs = new ArrayList<NameValuePair>(params.size());
|
||||
@@ -565,7 +611,7 @@ public class HttpUtils {
|
||||
}
|
||||
url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(pairs, charset));
|
||||
}
|
||||
HttpGet httpGet = new HttpGet(url);
|
||||
httpGet = new HttpGet(url);
|
||||
|
||||
Set<Entry<String, String>> set = header.entrySet();
|
||||
Iterator<Entry<String, String>> s = set.iterator();
|
||||
@@ -575,8 +621,8 @@ public class HttpUtils {
|
||||
}
|
||||
|
||||
// https 注意这里获取https内容,使用了忽略证书的方式,当然还有其他的方式来获取https内容
|
||||
CloseableHttpClient httpsClient = HttpUtils.createSSLClientCookie(cookie);
|
||||
CloseableHttpResponse response = httpsClient.execute(httpGet);
|
||||
httpsClient = HttpUtils.createSSLClientCookie(cookie);
|
||||
response = httpsClient.execute(httpGet);
|
||||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
if (statusCode != 200) {
|
||||
httpGet.abort();
|
||||
@@ -591,8 +637,17 @@ public class HttpUtils {
|
||||
response.close();
|
||||
if(!"UTF-8".equals(getEncoding(result))) result=GBKtoUTF8(result);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
}catch (Exception e) {
|
||||
System.out.println("url错误:::"+e.toString());
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
try {
|
||||
response.close();
|
||||
httpsClient.close();
|
||||
httpGet.reset();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package sc545.pay.utils;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@@ -29,8 +29,7 @@ import org.apache.commons.lang.time.DateUtils;
|
||||
public class Utils {
|
||||
|
||||
public static void main(String[] args) {
|
||||
String s = floatToString(0.01235788889f, 3,false);
|
||||
System.out.println(s);
|
||||
getWeekNum();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -702,12 +701,6 @@ public class Utils {
|
||||
*/
|
||||
public static long getDatePoor(Date endDate, Date nowDate) {
|
||||
|
||||
long nd = 1000 * 24 * 60 * 60;// 一天
|
||||
|
||||
long nh = 1000 * 60 * 60;// 一小时
|
||||
|
||||
long nm = 1000 * 60;// 一分钟
|
||||
|
||||
long ns = 1000;// 一秒
|
||||
|
||||
// 获得两个时间的毫秒时间差异
|
||||
@@ -719,6 +712,13 @@ public class Utils {
|
||||
|
||||
}
|
||||
|
||||
/**获取今天是周几,1-7*/
|
||||
public static long getWeekNum() {
|
||||
long[] weekDays = {7,1,2,3,4,5,6};
|
||||
Calendar c = Calendar.getInstance();
|
||||
return weekDays[c.get(Calendar.DAY_OF_WEEK)-1];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户真实ip
|
||||
*
|
||||
@@ -1088,7 +1088,8 @@ public class Utils {
|
||||
DecimalFormat decimalFormat=new DecimalFormat(f);//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
||||
String p=decimalFormat.format(d);//format 返回的是字符串
|
||||
if(p.split("\\.")[0].length()<1) p="0"+p;
|
||||
String nn = p.split("\\.")[1];
|
||||
String nn ="0";
|
||||
if(p.split("\\.").length>1) nn = p.split("\\.")[1];
|
||||
if(!x){
|
||||
if(nn.replaceAll("0", "").length()<1) p=p.split("\\.")[0];
|
||||
}
|
||||
|
||||
@@ -37,21 +37,4 @@
|
||||
</bean>
|
||||
|
||||
|
||||
|
||||
<!-- 配置静态资源 -->
|
||||
<mvc:resources location="/" mapping="/**/*.js" />
|
||||
<mvc:resources location="/" mapping="/**/*.css" />
|
||||
<mvc:resources location="/assets/" mapping="/assets/**/*" />
|
||||
<mvc:resources location="/images/" mapping="/images/*"
|
||||
cache-period="360000" />
|
||||
|
||||
<mvc:interceptors>
|
||||
<mvc:interceptor>
|
||||
<mvc:mapping path="/**" />
|
||||
<bean class="sc545.pay.interceptor.testInterceptor" />
|
||||
</mvc:interceptor>
|
||||
|
||||
</mvc:interceptors>
|
||||
|
||||
|
||||
</beans>
|
||||
|
||||
Reference in New Issue
Block a user