From ba49e0e01825a592e91c26049fb7a003726875db Mon Sep 17 00:00:00 2001 From: gy b Date: Thu, 5 Oct 2023 20:03:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=8A=E4=B8=8A?= =?UTF-8?q?=E7=AD=BE=E4=B8=AA=E4=BA=BA=E7=94=A8=E6=88=B7=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=8A=B6=E6=80=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bestsign/RegisterController.java | 1 - .../src/main/resources/application.yml | 2 +- .../bestsign/service/SignRegisterService.java | 4 + .../service/impl/RegisterServiceImpl.java | 30 +++++++- .../bestsign/utils/BestsignOpenApiClient.java | 74 +++++++++++-------- 5 files changed, 74 insertions(+), 37 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bestsign/RegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bestsign/RegisterController.java index eef7abd..6e349cb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bestsign/RegisterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bestsign/RegisterController.java @@ -3,7 +3,6 @@ package com.ruoyi.web.controller.bestsign; import com.ruoyi.bestsign.domain.PersonRegisterVO; import com.ruoyi.bestsign.service.SignRegisterService; import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.wisdomarbitrate.domain.CaseApplication; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index cbbed36..9e15e95 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -106,7 +106,7 @@ spring: ssq: developerId: 1695872832013855470 privateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCiDRuz+dxqkWqHdov0hK+KEWLw/e8MQSqkZZ4c01Yr6cSmQiWyV8Xin0u5S/EA02FWxpjLi1nLriVtOBhZGsoryFmcJrwzSnQ5PORP/HhfcAWFE/Y+3qSQS1OiU7e5wbReCgEUvx4GHZuhdu8cOvq5DG9l33YFZrIEMBTmnf8eKT54STx0tjcKl7U6B6nsiThy3zVtpWXVv6H1HGmxC0KT4EQ388s/PFjrwmk+GFb3EpKCns/GQHf7QrtNz1ZOgCXfgQiQ+91/tcngzUH+zMCIxn5lS+ENAxVI6Ev3W9Y0QHtKwmO4ORVuAskJYzBB2xKI/gw8+PUXNziMAKXuoUAjAgMBAAECggEAd7yHw6vTGUrpE76cGsgPjEzcdoSqpLth7qbG9TWSblAEZXRqtiP0q0ZYhUl/gcSuH5gOPhdw+fZq4RCZrP0GdONMkvxsAtn4lnJPoGpD5wC2k2X0hO+tWJDP8xk4n6BozTNHKTUt0gb+f4eJlapep2xwwy0h30vKLR3504zafEV9j/2D8l5TFSv6rd3UVxUvrDKQ9mhfATEUlrTpjs0SfWupMkr4j7TuJJ8qSUSiEADe4hyUB6+LouDZCt8jV4aLojQBJKrQ6VPVdDFkHGsePu4tHtvcKsaOZJ0pjpJ7MT6D5ElD/sJjo0g/3qK5/FToVFVbrxtykVreK6mE5oSTQQKBgQDpEFSgH1d4N7NsZhviaCIUkB97hO0jpRbD7UZirzZ9ok96Fk+SmfhdmypDMoiaRHCNhQuu5dI9mg5RbUhz9mCZnAhzJRL+DmE4bhNvQmbtJA7KT6n/AdH2zy0mYulrcG17dQspvTr/5421PTEE2+FRoCbG6hBsSSUit9HLvAU13QKBgQCx/7ql+hbx+t0Yb02XckBHiA+MWrFLO4dMX9cKf3LldC0nhn0K9HOSoZmM0KcmXRnMo+/4t89xOJRl7JRXwcLoy/64OaUBVv+8FFV1yY4THka3nEnQE40vVWy+vuNJtt+eKlEhJ35N1GIHXo7/4j0POtEuNU7KSqMnLUD+Oy/t/wKBgEiajcJUASuyLnLWXFlrlzJQs34HKtiv1Se0Avk7G/6HUbr2uFMzI+wFKmVEmMl2CJoNmFYjwhruowc6xBdb6TvxH7C/G+uJD0BFCkjeprG5SeI8bvjB2GbKo4YRyiVuIK0VCSU3jemqeLq9FUguN0L2YR4WTIdvQeJO4UxWhkkBAoGBAJk7TxDHZK1XirIYTzGK928c4FWxVWMwkd7buqGc6epBwwV9r3OY0U1vtGIW1W4fQ7B5iIISqpALZyT/Lw0FDqedxWAOr8+hd3IQBynpI1et/q7d6mUoD6ip332tkrjIp2TfhQwHlaGmreUuL+h0eJ/9wEoJNhTLf/yf5o11omM9AoGBAOLVlXR9FbU2Ubpp3HwTumSzKDWzq3T5eQcqC1zE3BPOo29uAf9BQTumPxe51U64egttW/nif5FH4v4Gentmxb2B2ckdOs/u9zIWz3JPfHU7RqMyMokuWrQ6lMoiSYpH3MSHoavLyAEhAnpceX3oktXgpYHO9d8MfON3XKJl23ip - serverHost: http://openapi.bestsign.info/openapi/v2/ + serverHost: https://openapi.bestsign.info/openapi/v2/ # token配置 token: diff --git a/ruoyi-system/src/main/java/com/ruoyi/bestsign/service/SignRegisterService.java b/ruoyi-system/src/main/java/com/ruoyi/bestsign/service/SignRegisterService.java index e0eb419..e72b247 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bestsign/service/SignRegisterService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bestsign/service/SignRegisterService.java @@ -11,4 +11,8 @@ public interface SignRegisterService { * @return */ AjaxResult registerPerson(PersonRegisterVO personRegisterVO); + /** + * 查询用户认证状态/user/async/applyCert/status/ + */ + AjaxResult queryRegisterStatus(PersonRegisterVO personRegisterVO); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bestsign/service/impl/RegisterServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/bestsign/service/impl/RegisterServiceImpl.java index d00cdf9..3a731fa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bestsign/service/impl/RegisterServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bestsign/service/impl/RegisterServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.bestsign.service.impl; +import com.alibaba.fastjson.JSONObject; import com.ruoyi.bestsign.domain.PersonRegisterVO; import com.ruoyi.bestsign.service.SignRegisterService; import com.ruoyi.bestsign.utils.BestsignOpenApiClient; @@ -22,14 +23,37 @@ public class RegisterServiceImpl implements SignRegisterService { @Override public AjaxResult registerPerson(PersonRegisterVO personRegisterVO) { try { - String s = bestsignOpenApiClient.userPersonalReg(personRegisterVO.getAccount(), + JSONObject jsonObject = bestsignOpenApiClient.userPersonalReg(personRegisterVO.getAccount(), personRegisterVO.getName(), personRegisterVO.getMail(), personRegisterVO.getMobile(), personRegisterVO.getCredential().getIdentity(), personRegisterVO.getCredential().getIdentityType(), - null, null, null, null, null); - AjaxResult.success(s); + null, null, null, null, null, "/user/reg/"); + AjaxResult.success(jsonObject); + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error(e.getMessage()); + } + return AjaxResult.success(); + } + + /** + * 查询用户认证状态/user/async/applyCert/status/ + * + * @param personRegisterVO + */ + @Override + public AjaxResult queryRegisterStatus(PersonRegisterVO personRegisterVO) { + try { + JSONObject jsonObject = bestsignOpenApiClient.userPersonalReg(personRegisterVO.getAccount(), + personRegisterVO.getName(), + personRegisterVO.getMail(), + personRegisterVO.getMobile(), + personRegisterVO.getCredential().getIdentity(), + personRegisterVO.getCredential().getIdentityType(), + null, null, null, null, null, "/user/async/applyCert/status/"); + AjaxResult.success(jsonObject); } catch (Exception e) { e.printStackTrace(); return AjaxResult.error(e.getMessage()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/bestsign/utils/BestsignOpenApiClient.java b/ruoyi-system/src/main/java/com/ruoyi/bestsign/utils/BestsignOpenApiClient.java index 7c09e67..708a40b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bestsign/utils/BestsignOpenApiClient.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bestsign/utils/BestsignOpenApiClient.java @@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import javax.validation.constraints.NotNull; import java.io.IOException; /** @@ -24,13 +25,16 @@ public class BestsignOpenApiClient { /** * 开发者私钥 */ - @Value("${ssq.privateKey}") - private String privateKey; +// @Value("${ssq.privateKey}") + private String privateKey="MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCiDRuz+dxqkWqHdov0hK+KEWLw/e8MQSqkZZ4c01Yr6cSmQiWyV8Xin0u5S/EA02FWxpjLi1nLriVtOBhZGsoryFmcJrwzSnQ5PORP/HhfcAWFE/Y+3qSQS1OiU7e5wbReCgEUvx4GHZuhdu8cOvq5DG9l33YFZrIEMBTmnf8eKT54STx0tjcKl7U6B6nsiThy3zVtpWXVv6H1HGmxC0KT4EQ388s/PFjrwmk+GFb3EpKCns/GQHf7QrtNz1ZOgCXfgQiQ+91/tcngzUH+zMCIxn5lS+ENAxVI6Ev3W9Y0QHtKwmO4ORVuAskJYzBB2xKI/gw8+PUXNziMAKXuoUAjAgMBAAECggEAd7yHw6vTGUrpE76cGsgPjEzcdoSqpLth7qbG9TWSblAEZXRqtiP0q0ZYhUl/gcSuH5gOPhdw+fZq4RCZrP0GdONMkvxsAtn4lnJPoGpD5wC2k2X0hO+tWJDP8xk4n6BozTNHKTUt0gb+f4eJlapep2xwwy0h30vKLR3504zafEV9j/2D8l5TFSv6rd3UVxUvrDKQ9mhfATEUlrTpjs0SfWupMkr4j7TuJJ8qSUSiEADe4hyUB6+LouDZCt8jV4aLojQBJKrQ6VPVdDFkHGsePu4tHtvcKsaOZJ0pjpJ7MT6D5ElD/sJjo0g/3qK5/FToVFVbrxtykVreK6mE5oSTQQKBgQDpEFSgH1d4N7NsZhviaCIUkB97hO0jpRbD7UZirzZ9ok96Fk+SmfhdmypDMoiaRHCNhQuu5dI9mg5RbUhz9mCZnAhzJRL+DmE4bhNvQmbtJA7KT6n/AdH2zy0mYulrcG17dQspvTr/5421PTEE2+FRoCbG6hBsSSUit9HLvAU13QKBgQCx/7ql+hbx+t0Yb02XckBHiA+MWrFLO4dMX9cKf3LldC0nhn0K9HOSoZmM0KcmXRnMo+/4t89xOJRl7JRXwcLoy/64OaUBVv+8FFV1yY4THka3nEnQE40vVWy+vuNJtt+eKlEhJ35N1GIHXo7/4j0POtEuNU7KSqMnLUD+Oy/t/wKBgEiajcJUASuyLnLWXFlrlzJQs34HKtiv1Se0Avk7G/6HUbr2uFMzI+wFKmVEmMl2CJoNmFYjwhruowc6xBdb6TvxH7C/G+uJD0BFCkjeprG5SeI8bvjB2GbKo4YRyiVuIK0VCSU3jemqeLq9FUguN0L2YR4WTIdvQeJO4UxWhkkBAoGBAJk7TxDHZK1XirIYTzGK928c4FWxVWMwkd7buqGc6epBwwV9r3OY0U1vtGIW1W4fQ7B5iIISqpALZyT/Lw0FDqedxWAOr8+hd3IQBynpI1et/q7d6mUoD6ip332tkrjIp2TfhQwHlaGmreUuL+h0eJ/9wEoJNhTLf/yf5o11omM9AoGBAOLVlXR9FbU2Ubpp3HwTumSzKDWzq3T5eQcqC1zE3BPOo29uAf9BQTumPxe51U64egttW/nif5FH4v4Gentmxb2B2ckdOs/u9zIWz3JPfHU7RqMyMokuWrQ6lMoiSYpH3MSHoavLyAEhAnpceX3oktXgpYHO9d8MfON3XKJl23ip"; /** * Host地址 */ @Value("${ssq.serverHost}") private String serverHost; + /** + * 签名参数 + */ private static String urlSignParams = "?developerId=%s&rtick=%s&signType=rsa&sign=%s"; // public BestsignOpenApiClient(String developerId, String privateKey, @@ -55,35 +59,37 @@ public class BestsignOpenApiClient { * @param province 省份 * @param city 城市 * @param address 地址 + * @param method 地址 * @return 异步申请任务单号 * @throws IOException */ - public String userPersonalReg(String account, String name, String mail, + public JSONObject userPersonalReg(String account, String name, String mail, String mobile, String identity, String identityType, String contactMail, String contactMobile, String province, - String city, String address) throws Exception { - String host = this.serverHost; - String method = "/user/reg/"; - - // 组装请求参数,作为requestbody + String city, String address,@NotNull String method) throws Exception { + //body参数 JSONObject requestBody = new JSONObject(); - requestBody.put("account", account); - requestBody.put("name", name); - requestBody.put("userType", "1"); - requestBody.put("mail", mail); - requestBody.put("mobile", mobile); + //用户帐号 + requestBody.put("account", account); + //用户名称 + requestBody.put("name", name); + //用户类型 + requestBody.put("userType", "1"); + //用户邮箱 + requestBody.put("mail",mail); + //用户手机号 + requestBody.put("mobile", mobile); + //用户证件信息对象 JSONObject credential = new JSONObject(); + //用户证件号 credential.put("identity", identity); + //用户证件类型 credential.put("identityType", identityType); - credential.put("contactMail", contactMail); - credential.put("contactMobile", contactMobile); - credential.put("province", province); - credential.put("city", city); - credential.put("address", address); requestBody.put("credential", credential); + //是否申请证书 - requestBody.put("applyCert", "2"); + requestBody.put("applyCert", "1"); // 生成一个时间戳参数 String rtick = RSAUtils.getRtick(); // 计算参数签名 @@ -100,20 +106,24 @@ public class BestsignOpenApiClient { System.out.println(responseBody); // 返回结果解析 JSONObject userObj = JSON.parseObject(responseBody); + System.out.println(JSON.toJSONString(userObj)); + return userObj; // 返回errno为0,表示成功,其他表示失败 - if (userObj.getIntValue("errno") == 0) { - JSONObject data = userObj.getJSONObject("data"); - if (data != null) { - //对返回data进行处理 - String taskId = data.getString("taskId"); - return taskId; - } - } else { - //接口返回异常 - System.out.println(userObj.getIntValue("errno")); - System.out.println(userObj.getString("errmsg")); - } - return userObj.toJSONString(); +// if (userObj.getIntValue("errno") == 0) { +// JSONObject data = userObj.getJSONObject("data"); +// if (data != null) { +// //对返回data进行处理 +// String taskId = data.getString("taskId"); +// return taskId; +// } +// return null; +// } else { +// //接口返回异常 +// System.out.println(userObj.getIntValue("errno")); +// System.out.println(userObj.getString("errmsg")); +// throw new Exception(userObj.getIntValue("errno") + ":" +// + userObj.getString("errmsg")); +// } } /** -- 2.54.0 From f291935cc36db3f74ff1ee1dfc55308c953c6d96 Mon Sep 17 00:00:00 2001 From: gy b Date: Thu, 5 Oct 2023 20:36:22 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bestsign/utils/BestsignOpenApiClient.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/bestsign/utils/BestsignOpenApiClient.java b/ruoyi-system/src/main/java/com/ruoyi/bestsign/utils/BestsignOpenApiClient.java index 09d0063..185b86b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/bestsign/utils/BestsignOpenApiClient.java +++ b/ruoyi-system/src/main/java/com/ruoyi/bestsign/utils/BestsignOpenApiClient.java @@ -25,8 +25,8 @@ public class BestsignOpenApiClient { /** * 开发者私钥 */ -// @Value("${ssq.privateKey}") - private String privateKey="MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCiDRuz+dxqkWqHdov0hK+KEWLw/e8MQSqkZZ4c01Yr6cSmQiWyV8Xin0u5S/EA02FWxpjLi1nLriVtOBhZGsoryFmcJrwzSnQ5PORP/HhfcAWFE/Y+3qSQS1OiU7e5wbReCgEUvx4GHZuhdu8cOvq5DG9l33YFZrIEMBTmnf8eKT54STx0tjcKl7U6B6nsiThy3zVtpWXVv6H1HGmxC0KT4EQ388s/PFjrwmk+GFb3EpKCns/GQHf7QrtNz1ZOgCXfgQiQ+91/tcngzUH+zMCIxn5lS+ENAxVI6Ev3W9Y0QHtKwmO4ORVuAskJYzBB2xKI/gw8+PUXNziMAKXuoUAjAgMBAAECggEAd7yHw6vTGUrpE76cGsgPjEzcdoSqpLth7qbG9TWSblAEZXRqtiP0q0ZYhUl/gcSuH5gOPhdw+fZq4RCZrP0GdONMkvxsAtn4lnJPoGpD5wC2k2X0hO+tWJDP8xk4n6BozTNHKTUt0gb+f4eJlapep2xwwy0h30vKLR3504zafEV9j/2D8l5TFSv6rd3UVxUvrDKQ9mhfATEUlrTpjs0SfWupMkr4j7TuJJ8qSUSiEADe4hyUB6+LouDZCt8jV4aLojQBJKrQ6VPVdDFkHGsePu4tHtvcKsaOZJ0pjpJ7MT6D5ElD/sJjo0g/3qK5/FToVFVbrxtykVreK6mE5oSTQQKBgQDpEFSgH1d4N7NsZhviaCIUkB97hO0jpRbD7UZirzZ9ok96Fk+SmfhdmypDMoiaRHCNhQuu5dI9mg5RbUhz9mCZnAhzJRL+DmE4bhNvQmbtJA7KT6n/AdH2zy0mYulrcG17dQspvTr/5421PTEE2+FRoCbG6hBsSSUit9HLvAU13QKBgQCx/7ql+hbx+t0Yb02XckBHiA+MWrFLO4dMX9cKf3LldC0nhn0K9HOSoZmM0KcmXRnMo+/4t89xOJRl7JRXwcLoy/64OaUBVv+8FFV1yY4THka3nEnQE40vVWy+vuNJtt+eKlEhJ35N1GIHXo7/4j0POtEuNU7KSqMnLUD+Oy/t/wKBgEiajcJUASuyLnLWXFlrlzJQs34HKtiv1Se0Avk7G/6HUbr2uFMzI+wFKmVEmMl2CJoNmFYjwhruowc6xBdb6TvxH7C/G+uJD0BFCkjeprG5SeI8bvjB2GbKo4YRyiVuIK0VCSU3jemqeLq9FUguN0L2YR4WTIdvQeJO4UxWhkkBAoGBAJk7TxDHZK1XirIYTzGK928c4FWxVWMwkd7buqGc6epBwwV9r3OY0U1vtGIW1W4fQ7B5iIISqpALZyT/Lw0FDqedxWAOr8+hd3IQBynpI1et/q7d6mUoD6ip332tkrjIp2TfhQwHlaGmreUuL+h0eJ/9wEoJNhTLf/yf5o11omM9AoGBAOLVlXR9FbU2Ubpp3HwTumSzKDWzq3T5eQcqC1zE3BPOo29uAf9BQTumPxe51U64egttW/nif5FH4v4Gentmxb2B2ckdOs/u9zIWz3JPfHU7RqMyMokuWrQ6lMoiSYpH3MSHoavLyAEhAnpceX3oktXgpYHO9d8MfON3XKJl23ip"; + @Value("${ssq.privateKey}") + private String privateKey; /** * Host地址 */ @@ -59,14 +59,14 @@ public class BestsignOpenApiClient { * @param province 省份 * @param city 城市 * @param address 地址 - * @param method 地址 + * @param method 地址 * @return 异步申请任务单号 * @throws IOException */ public JSONObject userPersonalReg(String account, String name, String mail, - String mobile, String identity, String identityType, - String contactMail, String contactMobile, String province, - String city, String address,@NotNull String method) throws Exception { + String mobile, String identity, String identityType, + String contactMail, String contactMobile, String province, + String city, String address, @NotNull String method) throws Exception { //body参数 JSONObject requestBody = new JSONObject(); @@ -77,7 +77,7 @@ public class BestsignOpenApiClient { //用户类型 requestBody.put("userType", "1"); //用户邮箱 - requestBody.put("mail",mail); + requestBody.put("mail", mail); //用户手机号 requestBody.put("mobile", mobile); //用户证件信息对象 @@ -127,8 +127,6 @@ public class BestsignOpenApiClient { } - - /** * GET方法示例 * 下载合同PDF文件 @@ -159,7 +157,7 @@ public class BestsignOpenApiClient { return responseBody; } - public String selectApplyStatus(String account, String taskId) throws Exception { + public String selectApplyStatus(String account, String taskId) throws Exception { String methodInvoke = "/user/async/applyCert/status/"; JSONObject requestParam = new JSONObject(); @@ -173,7 +171,7 @@ public class BestsignOpenApiClient { this.privateKey, this.serverHost, methodInvoke, timestamsParam, null, requestParam.toJSONString()); // 签名参数追加为url参数 - String fullUrlParams = String.format(this.urlSignParams, this.developerId, + String fullUrlParams = String.format(urlSignParams, this.developerId, timestamsParam, paramsSign); String responseResult = HttpClientSender.sendHttpPost(this.serverHost, methodInvoke, @@ -191,7 +189,7 @@ public class BestsignOpenApiClient { } } else { - log.error("查询申请状态异常:"+responseObj.toJSONString()); + log.error("查询申请状态异常:" + responseObj.toJSONString()); } return responseObj.toJSONString(); } -- 2.54.0