实现机构认证功能

This commit is contained in:
qitz
2023-10-30 20:06:38 +08:00
parent 9e16fc1b1a
commit 0cda870fbd
13 changed files with 595 additions and 17 deletions
@@ -9,6 +9,7 @@ import com.ruoyi.common.exception.EsignDemoException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.EsignApplicaConfig;
import com.ruoyi.common.utils.EsignHttpHelper;
import com.ruoyi.wisdomarbitrate.domain.DeptIdentify;
import com.ruoyi.wisdomarbitrate.domain.SealSignRecord;
import java.util.Date;
@@ -19,8 +20,6 @@ public class SignAward {
private static String eSignHost= EsignApplicaConfig.EsignHost;
private static String eSignAppId= EsignApplicaConfig.EsignAppId;
private static String eSignAppSecret= EsignApplicaConfig.EsignAppSecret;
// public static String fileId = "95d0c307d91e4985bdb8874f6f84daa5";
public static String fileId = "a0c2ad21065f48ff8b872412c39d5d3a";
@@ -63,6 +62,35 @@ public class SignAward {
// System.out.println("签署长链接:" +shortusesealUrl);
// System.out.println("签署短链接:"+sealUrl);
//查询机构认证信息
// DeptIdentify deptIdentify = new DeptIdentify();
// deptIdentify.setDeptName("西安云美电子科技有限公司");
// EsignHttpResponse identifyInfo = getDeptIdentifyInfo(deptIdentify);
// JsonObject identifyInfoJsonObject = gson.fromJson(identifyInfo.getBody(), JsonObject.class);
// JsonObject identifyInfoData = identifyInfoJsonObject.getAsJsonObject("data");
// int realnameStatus = identifyInfoData.get("realnameStatus").getAsInt();
// String orgId = identifyInfoData.get("orgId").getAsString();
// System.out.println("机构认证状态:" +realnameStatus);
// System.out.println("机构id:" +orgId);
// EsignHttpResponse identifyInfo = deptIdentifySealList(orgId);
// JsonObject identifyInfoJsonObject = gson.fromJson(identifyInfo.getBody(), JsonObject.class);
// JsonObject identifyInfoData = identifyInfoJsonObject.getAsJsonObject("data");
// JsonArray sealArray = identifyInfoData.get("seals").getAsJsonArray();
// String sealNames = "";
// if(sealArray.size()>0){
// for (int i = 0; i < sealArray.size(); i++) {
// JsonObject sealObject = (JsonObject)sealArray.get(i);
// String sealName = sealObject.get("sealName").toString();
// String sealNamenew = sealName.substring(1,sealName.length()-1);
// sealNames += sealNamenew +",";
// }
// }
// System.out.println("机构印章名称:" +sealNames.substring(0,sealNames.length()-1));
//查询签署流程详情
// EsignHttpResponse signFlowDetail = signFlowDetail(sealSignRecord);
// JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
@@ -91,12 +119,7 @@ public class SignAward {
// System.out.println(signFlowDetailJsonObject);
String annexName = "/profile/upload/2023/10/26/1f6fe04f5f984e8ab5bbaf70dd47100a.docx";
String prefix = "/profile/upload/";
int startIndex = prefix.length();
String annexPath = "/home/ruoyi/uploadPath/upload/";
String annexPathnew = annexPath + annexName.substring(startIndex);
System.out.println(annexPathnew);
}
@@ -317,6 +340,69 @@ public class SignAward {
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
}
/**
* 获取机构认证链接
* @return
* @throws EsignDemoException
*/
public static EsignHttpResponse deptIdentifyUrl(DeptIdentify deptIdentify) throws EsignDemoException {
String apiaddr = "/v3/org-auth-url";
String nickName = deptIdentify.getNickName();
String phonenumber = deptIdentify.getPhonenumber();
String deptName = deptIdentify.getDeptName();
String jsonParm = "{\n" +
" \"orgAuthConfig\": {\n" +
" \"orgName\": \"" + deptName + "\",\n" +
" \"transactorInfo\": {\n" +
" \"psnAccount\": \"" + phonenumber + "\",\n" +
" \"psnInfo\": {\n" +
" \"psnName\": \"" + nickName + "\",\n" +
" \"psnMobile\": \"" + phonenumber + "\"\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
//请求方法
EsignRequestType requestType = EsignRequestType.POST;
//生成请求签名鉴权方式的Header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
}
/**
* 查询企业认证状态
*/
public static EsignHttpResponse getDeptIdentifyInfo(DeptIdentify deptIdentify) throws EsignDemoException {
String apiaddr="/v3/organizations/identity-info?orgName="+deptIdentify.getDeptName();
String jsonParm="{}";
//请求方法
EsignRequestType requestType= EsignRequestType.GET;
//生成签名鉴权方式的的header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
}
/**
* 查询企业认证印章信息
*/
public static EsignHttpResponse deptIdentifySealList(String orgId) throws EsignDemoException {
int pageNum=1;
int pageSize=10;
String apiaddr="/v3/seals/org-own-seal-list?orgId="+orgId+"&pageNum="+pageNum+"&pageSize="+pageSize;
String jsonParm=null;
//请求方法
EsignRequestType requestType= EsignRequestType.GET;
//生成签名鉴权方式的的header
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
//发起接口请求
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
}
/**
* 获取文件签名印章位置
* @return