1、企业登记及查询服务升级

2、申报密码校验服务升级
This commit is contained in:
钱涛 2024-06-24 16:23:32 +08:00
parent 3a17e8c833
commit fda10a06ae
6 changed files with 174 additions and 12 deletions

View File

@ -23,12 +23,22 @@ public class SzyhApiConstant {
/**
* 企业注册接口
*/
public static final String GET_REGISTER_INFO_URL = "gateway/iit/declare/getCompanyRegisterInfo";
// public static final String GET_REGISTER_INFO_URL = "gateway/iit/declare/getCompanyRegisterInfo";
public static final String GET_REGISTER_INFO_URL = "gateway/iit/service/getCompanyRegisterInfo";
/**
* 企业注册反馈接口
*/
public static final String GET_REGISTER_INFO_FEEDBACK_URL = "/gateway/iit/service/getCompanyRegisterInfoFeedback";
/**
* 校验密码接口
*/
public static final String CHECK_PASSWORD_URL = "gateway/iit/check/checkPassword";
// public static final String CHECK_PASSWORD_URL = "gateway/iit/check/checkPassword";
public static final String CHECK_PASSWORD_URL = "gateway/iit/service/check/checkPassword";
/**
* 校验密码反馈接口
*/
public static final String CHECK_PASSWORD_FEEDBACK_URL = "gateway/iit/service/check/getCheckPasswordFeedback";
/**
* 人员专项附加扣除信息查询

View File

@ -0,0 +1,31 @@
package com.engine.salary.entity.taxagent.response;
import lombok.Data;
/**
* 神州云合接口返回状态实体
* <p>Copyright: Copyright (c) 2023</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
public class GetRequestIdResponse {
/**
* 接口状态
*/
private SzyhResponseHead head;
/**
* 返回数据
*/
private Body body;
/**
* 神州云合接口返回状态实体类
**/
@Data
public static class Body {
String requestId;
}
}

View File

@ -10,6 +10,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.entity.taxagent.po.TaxAgentTaxReturnPO;
import com.engine.salary.entity.taxagent.response.CheckPasswordResponse;
import com.engine.salary.entity.taxagent.response.CompanyRegisterInfoResponse;
import com.engine.salary.entity.taxagent.response.GetRequestIdResponse;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO;
import com.engine.salary.enums.SalaryOnOffEnum;
import com.engine.salary.enums.taxagent.TaxAgentTaxReturnPasswordTypeEnum;
@ -21,8 +22,8 @@ import com.engine.salary.service.TaxAgentTaxReturnCheckService;
import com.engine.salary.service.TaxAgentTaxReturnService;
import com.engine.salary.service.TaxDeclarationApiConfigService;
import com.engine.salary.util.*;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@ -107,7 +108,7 @@ public abstract class AbstractTaxAgentTaxReturnCheckService extends Service impl
* @param saveParam
* @return
*/
protected CompanyRegisterInfoResponse getCompanyRegisterInfoResponse(TaxDeclarationApiConfigPO apiConfig, TaxAgentTaxReturnPO taxAgentTaxReturnPO, TaxAgentTaxReturnSaveParam saveParam) {
protected CompanyRegisterInfoResponse getCompanyRegisterInfo(TaxDeclarationApiConfigPO apiConfig, TaxAgentTaxReturnPO taxAgentTaxReturnPO, TaxAgentTaxReturnSaveParam saveParam) {
TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxAgentTaxReturnPO.getTaxAgentId());
if (taxAgentPO == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100545, "个税扣缴义务人不存在"));
@ -124,10 +125,35 @@ public abstract class AbstractTaxAgentTaxReturnCheckService extends Service impl
String reqJson = JsonUtil.toJsonString(requestParam);
Map<String, String> params = new HashMap<>(1);
Map<String, String> header = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret());
log.info("getCompanyRegisterInfo params = {}", reqJson);
String res = HttpUtil.doPost(url, header, reqJson, HttpUtil.JSON_TYPE);
log.info("getCompanyRegisterInfo === res : {}", res);
return JsonUtil.parseBean(res, CompanyRegisterInfoResponse.class);
log.info("getCompanyRegisterInfo1 === params:{} === res : {}", reqJson, res);
GetRequestIdResponse getRequestIdResponse = JsonUtil.parseBean(res, GetRequestIdResponse.class);
if (getRequestIdResponse == null || getRequestIdResponse.getHead() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(95828, "服务异常,请稍后重试"));
}
taxAgentTaxReturnPO.setCheckStatus(TaxAgentTaxReturnStatusEnum.NOT_COMMIT.getValue());
taxAgentTaxReturnPO.setUpdateTime(new Date());
// 如果税友返回错误信息
if (!SzyhApiConstant.SUCCESS_CODE.equals(getRequestIdResponse.getHead().getCode()) || getRequestIdResponse.getBody() == null) {
taxAgentTaxReturnPO.setCheckStatus(TaxAgentTaxReturnStatusEnum.FAIL.getValue());
taxAgentTaxReturnPO.setFailReason(getRequestIdResponse.getHead().getMsg());
return null;
}
try {
Thread.sleep(5 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
String requestId = getRequestIdResponse.getBody().getRequestId();
String getRegisterInfoFeedbackUrl = apiConfig.getHost() + SzyhApiConstant.GET_REGISTER_INFO_FEEDBACK_URL;
Map<String, String> feedbackHeader = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret());
Map<String, String> map = new HashMap<>(1);
map.put("requestId", requestId);
String companyRegisterInfoResponseRes = HttpUtil.getRequest(getRegisterInfoFeedbackUrl, feedbackHeader, map);
log.info("getCompanyRegisterInfo2 === requestId:{} === res : {}", requestId, companyRegisterInfoResponseRes);
return JsonUtil.parseBean(companyRegisterInfoResponseRes, CompanyRegisterInfoResponse.class);
}
private List<TaxAgentTaxReturnCheckFormDTO> buildCheckDTO(TaxAgentTaxReturnSaveParam saveParam, List<CompanyRegisterInfoResponse.CompanyRegisterInfo> registerInfos) {
@ -191,10 +217,35 @@ public abstract class AbstractTaxAgentTaxReturnCheckService extends Service impl
String reqJson = JsonUtil.toJsonString(requestParam);
Map<String, String> params = new HashMap<>(1);
Map<String, String> header = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret());
log.info("checkPassword === res : {}", reqJson);
String res = HttpUtil.doPost(url, header, reqJson, HttpUtil.JSON_TYPE);
log.info("checkPassword === res : {}", res);
return JsonUtil.parseObject(res, CheckPasswordResponse.class);
log.info("checkPassword1 === reqJson :{} === res : {}", reqJson, res);
GetRequestIdResponse response = JsonUtil.parseObject(res, GetRequestIdResponse.class);
if (response == null || response.getHead() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(95828, "服务异常,请稍后重试"));
}
taxAgentTaxReturnPO.setUpdateTime(new Date());
if (!SzyhApiConstant.SUCCESS_CODE.equals(response.getHead().getCode()) || response.getBody() == null) {
// 如果返回错误
taxAgentTaxReturnPO.setCheckStatus(TaxAgentTaxReturnStatusEnum.FAIL.getValue());
taxAgentTaxReturnPO.setFailReason(response.getHead().getMsg());
return null;
}
try {
Thread.sleep(5 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
String checkPasswordFeedbackUrl = apiConfig.getHost() + SzyhApiConstant.CHECK_PASSWORD_FEEDBACK_URL;
Map<String, String> feedbackHeader = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret());
Map<String, String> map = new HashMap<>(1);
String requestId = response.getBody().getRequestId();
map.put("requestId", requestId);
res = HttpUtil.getRequest(checkPasswordFeedbackUrl, feedbackHeader, map);
log.info("checkPassword2 === requestId :{} === res : {}", requestId, res);
return JsonUtil.parseBean(res, CheckPasswordResponse.class);
}
/**

View File

@ -46,7 +46,7 @@ public class TaxReturnCheckMainServiceImpl extends AbstractTaxAgentTaxReturnChec
log.error("保存异常", e);
}
// 调用神州云合API
CompanyRegisterInfoResponse response = getCompanyRegisterInfoResponse(apiConfig, po, saveParam);
CompanyRegisterInfoResponse response = getCompanyRegisterInfo(apiConfig, po, saveParam);
List<TaxAgentTaxReturnCheckFormDTO> checkFormDTOS = verifyCompanyRegisterInfoResponse(apiConfig, saveParam, po, response);
getTaxAgentTaxReturnMapper().updateIgnoreNull(po);
// 构建结果

View File

@ -30,7 +30,7 @@ public class TaxReturnCheckRegistrationServiceImpl extends AbstractTaxAgentTaxRe
TaxAgentTaxReturnPO po = getTaxAgentTaxReturnService(user).getByTaxAgentId(saveParam.getTaxAgentId());
// 调用神州云合API
TaxDeclarationApiConfigPO apiConfig = getTaxDeclarationApiConfigService(user).getConfig(true);
CompanyRegisterInfoResponse response = getCompanyRegisterInfoResponse(apiConfig, po, saveParam);
CompanyRegisterInfoResponse response = getCompanyRegisterInfo(apiConfig, po, saveParam);
List<TaxAgentTaxReturnCheckFormDTO> checkFormDTOS = verifyCompanyRegisterInfoResponse(apiConfig, saveParam, po, response);
po.setTaxRegistrationNumber(saveParam.getTaxRegistrationNumber());
getTaxAgentTaxReturnMapper().updateIgnoreNull(po);

70
test/FwjtDemo.java Normal file
View File

@ -0,0 +1,70 @@
import com.engine.salary.util.HttpUtil;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SingnatureData;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class FwjtDemo {
private static final String hostUrl = "https://uat-ddapi.bigfintax.com/";
private static final String appKey = "fwjt";
private static final String appSecret = "D22439F71F0D7BB17C46583837962E6F";
public static void main(String[] args) throws Exception {
//1.校验任务发起
//checkPassWord();
// 成功受理返回 {"head":{"msg":"成功","code":"00000000","description":"成功","time":"2024-06-21 11:42:31","status":"Y"},"body":{"requestId":"25d99665958148698e60b1de97e2d53d"}}
//2.校验任务查询结果
getCheckPassWord("25d99665958148698e60b1de97e2d53d");
// 失败场景如下 {"head":{"msg":"您输入的密码错误您还剩3次机会连续输错后密码将会锁定120分钟请谨慎使用","code":"010013","description":null,"time":"2024-06-21 11:35:15","status":"N"}}
// 成功场景如下 {"head":{"msg":"成功","code":"00000000","description":"成功","time":"2024-06-21 11:34:00","status":"Y"},"body":true}
}
/***
* 校验密码
* @return
* @throws Exception
*/
public static String checkPassWord() throws Exception {
String url = hostUrl + "gateway/iit/service/check/checkPassword";
Map<String, Object> requestParam = new HashMap<String, Object>();
requestParam.put("bizNo", UUID.randomUUID().toString().replace("-", ""));
requestParam.put("qymc", "测试0");
requestParam.put("mmlx", "0");
requestParam.put("djxhid", "10117110118941289705");
requestParam.put("nsrsbh", "91110118941289705K");
requestParam.put("sbmm", "Aa123456");
requestParam.put("mmlx", "0");
requestParam.put("areaid", "110105");
String reqJson = JsonUtil.toJsonString(requestParam);
Map<String, String> params = new HashMap<String, String>();
Map<String, String> header = SingnatureData.initHeader(params, appKey, appSecret);
String res = "";
try {
//res = HttpUtil.getRequest(url, header, params);
res = HttpUtil.doPost(url, header, reqJson, "application/json");
System.out.println(res);
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
public static String getCheckPassWord(String requestId) throws Exception {
String url = hostUrl + "gateway/iit/service/check/getCheckPasswordFeedback";
Map<String, String> params = new HashMap<String, String>();
params.put("requestId", requestId);
Map<String, String> header = SingnatureData.initHeader(params, appKey, appSecret);
String res = "";
try {
res = HttpUtil.getRequest(url, header, params);
System.out.println(res);
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
}