生成动态二维码

beta-enc
kk 2 years ago
parent a52e30f0b5
commit 33ac26d80d
  1. 39
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  2. 6
      jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java
  3. 3
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
  4. 3
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java
  5. 5
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
  6. 5
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
  7. 28
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java
  8. 5
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java

@ -1450,5 +1450,44 @@ public class InvoiceController {
}
/** 大象数电V6 */
/** 生成动态二维码接口 */
@ApiImplicitParams({
@ApiImplicitParam(name = "identity", value = "身份认证", dataType = "java.lang.Void", example = "1130", required = true),
@ApiImplicitParam(name = "order", value = "请求体", dataType = "java.lang.Void", required = true)})
@PostMapping({"/api/invoice/v1/generateDynamicCode/{identity}", "/api/invoice/v1/generateDynamicCode"})
public Object generateDynamicCode(HttpServletRequest request, String identity) throws Exception {
if (StringUtils.isEmpty(identity)) {
return AjaxResult.error(ErrorCode.EMPTY_IDENTITY);
}
Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity);
if (companyservice == null) {
return AjaxResult.error(ErrorCode.COMPANY_NOT_FOUND);
}
// 获得入口报文适配器
String requestAdapterKey = serviceManageService.getRequestAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceRequestService invoiceRequestService = invoiceRequestFactory.getService(requestAdapterKey);
JSONObject decryptResult = invoiceRequestService.decrypt(request, companyservice, "");
// 获得请求实例,并且进行扣费
String serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", companyservice.getCompanyid());
serviceManageService.companyConsume("invoice", companyservice.getCompanyid());
IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey);
HXResponse result = invoiceService.generateDynamicCode(decryptResult, companyservice);
String responseAdapterKey = serviceManageService.getResponseAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceResponseService invoiceResponseService = invoiceResponseFactory.getService(responseAdapterKey);
return invoiceResponseService.response(result, companyservice, "");
}
}

@ -56,6 +56,12 @@ public class ElephantConstantsV6 {
public static String REDINFO_FIND_LOCALHOST = "/invoice/api/v6/GetRedInvoiceApplication";
public static String REDINFO_FIND_METHOD = "GetRedInvoiceApplication";
// 生成动态二维码
public static String GEN_DYNAMIC_CODE_LOCALHOST = "/invoice/api/v6/GenerateDynamicCode";
public static String GEN_DYNAMIC_CODE_METHOD = "GenerateDynamicCode";
// 发票作废
public static String DEPRECATE_INVOICE = "order-api/order-api/V5/DeprecateInvoices";
public static String DEPRECATE_INVOICE_LOCALHOST = "/invoice/api/V5/DeprecateInvoices";

@ -279,4 +279,7 @@ public interface IInvoiceApiService {
* @return : java.lang.Object
*/
EleNewMessage findRedInfo(FindRedInfo findRedInfo, Companyservice companyservice);
/** 生成动态二维码接口*/
HXResponse generateDynamicCode(JSONObject decryptResult, Companyservice companyservice);
}

@ -102,7 +102,8 @@ public class AisinoInvoiceRequestAdapterImpl implements IInvoiceRequestService {
// 平台解密
try {
order = AisinoInvoiceDecryptUtil.decrypt(order, JKey);
// TODO: 2023/9/20 开发暂时关掉
// order = AisinoInvoiceDecryptUtil.decrypt(order, JKey);
} catch (Exception e) {
e.printStackTrace();
throw new JianshuiParamErrorException(ErrorCode.DECRYPT_ERROR, companyservice, "invoice");

@ -1024,4 +1024,9 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse generateDynamicCode(JSONObject decryptResult, Companyservice companyservice) {
return null;
}
}

@ -812,6 +812,11 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
}
@Override
public HXResponse generateDynamicCode(JSONObject decryptResult, Companyservice companyservice) {
return null;
}
/**
* 申请/上传 红字发票

@ -2,6 +2,7 @@ package com.jianshui.invoice.service.impl.api;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dxhy.order.protocol.invoke.DxhyInterfaceResponse;
import com.google.gson.Gson;
import com.jianshui.common.constant.Constants;
import com.jianshui.common.constant.WebServiceConstant;
import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.domain.entity.Companyservice;
import com.jianshui.common.enums.ErrorCode;
@ -19,6 +21,7 @@ import com.jianshui.common.utils.DateUtils;
import com.jianshui.common.utils.StringUtils;
import com.jianshui.common.utils.TimeUtil;
import com.jianshui.common.utils.http.HttpHelper;
import com.jianshui.common.utils.jcsk.ApiHttp;
import com.jianshui.common.utils.uuid.IdUtils;
import com.jianshui.framework.manager.AsyncManager;
import com.jianshui.invoice.constant.elephant.ElephantConstantsV6;
@ -43,6 +46,7 @@ import com.jianshui.queue.utils.RedisQueueUtil;
import com.jianshui.storage.domain.StorageUrlDTO;
import com.jianshui.storage.factory.StorageFactory;
import com.jianshui.storage.service.IStorageService;
import com.jianshui.system.domain.InvoiceAllApiLog;
import com.jianshui.system.mapper.CompanyserviceMapper;
import com.jianshui.system.service.ISysConfigService;
import lombok.extern.slf4j.Slf4j;
@ -806,6 +810,30 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
/**
* 生成动态二维码接口
* @param decryptResult
* @param companyservice
* @return
*/
@Override
public HXResponse generateDynamicCode(JSONObject decryptResult, Companyservice companyservice) {
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.GEN_DYNAMIC_CODE_LOCALHOST, ElephantConstantsV6.GEN_DYNAMIC_CODE_METHOD, JSONUtil.parse(decryptResult), companyservice);
} catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) {
log.error("【销项发票】【大象接口】【生成动态二维码】发票请求异常,请求报文{},销方信息{}", decryptResult, JSONObject.toJSONString(companyservice));
e.printStackTrace();
return new HXResponse("9999","系统异常!");
}
String data = dxhyInterfaceResponse.getData();
String code = dxhyInterfaceResponse.getCode();
return new HXResponse(code,data);
}

@ -1573,6 +1573,11 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse generateDynamicCode(JSONObject decryptResult, Companyservice companyservice) {
return null;
}
/**
* 简税和金财数科 发票类型互换
*

Loading…
Cancel
Save