| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085 |
- package com.ruoyi.wisdomarbitrate.utils;
-
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.google.gson.Gson;
- import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
- import com.ruoyi.common.enums.EsignRequestType;
- import com.ruoyi.common.exception.EsignDemoException;
- import com.ruoyi.common.utils.EsignApplicaConfig;
- import com.ruoyi.common.utils.EsignHttpHelper;
- import com.ruoyi.common.utils.SealUtil;
- import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
- import com.ruoyi.wisdomarbitrate.domain.dto.mscase.SealSignRecord;
- import com.ruoyi.wisdomarbitrate.domain.vo.base.StringIdsReq;
- import org.springframework.beans.factory.annotation.Value;
-
- import java.util.List;
- import java.util.Map;
-
- public class SignAward {
-
- private static String eSignHost = EsignApplicaConfig.EsignHost;
- private static String eSignAppId = EsignApplicaConfig.EsignAppId;
- private static String eSignAppSecret = EsignApplicaConfig.EsignAppSecret;
-
- @Value("${signSealCallbackConfig.url}")
- private static String signSealCallbackUrl;
-
-
- public static void main(String[] args) throws EsignDemoException {
- Gson gson = new Gson();
-
-
-
-
- /* 发起签署*/
- // EsignHttpResponse createByFile = createByFileMediation(sealSignRecord,sealIdList);
- // JsonObject createByFileJsonObject = gson.fromJson(createByFile.getBody(), JsonObject.class);
- // JsonObject createByFileData = createByFileJsonObject.getAsJsonObject("data");
- // String signFlowId = createByFileData.get("signFlowId").getAsString();
- // System.out.println("流程id:"+signFlowId);
-
-
-
-
- /* 获取文件签名印章位置*/
- // EsignHttpResponse positions = getPositionsMediation(sealSignRecord);
- // JsonObject positionsJsonObject = gson.fromJson(positions.getBody(), JsonObject.class);
- // JsonObject positionsData = positionsJsonObject.getAsJsonObject("data");
- // JsonArray keywordPositions = positionsData.get("keywordPositions").getAsJsonArray();
- // System.out.println("获取文件签名印章位置:" +keywordPositions.toString());
-
- // String signFlowId = "c9955453716344f9971d308abdc13464";
-
- //获取合同文件签名链接
- // EsignHttpResponse signUrl = signUrlMediation(sealSignRecord);
- // JsonObject signUrlJsonObject = gson.fromJson(signUrl.getBody(), JsonObject.class);
- // JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data");
- // String shortUrl = signUrlData.get("shortUrl").getAsString();
- // String url = signUrlData.get("url").getAsString();
- // System.out.println("签署短链接:" +shortUrl);
- // System.out.println("签署长链接:"+url);
-
-
-
- //获取合同文件用印链接
- // EsignHttpResponse usesealUrl = usesealUrl(sealSignRecord);
- // JsonObject usesealUrlJsonObject = gson.fromJson(usesealUrl.getBody(), JsonObject.class);
- // JsonObject usesealUrlData = usesealUrlJsonObject.getAsJsonObject("data");
- // String shortusesealUrl = usesealUrlData.get("shortUrl").getAsString();
- // String sealUrl = usesealUrlData.get("url").getAsString();
- // 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);
- // JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data");
- // JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray();
- // for (int i = 0; i < signersArray.size(); i++) {
- // JsonObject signerObject = (JsonObject)signersArray.get(i);
- // Integer psnsignStatus ;
- // Integer orgsignStatus ;
- // if(!(signerObject.get("psnSigner").toString()).equals("null")){
- // JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner");
- // if(psnSignerData!=null){
- // psnsignStatus = signerObject.get("signStatus").getAsInt();
- // sealSignRecord.setPsnsignStatus(psnsignStatus);
- // }
- // }
- // if(!(signerObject.get("orgSigner").toString()).equals("null")){
- // JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner");
- // if(orgSignerData!=null){
- // orgsignStatus = signerObject.get("signStatus").getAsInt();
- // sealSignRecord.setOrgsignStatus(orgsignStatus);
- // }
- //
- // }
- // }
-
- // System.out.println(signFlowDetailJsonObject);
- // DeptIdentify deptIdentify = new DeptIdentify();
- // deptIdentify.setAuthFlowId("OF-2b5883bf4508000c");
- // EsignHttpResponse deptIdentifyInfo = getDeptIdentifyInfo(deptIdentify);
- // System.out.println(deptIdentifyInfo);
-
- }
-
-
- /**
- * 查询签署流程详情
- *
- * @return
- */
- public static EsignHttpResponse signFlowDetail(SealSignRecord sealSignRecord) throws EsignDemoException {
- String signFlowId = sealSignRecord.getSignFlowid();
- String apiaddr = "/v3/sign-flow/" + signFlowId + "/detail";
- String jsonParm = null;
- //请求方法
- EsignRequestType requestType = EsignRequestType.GET;
- //生成签名鉴权方式的的header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
-
- /**
- * 发起签署
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse createByFile(SealSignRecord sealSignRecord ,List<String> sealIdList) throws EsignDemoException {
- String apiaddr = "/v3/sign-flow/create-by-file";
-
- String fileId = sealSignRecord.getFileid();
- String fileName = sealSignRecord.getFilename();
-
- String psnAccount = sealSignRecord.getPensonAccount();
- String psnName = sealSignRecord.getPensonName();
-
- String orgName = sealSignRecord.getOrgnizeName();
- String orgNamePsnAccount = sealSignRecord.getOrgnizeNamePsnAccount();
- String orgNamepsnName = sealSignRecord.getOrgnizeNamepsnName();
-
- String positionPagepsn = sealSignRecord.getPositionPagepsn();
- double positionXpsn = sealSignRecord.getPositionXpsn();
- double positionYpsn = sealSignRecord.getPositionYpsn();
-
- String positionPageorg = sealSignRecord.getPositionPageorg();
- double positionXorg = sealSignRecord.getPositionXorg();
- double positionYorg = sealSignRecord.getPositionYorg();
- String availableSealId = "209af82b-5f87-4e0a-b0d8-cc4923b6e652";
-
-
- String jsonParm = "{\n" +
- " \"docs\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"fileName\": \"" + fileName + "\"\n" +
- " }\n" +
- " ],\n" +
- " \"signFlowConfig\": {\n" +
- " \"signFlowTitle\": \"测试合同\",\n" +
- " \"autoStart\": true,\n" +
- " \"authConfig\": {\n" +
- " \"willingnessAuthModes\": [\n" +
- " \"CODE_SMS\"\n" +
- " ],\n" +
- " \"psnAvailableAuthModes\": [\n" +
- " \"PSN_MOBILE3\"\n" +
- " ],\n" +
- " \"orgAvailableAuthModes\": [\n" +
- " \"ORG_LEGALREP\"\n" +
- " ]\n" +
- " },\n" +
-
- " \"signConfig\": {\n" +
- " \"availableSignClientTypes\": \"1\"\n" +
- " },\n" +
-
- " \"autoFinish\": true\n" +
- " },\n" +
-
- " \"signers\": [\n" +
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccount + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnName + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsn + "\",\n" +
- " \"positionX\": " + positionXpsn + ",\n" +
- " \"positionY\": " + positionYpsn + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " },\n" +
-
- " {\n" +
- " \"orgSignerInfo\": {\n" +
- " \"orgName\": \"" + orgName + "\",\n" +
- " \"transactorInfo\": {\n" +
- " \"psnAccount\": \"" + orgNamePsnAccount + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + orgNamepsnName + "\"\n" +
- " }\n" +
- " }\n" +
- " },\n" +
-
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
-
- /* " \"availableSealIds\": [\n" +
- " \"" + availableSealId + "\"\n" +
- " ],\n" +*/
- // " \"availableSealIds\": " + new Gson().toJson(sealIdList) + ",\n" +
-
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPageorg + "\",\n" +
- " \"positionX\": " + positionXorg + ",\n" +
- " \"positionY\": " + positionYorg + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 1\n" +
- " }\n" +
-
- " ]\n" +
- "}";
-
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 发起带有用印签署
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse createByFileSeal(SealSignRecord sealSignRecord ,List<String> sealIdList) throws EsignDemoException {
- String apiaddr = "/v3/sign-flow/create-by-file";
-
- String fileId = sealSignRecord.getFileid();
- String fileName = sealSignRecord.getFilename();
-
- String psnAccount = sealSignRecord.getPensonAccount();
- String psnName = sealSignRecord.getPensonName();
-
- String psnAccountRes = sealSignRecord.getPensonAccountRes();
- String psnNameRes = sealSignRecord.getPensonNameRes();
-
- String psnAccountMedi = sealSignRecord.getPensonAccountMedi();
- String psnNameMedi = sealSignRecord.getPensonNameMedi();
-
- String orgName = sealSignRecord.getOrgnizeName();
- String orgNamePsnAccount = sealSignRecord.getOrgnizeNamePsnAccount();
- String orgNamepsnName = sealSignRecord.getOrgnizeNamepsnName();
-
- String positionPagepsn = sealSignRecord.getPositionPagepsn();
- double positionXpsn = sealSignRecord.getPositionXpsn();
- double positionYpsn = sealSignRecord.getPositionYpsn();
-
- String positionPagepsnRes = sealSignRecord.getPositionPagepsnRes();
- double positionXpsnRes = sealSignRecord.getPositionXpsnRes();
- double positionYpsnRes = sealSignRecord.getPositionYpsnRes();
-
- String positionPagepsnMedi = sealSignRecord.getPositionPagepsnMedi();
- double positionXpsnMedi = sealSignRecord.getPositionXpsnMedi();
- double positionYpsnMedi = sealSignRecord.getPositionYpsnMedi();
-
- String positionPageorg = sealSignRecord.getPositionPageorg();
- double positionXorg = sealSignRecord.getPositionXorg();
- double positionYorg = sealSignRecord.getPositionYorg();
- String availableSealId = "209af82b-5f87-4e0a-b0d8-cc4923b6e652";
-
-
- String jsonParm = "{\n" +
- " \"docs\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"fileName\": \"" + fileName + "\"\n" +
- " }\n" +
- " ],\n" +
- " \"signFlowConfig\": {\n" +
- " \"signFlowTitle\": \"测试合同\",\n" +
- " \"autoStart\": true,\n" +
- " \"authConfig\": {\n" +
- " \"willingnessAuthModes\": [\n" +
- " \"CODE_SMS\"\n" +
- " ],\n" +
- " \"psnAvailableAuthModes\": [\n" +
- " \"PSN_MOBILE3\"\n" +
- " ],\n" +
- " \"orgAvailableAuthModes\": [\n" +
- " \"ORG_LEGALREP\"\n" +
- " ]\n" +
- " },\n" +
-
- " \"signConfig\": {\n" +
- " \"availableSignClientTypes\": \"1\"\n" +
- " },\n" +
- // " \"notifyUrl\": \"" + signSealCallbackUrl + "\",\n" +
- " \"autoFinish\": true\n" +
- " },\n" +
-
- " \"signers\": [\n" +
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccount + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnName + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsn + "\",\n" +
- " \"positionX\": " + positionXpsn + ",\n" +
- " \"positionY\": " + positionYpsn + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " },\n" +
-
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccountRes + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnNameRes + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsnRes + "\",\n" +
- " \"positionX\": " + positionXpsnRes + ",\n" +
- " \"positionY\": " + positionYpsnRes + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " },\n" +
-
-
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccountMedi + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnNameMedi + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsnMedi + "\",\n" +
- " \"positionX\": " + positionXpsnMedi + ",\n" +
- " \"positionY\": " + positionYpsnMedi + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " },\n" +
-
- " {\n" +
- " \"orgSignerInfo\": {\n" +
- " \"orgName\": \"" + orgName + "\",\n" +
- " \"transactorInfo\": {\n" +
- " \"psnAccount\": \"" + orgNamePsnAccount + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + orgNamepsnName + "\"\n" +
- " }\n" +
- " }\n" +
- " },\n" +
-
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
-
- /* " \"availableSealIds\": [\n" +
- " \"" + availableSealId + "\"\n" +
- " ],\n" +*/
- // " \"availableSealIds\": " + new Gson().toJson(sealIdList) + ",\n" +
-
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPageorg + "\",\n" +
- " \"positionX\": " + positionXorg + ",\n" +
- " \"positionY\": " + positionYorg + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 1\n" +
- " }\n" +
-
- " ]\n" +
- "}";
-
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
- /**
- * 发起不带用印签署
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse createByFileMediation(SealSignRecord sealSignRecord) throws EsignDemoException {
- String apiaddr = "/v3/sign-flow/create-by-file";
-
- String fileId = sealSignRecord.getFileid();
- String fileName = sealSignRecord.getFilename();
-
- String psnAccount = sealSignRecord.getPensonAccount();
- String psnName = sealSignRecord.getPensonName();
-
- String psnAccountRes = sealSignRecord.getPensonAccountRes();
- String psnNameRes = sealSignRecord.getPensonNameRes();
-
- String psnAccountMedi = sealSignRecord.getPensonAccountMedi();
- String psnNameMedi = sealSignRecord.getPensonNameMedi();
-
-
- String positionPagepsn = sealSignRecord.getPositionPagepsn();
- double positionXpsn = sealSignRecord.getPositionXpsn();
- double positionYpsn = sealSignRecord.getPositionYpsn();
-
- String positionPagepsnRes = sealSignRecord.getPositionPagepsnRes();
- double positionXpsnRes = sealSignRecord.getPositionXpsnRes();
- double positionYpsnRes = sealSignRecord.getPositionYpsnRes();
-
- String positionPagepsnMedi = sealSignRecord.getPositionPagepsnMedi();
- double positionXpsnMedi = sealSignRecord.getPositionXpsnMedi();
- double positionYpsnMedi = sealSignRecord.getPositionYpsnMedi();
-
-
- String jsonParm = "{\n" +
- " \"docs\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"fileName\": \"" + fileName + "\"\n" +
- " }\n" +
- " ],\n" +
- " \"signFlowConfig\": {\n" +
- " \"signFlowTitle\": \"测试合同\",\n" +
- " \"autoStart\": true,\n" +
- " \"authConfig\": {\n" +
- " \"willingnessAuthModes\": [\n" +
- " \"CODE_SMS\"\n" +
- " ],\n" +
- " \"psnAvailableAuthModes\": [\n" +
- " \"PSN_MOBILE3\"\n" +
- " ],\n" +
- " \"orgAvailableAuthModes\": [\n" +
- " \"ORG_LEGALREP\"\n" +
- " ]\n" +
- " },\n" +
-
- " \"signConfig\": {\n" +
- " \"availableSignClientTypes\": \"1\"\n" +
- " },\n" +
- // " \"notifyUrl\": \"" + signSealCallbackUrl + "\",\n" +
- " \"autoFinish\": true\n" +
- " },\n" +
-
- " \"signers\": [\n" +
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccount + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnName + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsn + "\",\n" +
- " \"positionX\": " + positionXpsn + ",\n" +
- " \"positionY\": " + positionYpsn + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " },\n" +
-
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccountRes + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnNameRes + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsnRes + "\",\n" +
- " \"positionX\": " + positionXpsnRes + ",\n" +
- " \"positionY\": " + positionYpsnRes + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " },\n" +
-
-
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccountMedi + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnNameMedi + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsnMedi + "\",\n" +
- " \"positionX\": " + positionXpsnMedi + ",\n" +
- " \"positionY\": " + positionYpsnMedi + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " }\n" +
- " ]\n" +
- "}";
-
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 发起签署
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse createByFileReconci(SealSignRecord sealSignRecord ) throws EsignDemoException {
- String apiaddr = "/v3/sign-flow/create-by-file";
-
- String fileId = sealSignRecord.getFileid();
- String fileName = sealSignRecord.getFilename();
-
- String psnAccount = sealSignRecord.getPensonAccount();
- String psnName = sealSignRecord.getPensonName();
-
- String psnAccountRes = sealSignRecord.getPensonAccountRes();
- String psnNameRes = sealSignRecord.getPensonNameRes();
-
- String positionPagepsn = sealSignRecord.getPositionPagepsn();
- double positionXpsn = sealSignRecord.getPositionXpsn();
- double positionYpsn = sealSignRecord.getPositionYpsn();
-
- String positionPagepsnRes = sealSignRecord.getPositionPagepsnRes();
- double positionXpsnRes = sealSignRecord.getPositionXpsnRes();
- double positionYpsnRes = sealSignRecord.getPositionYpsnRes();
-
- String jsonParm = "{\n" +
- " \"docs\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"fileName\": \"" + fileName + "\"\n" +
- " }\n" +
- " ],\n" +
- " \"signFlowConfig\": {\n" +
- " \"signFlowTitle\": \"测试合同\",\n" +
- " \"autoStart\": true,\n" +
- " \"authConfig\": {\n" +
- " \"willingnessAuthModes\": [\n" +
- " \"CODE_SMS\"\n" +
- " ],\n" +
- " \"psnAvailableAuthModes\": [\n" +
- " \"PSN_MOBILE3\"\n" +
- " ],\n" +
- " \"orgAvailableAuthModes\": [\n" +
- " \"ORG_LEGALREP\"\n" +
- " ]\n" +
- " },\n" +
-
- " \"signConfig\": {\n" +
- " \"availableSignClientTypes\": \"1\"\n" +
- " },\n" +
-
- " \"autoFinish\": true\n" +
- " },\n" +
-
- " \"signers\": [\n" +
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccount + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnName + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsn + "\",\n" +
- " \"positionX\": " + positionXpsn + ",\n" +
- " \"positionY\": " + positionYpsn + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " },\n" +
-
- " {\n" +
- " \"psnSignerInfo\": {\n" +
- " \"psnAccount\": \"" + psnAccountRes + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnNameRes + "\"\n" +
- " }\n" +
- " },\n" +
- " \"signFields\": [\n" +
- " {\n" +
- " \"fileId\": \"" + fileId + "\",\n" +
- " \"normalSignFieldConfig\": {\n" +
- " \"autoSign\": false,\n" +
- " \"freeMode\": false,\n" +
- " \"movableSignField\": false,\n" +
- " \"signFieldPosition\": {\n" +
- " \"positionPage\": \"" + positionPagepsnRes + "\",\n" +
- " \"positionX\": " + positionXpsnRes + ",\n" +
- " \"positionY\": " + positionYpsnRes + "\n" +
- " },\n" +
- " \"signFieldStyle\": 1\n" +
- " },\n" +
- " \"signFieldType\": 0\n" +
- " }\n" +
- " ],\n" +
- " \"signerType\": 0\n" +
- " }\n" +
-
- " ]\n" +
- "}";
-
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 获取合同文件签名链接
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse signUrl(SealSignRecord sealSignRecord) throws EsignDemoException {
-
- String signFlowId = sealSignRecord.getSignFlowid();
- String psnAccount = sealSignRecord.getPensonAccount();
-
- String apiaddr = "/v3/sign-flow/" + signFlowId + "/sign-url";
- String jsonParm = "{\n" +
-
- " \"clientType\": \"PC\",\n" +
-
- " \"operator\": {\n" +
- " \"psnAccount\": \"" + psnAccount + "\"\n" +
- " }\n" +
- "}";
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 获取合同文件移动端签名链接
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse signUrlMediation(SealSignRecord sealSignRecord) throws EsignDemoException {
-
- String signFlowId = sealSignRecord.getSignFlowid();
- String psnAccount = sealSignRecord.getPensonAccount();
-
- String apiaddr = "/v3/sign-flow/" + signFlowId + "/sign-url";
- String jsonParm = "{\n" +
-
- " \"clientType\": \"H5\",\n" +
-
- " \"operator\": {\n" +
- " \"psnAccount\": \"" + psnAccount + "\"\n" +
- " }\n" +
- "}";
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 获取批量签页面链接
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse batchSignUrl(StringIdsReq idsReq) throws EsignDemoException {
-
- List<String> signFlowIds = idsReq.getIds();
- String psnAccount = idsReq.getPsnAccount();
- String apiaddr = "/v3/sign-flow/batch-sign-url";
- JSONObject paramObj = new JSONObject();
- paramObj.put("operatorId",idsReq.getPsnId());
- paramObj.put("signFlowIds",signFlowIds);
- paramObj.put("clientType","PC");
- String jsonParm = JSON.toJSONString(paramObj);
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
- /**
- * 根据手机号获取账户id
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse identityInfo(StringIdsReq idsReq) throws EsignDemoException {
-
- List<String> signFlowIds = idsReq.getIds();
- String psnAccount = idsReq.getPsnAccount();
- String apiaddr = "/v3/persons/identity-info?psnAccount=" +psnAccount;
-
- String jsonParm = "{}";
- //请求方法
- EsignRequestType requestType = EsignRequestType.GET;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
-
- /**
- * 获取合同文件用印链接
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse usesealUrl(SealSignRecord sealSignRecord) throws EsignDemoException {
- String signFlowId = sealSignRecord.getSignFlowid();
- String apiaddr = "/v3/sign-flow/" + signFlowId + "/sign-url";
-
- String psnAccount = sealSignRecord.getOrgnizeNamePsnAccount();
- String orgName = sealSignRecord.getOrgnizeName();
-
- String jsonParm = "{\n" +
- " \"operator\": {\n" +
-
- " \"psnAccount\": \"" + psnAccount + "\"\n" +
- " },\n" +
- " \"organization\": {\n" +
- " \"orgName\": \"" + orgName + "\"\n" +
-
- " }\n" +
- "}";
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 获取机构认证&授权页面链接
- *
- * @return
- */
- public static EsignHttpResponse deptIdentifyUrl(DeptIdentify deptIdentify) throws EsignDemoException {
- String apiaddr = "/v3/org-auth-url";
- String psnName = deptIdentify.getOperName();
- String phonenumber = deptIdentify.getOperPhone();
- String orgName = deptIdentify.getIdentifyName();
- String jsonParm = "{\n" +
- " \"orgAuthConfig\": {\n" +
- " \"orgName\": \"" + orgName + " \",\n" +
- " \"transactorInfo\": {\n" +
- " \"psnAccount\": \"" + phonenumber + "\",\n" +
- " \"psnInfo\": {\n" +
- " \"psnName\": \"" + psnName + "\",\n" +
- " \"psnMobile\": \"" + phonenumber + "\"\n" +
- " }\n" +
- " }\n" +
- " },\n" +
- " \"authorizeConfig\": {\n" +
- " \"authorizedScopes\": [\n" +
- " \"get_org_identity_info\",\n" +
- " \"get_psn_identity_info\",\n" +
- " \"org_initiate_sign\",\n" +
- " \"psn_initiate_sign\",\n" +
- " \"manage_org_resource\",\n" +
- " \"manage_psn_resource\",\n" +
- " \"use_org_order\"\n" +
- " ]\n" +
- " }\n" +
- "}";
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 查询企业认证状态
- */
- public static EsignHttpResponse getDeptIdentifyInfo(DeptIdentify deptIdentify) throws EsignDemoException {
- String apiaddr = "/v3/organizations/identity-info?orgName=" + deptIdentify.getIdentifyName();
-
- String jsonParm = "{}";
- //请求方法
- EsignRequestType requestType = EsignRequestType.GET;
- //生成签名鉴权方式的的header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
-
- /**
- * 查询企业内部印章
- */
- 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, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
-
- /**
- * 获取文件签名印章位置
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse getPositions(SealSignRecord sealSignRecord) throws EsignDemoException {
- String fileId = sealSignRecord.getFileid();
- String apiaddr = "/v3/files/" + fileId + "/keyword-positions";
- String jsonParm = "{\n" +
- " \"keywords\": [\n" +
- " \"调解员:\",\n" +
- " \"(调解委员会盖章)\"\n" +
- " ]\n" +
- "}";
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 获取文件签名印章位置
- *
- * @return
- * @throws EsignDemoException
- */
- public static EsignHttpResponse getPositionsMediation(SealSignRecord sealSignRecord) throws EsignDemoException {
- String fileId = sealSignRecord.getFileid();
- String apiaddr = "/v3/files/" + fileId + "/keyword-positions";
- String jsonParm = "{\n" +
- " \"keywords\": [\n" +
- " \"申请人(签字):\",\n" +
- " \"被申请人(签字):\",\n" +
- " \"调解员(签字):\",\n" +
- " \"调解机构(盖章):\"\n" +
- " ]\n" +
- "}";
- //请求方法
- EsignRequestType requestType = EsignRequestType.POST;
- //生成请求签名鉴权方式的Header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
- /**
- * 创建机构图片印章
- *
- * @return
- */
- public static EsignHttpResponse createOrgByImage(DeptIdentify deptIdentify,String sealName, String filePath) throws EsignDemoException {
- String apiaddr = "/v3/seals/org-seals/create-by-image";
- String orgId = deptIdentify.getOrgId();
- //上传印章图片
- //步骤一:获取印章图片上传地址fileUploadUrl
- EsignHttpResponse response1 = SealUtil.getFileUploadUrl(filePath);
- JSONObject jsonObject1 = JSONObject.parseObject(response1.getBody());
- String fileUploadUrl = jsonObject1.getJSONObject("data").getString("fileUploadUrl");
- //步骤二:将印章图片文件流上传到fileUploadUrl
- EsignHttpResponse response2 = SealUtil.fileStreamUpload(fileUploadUrl, filePath);
- JSONObject jsonObject2 = JSONObject.parseObject(response2.getBody());
- int errCode = jsonObject2.getIntValue("errCode");
- if (errCode == 0) { //业务码,0表示成功,非0表示异常。
- //获取步骤一里面的fileKey
- String sealImageFileKey = jsonObject1.getJSONObject("data").getString("fileKey");
-
- //请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
- String jsonParm = "{\n" +
- " \"orgId\": \"" + orgId + "\",\n" +
- " \"sealImageFileKey\": \"" + sealImageFileKey + "\",\n" +
- " \"sealName\": \"" + sealName + "\",\n" +
- " \"sealWidth\": 50,\n" +
- " \"sealHeight\": 50,\n" +
- " \"sealBizType\": \"COMMON\"\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);
- }
-
- return null;
- }
-
-
-
-
- /**
- * 查询指定印章详情(机构)
- */
-
- public static EsignHttpResponse getOrgSeal(String orgId, String sealId) throws EsignDemoException {
- String apiaddr = "/v3/seals/org-seal-info?orgId=" + orgId + "&sealId=" + sealId;
-
- //请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
- String jsonParm = null;
- //请求方法
- EsignRequestType requestType = EsignRequestType.GET;
- //生成签名鉴权方式的的header
- Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId, eSignAppSecret, jsonParm, requestType.name(), apiaddr, false);
- //发起接口请求
- return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, false);
- }
-
-
- }
|