jiangping
2024-03-04 c7a022c304c49fa91da1ebae458ccec3c484718a
server/service/src/main/java/com/doumee/service/business/third/SignService.java
@@ -83,11 +83,11 @@
    }
    public void initParams(){
        long ts=System.currentTimeMillis();
        long ts=System.currentTimeMillis()/1000;
        String nonce=DigestUtils.md5Hex(System.currentTimeMillis()+"");
        String sign=DigestUtils.sha256Hex("nonce"+nonce+"ts"+ts+"app_key"+APP_KEY+"app_secret"+APP_SECRET);
        bodyParams=new IdentityHashMap<>();
        bodyParams.put("ts",ts);
        bodyParams.put("ts",System.currentTimeMillis()/1000);
        bodyParams.put("app_key",APP_KEY);
        bodyParams.put("sign",sign);
        bodyParams.put("nonce",nonce);//这只只是为了生成一个随机值
@@ -125,6 +125,7 @@
     */
    public boolean organizationCreate (String fullname,String creditCode,String legalName,String email,String businessimgPath, String notifyUrl){
        try {
            initParams();
            File  businessimg =netFileToLoclFile(businessimgPath);
            if(businessimg == null || !businessimg.isFile() || !businessimg.exists()){
                return false;
@@ -166,10 +167,12 @@
     */
    public boolean organizationReApply(String fullname,String creditCode,String legalName,String email,String businessimgPath,String notifyUrl){
        try {
            File  businessimg = new File(new URI(businessimgPath));
            if(businessimg == null|| !businessimg.isFile() || !businessimg.exists()){
                return false ;
            }
            initParams();
            Map<String, Object>  params=bodyParams;
            String url=SERVICE_URL+"/v2/user/organizationReapply";
            params.put("name",fullname);
@@ -224,12 +227,13 @@
        return null;
    }
    /**
     * 查询企业签约状态 审批状态,0正在申请1通过2驳回
     * 查询企业签约状态 审核状态,0正在申请1通过2驳回
     * @param email
     * @return
     */
    public int  organizationAuditStatus (String email){
        try {
            initParams();
            Map<String, Object>  params=bodyParams;
            String url=SERVICE_URL+"/v2/user/organizationAuditStatus";
            params.put("emailOrMobile",email);
@@ -257,6 +261,7 @@
     */
    public String applySign(String name,String fileUrl,String fullname,String creditCoe,String email,String postionJson,String singId,String notifyUrl){
      try {
          initParams();
          String url=SERVICE_URL+"/v2/sign/applySign";
          Map<String, Object>  params=bodyParams;
          params.put("contractName",name); //合同名称
@@ -264,7 +269,8 @@
//          params.put("file",file);
          params.put("url",fileUrl);
          params.put("dealType",5); //指定合同文件签署方式 5 为部分自动签
          params.put("positionType",1); //指定通过表单域方式设置签字位置
//          params.put("positionType",2); //指定通过表单域方式设置签字位置
          params.put("positionType",0); //指定公章位置类型:0或null使用签字座标位置或不指定签字位置;1表单域定位(表单域如果上传为pdf时,需pdf自行定义好表单域,html及url及tmpl等需定义好input标签);2关键字定义
          params.put("fileType",1);
          params.put("needQifengSign",1);
          params.put("notifyUrl",notifyUrl);
@@ -275,13 +281,13 @@
          sReq.setIdentityCard(creditCoe);//营业执照号
          sReq.setEmail(email); //在君子签注册认证的邮箱
//        sReq.setChapteJson("[{\"page\":0,\"chaptes\":[{\"offsetX\":0.12,\"offsetY\":0.23}]},{\"page\":1,\"chaptes\":[{\"offsetX\":0.45,\"offsetY\":0.67}]}]");
//          sReq.setChapteJson(postionJson);
          sReq.setSearchKey(postionJson);
//          sReq.setChapteJson(postionJson);//表单域定位 对应positionType=1
//          sReq.setSearchKey(postionJson);//关键字 对应positionType=2
          sReq.setSignId(singId);
          sReq.setNoNeedVerify(1);
          signatories.add(sReq);
          params.put("signatories",signatories.toJSONString());
          System.out.println(signatories.toJSONString());
          System.out.println("================"+JSONObject.toJSONString(params));
          String str= HttpClientUtils.init().getPost(url,null,params,true);
          System.out.println(str);
          saveInterfaceLog(url,"【电子签】发起签约",JSONObject.toJSONString(params),str);
@@ -305,14 +311,14 @@
     * @param postionJson
     */
    public String applySignLocalFile(String name,String fullname,String file,String creditCoe,String email,String postionJson,String singId,String notifyUrl){
      try {
      try {    initParams();
          String url=SERVICE_URL+"/v2/sign/applySign";
          Map<String, Object>  params=bodyParams;
          params.put("contractName",name); //合同名称
          params.put("serverCa",1); //使用云证书
          params.put("file",new File(file));
          params.put("dealType",5); //指定合同文件签署方式 5 为部分自动签
          params.put("positionType",1); //指定通过表单域方式设置签字位置
          params.put("positionType",2); //指定通过表单域方式设置签字位置
          params.put("fileType",0);
          params.put("needQifengSign",1);
          params.put("notifyUrl",notifyUrl);
@@ -326,6 +332,7 @@
//          sReq.setChapteJson(postionJson);
          sReq.setSearchKey(postionJson);
          sReq.setSignId(singId);
          sReq.setSearchConvertExtend("{\"fixX\":-80,\"fixY\":-80}");
          sReq.setNoNeedVerify(1);
          signatories.add(sReq);
          params.put("signatories",signatories.toJSONString());
@@ -352,7 +359,7 @@
     * @param creditCode
     */
    public String signLink(String applyNo,String name,String creditCode) {
        try {
        try {    initParams();
            Map<String, Object> params = bodyParams;
            String url = SERVICE_URL + "/v2/sign/link";
            params.put("applyNo",applyNo); //发起合同签署接口返回的APL编号
@@ -375,9 +382,36 @@
     * 获取签署链接地址(返回文件地址,签署后才是文件地址,否则跳转到签署页面)
     * @param applyNo
     */
    public String  linkFileStatus(String applyNo) {
        try {    initParams();
            Map<String, Object> params = bodyParams;
            String url = SERVICE_URL + "/v2/sign/status";
            //构建请求参数
            params.put("applyNo",applyNo); //发起合同签署接口返回的APL编号
//            params.put("fullName",fullName); //签约人名称
//            params.put("identityCard",identityCard); //签约人证件号
//            params.put("identityType",12); //证件类型 1身份证, 2护照, 3台胞证, 4港澳居民来往内地通行证, 11营业执照, 12统一社会信用代码, 20子账号, 99其他
            String str= HttpClientUtils.init().getPost(url,null,params,true);
            System.out.println(str);
            saveInterfaceLog(url,"【电子签】签约状态查询",JSONObject.toJSONString(params),str);
            JSONObject json = JSONObject.parseObject(str);
            if(json!=null && json.getBoolean("success")){
                //0 :未签 1 :已签 2:拒签 3:已保全
                return  json.getString("data");
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return  null;
    }
    /**
     * 获取签署链接地址(返回文件地址,签署后才是文件地址,否则跳转到签署页面)
     * @param applyNo
     */
    public String  linkFile(String applyNo) {
        try {
        try {    initParams();
            Map<String, Object> params = bodyParams;
            String url = SERVICE_URL + "/v2/sign/linkFile";
            //构建请求参数
@@ -401,8 +435,8 @@
     */
    public String  uploadEntSign(String signName,String path,String email ) {
        try {
            File signImgFile = new File(new URI(path));
        try {    initParams();
            File signImgFile =netFileToLoclFile(path);
            Map<String, Object> params = bodyParams;
            String url = SERVICE_URL + "/v2/user/uploadEntSign";
            //构建请求参数
@@ -427,7 +461,7 @@
     */
    public boolean  deleteEntSign(String signId ) {
        try {
        try {    initParams();
            Map<String, Object> params = bodyParams;
            String url = SERVICE_URL + "/v2/user/deleteEntSign";
            //构建请求参数