parent
3a17e8c833
commit
fda10a06ae
|
|
@ -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";
|
||||
|
||||
/**
|
||||
* 人员专项附加扣除信息查询
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
// 构建结果
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue