diff --git a/src/main/java/com/muyu/config/util/HttpUtils.java b/src/main/java/com/muyu/config/util/HttpUtils.java new file mode 100644 index 0000000..93bfb47 --- /dev/null +++ b/src/main/java/com/muyu/config/util/HttpUtils.java @@ -0,0 +1,314 @@ +package com.muyu.config.util; + +import com.muyu.common.core.utils.StringUtils; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpDelete; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.conn.ClientConnectionManager; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLSocketFactory; +import org.apache.http.entity.ByteArrayEntity; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class HttpUtils { + + /** + * get + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @return + * @throws Exception + */ + public static HttpResponse doGet(String host, String path, String method, + Map headers, + Map querys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpGet request = new HttpGet(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + return httpClient.execute(request); + } + + /** + * post form + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param bodys + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + Map bodys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (bodys != null) { + List nameValuePairList = new ArrayList(); + + for (String key : bodys.keySet()) { + nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key))); + } + UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8"); + formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); + request.setEntity(formEntity); + } + + return httpClient.execute(request); + } + + /** + * Post String + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + String body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (StringUtils.isNotBlank(body)) { + request.setEntity(new StringEntity(body, "utf-8")); + } + + return httpClient.execute(request); + } + + /** + * Post stream + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + byte[] body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (body != null) { + request.setEntity(new ByteArrayEntity(body)); + } + + return httpClient.execute(request); + } + + /** + * Put String + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPut(String host, String path, String method, + Map headers, + Map querys, + String body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPut request = new HttpPut(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (StringUtils.isNotBlank(body)) { + request.setEntity(new StringEntity(body, "utf-8")); + } + + return httpClient.execute(request); + } + + /** + * Put stream + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPut(String host, String path, String method, + Map headers, + Map querys, + byte[] body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPut request = new HttpPut(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (body != null) { + request.setEntity(new ByteArrayEntity(body)); + } + + return httpClient.execute(request); + } + + /** + * Delete + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @return + * @throws Exception + */ + public static HttpResponse doDelete(String host, String path, String method, + Map headers, + Map querys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpDelete request = new HttpDelete(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + return httpClient.execute(request); + } + + private static String buildUrl(String host, String path, Map querys) throws UnsupportedEncodingException { + StringBuilder sbUrl = new StringBuilder(); + sbUrl.append(host); + if (!StringUtils.isBlank(path)) { + sbUrl.append(path); + } + if (null != querys) { + StringBuilder sbQuery = new StringBuilder(); + for (Map.Entry query : querys.entrySet()) { + if (0 < sbQuery.length()) { + sbQuery.append("&"); + } + if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) { + sbQuery.append(query.getValue()); + } + if (!StringUtils.isBlank(query.getKey())) { + sbQuery.append(query.getKey()); + if (!StringUtils.isBlank(query.getValue())) { + sbQuery.append("="); + sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8")); + } + } + } + if (0 < sbQuery.length()) { + sbUrl.append("?").append(sbQuery); + } + } + + return sbUrl.toString(); + } + + private static HttpClient wrapClient(String host) { + HttpClient httpClient = new DefaultHttpClient(); + if (host.startsWith("https://")) { + sslClient(httpClient); + } + + return httpClient; + } + + private static void sslClient(HttpClient httpClient) { + try { + SSLContext ctx = SSLContext.getInstance("TLS"); + X509TrustManager tm = new X509TrustManager() { + @Override + public X509Certificate[] getAcceptedIssuers() { + return null; + } + @Override + public void checkClientTrusted(X509Certificate[] xcs, String str) { + + } + @Override + public void checkServerTrusted(X509Certificate[] xcs, String str) { + + } + }; + ctx.init(null, new TrustManager[] { tm }, null); + SSLSocketFactory ssf = new SSLSocketFactory(ctx); + ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); + ClientConnectionManager ccm = httpClient.getConnectionManager(); + SchemeRegistry registry = ccm.getSchemeRegistry(); + registry.register(new Scheme("https", 443, ssf)); + } catch (KeyManagementException ex) { + throw new RuntimeException(ex); + } catch (NoSuchAlgorithmException ex) { + throw new RuntimeException(ex); + } + } +} diff --git a/src/main/java/com/muyu/config/util/SfUtil.java b/src/main/java/com/muyu/config/util/SfUtil.java new file mode 100644 index 0000000..44a668e --- /dev/null +++ b/src/main/java/com/muyu/config/util/SfUtil.java @@ -0,0 +1,59 @@ +package com.muyu.config.util; + +import com.alibaba.fastjson2.JSONObject; +import com.muyu.common.core.domain.Result; +import org.apache.http.HttpResponse; +import org.apache.http.util.EntityUtils; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author dori + * @date 2024/4/17 10:18 + * @description 实名认证 + */ +public class SfUtil { + public static Result query(StandingRes standingRes) { + String host = "https://kzidcardv1.market.alicloudapi.com"; + String path = "/api-mall/api/id_card/check"; + String method = "POST"; + String appcode = "033359549f644a32858017cd76df3f88"; + Map headers = new HashMap(); + //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105 + headers.put("Authorization", "APPCODE " + appcode); + //根据API的要求,定义相对应的Content-Type + headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); + Map querys = new HashMap(); + Map bodys = new HashMap(); + bodys.put("name", standingRes.getName()); + bodys.put("idcard", standingRes.getIdCard()); + Standing standing = new Standing(); + try { + /** + * 重要提示如下: + * HttpUtils请从 + * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java + * 下载 + * + * 相应的依赖请参照 + * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml + */ + HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys); +// System.out.println(response.toString()); + //获取response的body + String string = EntityUtils.toString(response.getEntity()); + JSONObject jsonObject = JSONObject.parseObject(string); + String string1 = jsonObject.getString("data"); + standing = JSONObject.parseObject(string1, Standing.class); + if(standing.getAddress()==null){ + return Result.error(500,null); + } + System.out.println(string1); + } catch (Exception e) { + e.printStackTrace(); + } + return Result.success(standing); + } + +} diff --git a/src/main/java/com/muyu/config/util/Standing.java b/src/main/java/com/muyu/config/util/Standing.java new file mode 100644 index 0000000..b174ea7 --- /dev/null +++ b/src/main/java/com/muyu/config/util/Standing.java @@ -0,0 +1,42 @@ +package com.muyu.config.util; + +import lombok.Data; + +/** + * @Author: wangxinyuan + * @Date: 2024/8/30 上午9:34 + */ +@Data +public class Standing { + + + // 姓名 + private String name; + + // 订单号 + private String result; + + // 订单号 + private String orderNo; + + // 性别 + private String sex; + + // 身份证号码 + private String idCards; + + // 出生日期 + private String birthday; + + // 地址 + private String address; + + // 描述 + private String desc; + + //状态信息 + private String message; + + + +} diff --git a/src/main/java/com/muyu/config/util/StandingRes.java b/src/main/java/com/muyu/config/util/StandingRes.java new file mode 100644 index 0000000..d3801a0 --- /dev/null +++ b/src/main/java/com/muyu/config/util/StandingRes.java @@ -0,0 +1,16 @@ +package com.muyu.config.util; + +import lombok.Data; + +/** + * @Author: wangxinyuan + * @Date: 2024/8/30 上午10:43 + */ +@Data +public class StandingRes { + + private String name; + + private String idCard; + +} diff --git a/src/main/java/com/muyu/system/controller/PaymentController.java b/src/main/java/com/muyu/system/controller/PaymentController.java index 75718aa..e3764ec 100644 --- a/src/main/java/com/muyu/system/controller/PaymentController.java +++ b/src/main/java/com/muyu/system/controller/PaymentController.java @@ -8,8 +8,11 @@ import com.alipay.api.request.AlipayTradePagePayRequest; import com.alipay.api.response.AlipayTradePagePayResponse; import com.muyu.common.core.domain.Result; import com.muyu.common.system.domain.PaymentParam; +import com.muyu.config.util.SfUtil; +import com.muyu.config.util.StandingRes; import com.muyu.system.service.SysUserService; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -83,4 +86,11 @@ public class PaymentController { } + //TODO 身份认证 + @PostMapping("/doPost") + public Result doPost(@RequestBody @Valid StandingRes standingRes) { + return SfUtil.query(standingRes); + } + + } diff --git a/src/main/java/com/muyu/system/controller/SysLogininforController.java b/src/main/java/com/muyu/system/controller/SysLogininforController.java index c1e92b7..4018030 100644 --- a/src/main/java/com/muyu/system/controller/SysLogininforController.java +++ b/src/main/java/com/muyu/system/controller/SysLogininforController.java @@ -40,6 +40,7 @@ public class SysLogininforController extends BaseController { return getDataTable(list); } + @Log(title = "登录日志", businessType = BusinessType.EXPORT) @RequiresPermissions("system:logininfor:export") @PostMapping("/export") diff --git a/src/main/java/com/muyu/system/mapper/SysLogininforMapper.java b/src/main/java/com/muyu/system/mapper/SysLogininforMapper.java index 0f1f86a..52689b6 100644 --- a/src/main/java/com/muyu/system/mapper/SysLogininforMapper.java +++ b/src/main/java/com/muyu/system/mapper/SysLogininforMapper.java @@ -42,4 +42,6 @@ public interface SysLogininforMapper extends BaseMapper { * @return 结果 */ public int cleanLogininfor (); + + } diff --git a/src/main/java/com/muyu/system/service/SysLogininforService.java b/src/main/java/com/muyu/system/service/SysLogininforService.java index bb3031e..b4b4619 100644 --- a/src/main/java/com/muyu/system/service/SysLogininforService.java +++ b/src/main/java/com/muyu/system/service/SysLogininforService.java @@ -40,4 +40,7 @@ public interface SysLogininforService extends IService { * 清空系统登录日志 */ public void cleanLogininfor (); + + + } diff --git a/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java b/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java index 1a7c7a0..0a5d819 100644 --- a/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java +++ b/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java @@ -42,6 +42,11 @@ public class SysLogininforServiceImpl extends ServiceImpl + + + delete from sys_logininfor where info_id in