重汽回调处理

beta
kk 2 years ago
parent 516b25f5da
commit 0d3689d753
  1. 12
      jianshui-admin/pom.xml
  2. 6
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  3. 30
      jianshui-admin/src/main/test/java/BackTest.java
  4. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/constant/aisino/console/AisinoConsoleConstants.java
  5. 31
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/InvoiceBack.java
  6. 6
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/aisino/console/AisinoConsoleInvoiceRedDownloadDTO.java
  7. 49
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailItemVO.java
  8. 18
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailVO.java
  9. 90
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcVO.java
  10. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java
  11. 113
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java
  12. 10
      jianshui-invoice/src/main/java/com/jianshui/invoice/task/InvoiceBackTask.java
  13. 39
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/aisino/console/AisinoConsoleUtil.java

@ -105,8 +105,16 @@
<groupId>com.jianshui</groupId>
<artifactId>jianshui-platform</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

@ -18,6 +18,7 @@ import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.ele.EleOuterMessage;
import com.jianshui.invoice.domain.ele.FindRedInfoDTO;
import com.jianshui.invoice.domain.ele.HZSQDMessage;
import com.jianshui.invoice.task.InvoiceBackTask;
import com.jianshui.invoice.utils.elephant.ElephantUtils;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.invoice.domain.Redinfo;
@ -75,6 +76,7 @@ public class InvoiceController {
private InvoiceAddPService addService;
/**
* 功能描述: 红字查询接口
*
@ -260,6 +262,10 @@ public class InvoiceController {
@ApiImplicitParam(name = "order", value = "请求体", dataType = "java.lang.Void", required = true)})
@PostMapping({"/api/invoice/v1/query", "/api/invoice/v1/query/{identity}", "/invoice/queryInvoice"})
public Object queryInvoice(HttpServletRequest request, String identity) throws Exception {
if (StringUtils.isEmpty(identity)) {
return AjaxResult.error(ErrorCode.EMPTY_IDENTITY);
}

@ -0,0 +1,30 @@
import com.jianshui.JianshuiApplication;
import com.jianshui.invoice.task.InvoiceBackTask;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
/**
* @author kk
* @date 2023年10月28日 11:13
* 重汽回调定时任务测试
*/
@RunWith(SpringJUnit4ClassRunner.class) // SpringJUnit支持,由此引入Spring-Test框架支持!
@SpringBootTest(classes = JianshuiApplication.class) // 指定我们SpringBoot工程的Application启动类
@WebAppConfiguration
@Slf4j
public class BackTest {
@Autowired
private InvoiceBackTask invoiceBackTask;
@Test
public void test(){
invoiceBackTask.bkParams("2");
}
}

@ -29,7 +29,7 @@ public class AisinoConsoleConstants {
public static final Integer INVOICE_INVOLID = 4;
/** 22.红字信息表上传*/
public static final Integer RED_UPLOAD = 0201;
public static final Integer RED_UPLOAD = 33;
/** 23.红字信息表下载*/
public static final Integer RED_DOWLOAD = 34;

@ -1,17 +1,20 @@
package com.jianshui.invoice.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jianshui.common.annotation.Excel;
import com.jianshui.common.core.domain.BaseEntity;
import net.logstash.logback.encoder.org.apache.commons.lang3.builder.ToStringBuilder;
import net.logstash.logback.encoder.org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* 开票接口回调对象 invoice_back
*
* @author jianshui
* @date 2023-10-26
*/
public class InvoiceBack extends BaseEntity
public class InvoiceBack
{
private static final long serialVersionUID = 1L;
@ -38,7 +41,18 @@ public class InvoiceBack extends BaseEntity
@Excel(name = "回调信息")
private String backMsg;
public void setId(String id)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public void setId(String id)
{
this.id = id;
}
@ -93,16 +107,5 @@ public class InvoiceBack extends BaseEntity
return backMsg;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("systemOrderno", getSystemOrderno())
.append("status", getStatus())
.append("backUrl", getBackUrl())
.append("identity", getIdentity())
.append("createTime", getCreateTime())
.append("backMsg", getBackMsg())
.toString();
}
}

@ -32,11 +32,11 @@ public class AisinoConsoleInvoiceRedDownloadDTO {
@ApiModelProperty(value = "逾期状态")
private String YQZT;
@Alias("billTimeBegin")
// @Alias("billTimeBegin")
@ApiModelProperty(value = "填开日期")
private String TKRQ_Q;
@Alias("billTimeEnd")
// @Alias("billTimeEnd")
@ApiModelProperty(value = "填开日期")
private String TKRQ_Z;
@ -46,7 +46,7 @@ public class AisinoConsoleInvoiceRedDownloadDTO {
@ApiModelProperty(value = "销方税号")
private String XFSH;
@Alias("billInfoNo")
// @Alias("billInfoNo")
@ApiModelProperty(value = "信息表编号")
private String XXBBH;

@ -0,0 +1,49 @@
package com.jianshui.invoice.domain.vo.api.aisino.console;
import lombok.Data;
/**
* @author kk
* @date 2023年10月27日 19:30
*/
@Data
public class DownloadJdcDetailItemVO {
// 商品名称
private String goodsName;
//计量单位
private String goodsUnit;
//单价
private String goodsPrice;
//税率
private String goodsTaxRate;
//规格型号
private String goodsGgxh;
//数量
private String goodsNum;
//金额
private String goodsJE;
//税额
private String goodsSE;
// 含税标志
private String hsbz;
// 商品编码
private String spbm;
//商品企业自编
private String qyspbm;
//是否使用优惠政策标识0:不使用,1:使用
private String syyhzcbz;
// 零税率标识
private String LSLBZ;
}

@ -0,0 +1,18 @@
package com.jianshui.invoice.domain.vo.api.aisino.console;
import lombok.Data;
import java.util.List;
/**
* @author kk
* @date 2023年10月27日 17:29
*/
@Data
public class DownloadJdcDetailVO {
private List<DownloadJdcDetailItemVO> GoodsMx;
}

@ -0,0 +1,90 @@
package com.jianshui.invoice.domain.vo.api.aisino.console;
import lombok.Data;
import java.util.List;
/**
* @author kk
* @date 2023年10月27日 16:24
*/
@Data
public class DownloadJdcVO {
// 24位申请单号(12位设备编号+12位时间)
private String ReqBillNo;
// 信息表编号
private String resBillNo;
// 信息表状态代码
private String statusDM;
// 信息表状态描述
private String statusMC;
// 信息表类型
private String billType;
// 对应蓝票代码
private String typeCode;
// 对应蓝票号码
private String invNo;
// 税种类别
private String szlb;
// 多税率标志
private String isMutiRate;
// 填开日期
private String date;
// 购方名称
private String buyerName;
// 购方税号
private String buyerTaxCode;
// 购方地址电话
private String buyerAdd;
// 购方银行账号
private String buyerBank;
// 销方名称
private String sellerName;
// 销方税号
private String sellTaxCode;
// 合计金额
private String amount;
// 税率
private String taxRate;
// 合计税额
private String tax;
// 申请说明
private String reqMemo;
// 商品编码版本号
private String spbmbbh;
// 含税税率标识
private String slbz;
// 异地代开
private String yddk;
// 代开比对标识
private String dkbdbs;
// 商品明细
private List<DownloadJdcDetailVO> RedInvReqBillMx;
}

@ -104,7 +104,7 @@ public class AisinoInvoiceRequestAdapterImpl implements IInvoiceRequestService {
try {
// TODO: 2023/9/20
// order = AisinoInvoiceDecryptUtil.decrypt(order, JKey);
order = AisinoInvoiceDecryptUtil.decrypt(order, JKey);
} catch (Exception e) {
e.printStackTrace();
throw new JianshuiParamErrorException(ErrorCode.DECRYPT_ERROR, companyservice, "invoice");

@ -1,10 +1,13 @@
package com.jianshui.invoice.service.impl.api;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.XmlUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
@ -30,6 +33,7 @@ import com.jianshui.invoice.domain.dto.api.aisino.console.vehicle.TaxEquipmentIn
import com.jianshui.invoice.domain.dto.api.aisino.console.vehicle.VehicleInvoiceExpBo;
import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.vo.api.aisino.console.AisinoConsoleInvoiceAddVO;
import com.jianshui.invoice.domain.vo.api.aisino.console.DownloadJdcVO;
import com.jianshui.invoice.mapper.*;
import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.utils.BillInfoUtils;
@ -45,6 +49,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.servlet.http.HttpServletRequest;
@ -266,10 +272,13 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
try {
// 控制台文档给的不对,反了
String jdcbz = aisinoConsoleInvoiceAddDTO.getJDCBZ() != null ? aisinoConsoleInvoiceAddDTO.getJDCBZ() : "";
log.info("机动车标志:{}",jdcbz);
if("1".equals(jdcbz)){
aisinoConsoleInvoiceAddDTO.setJDCBZ("2");
}else if("2".equals(jdcbz)){
aisinoConsoleInvoiceAddDTO.setJDCBZ("1");
}else {
aisinoConsoleInvoiceAddDTO.setJDCBZ("2");
}
//hutool的beancopy别名会与JSONUTIl冲突
@ -355,12 +364,14 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
queryInvoiceBack.setSystemOrderno(billInfo.getSystemOrderno());
List<InvoiceBack> invoiceBackList = invoiceBackMapper.selectInvoiceBackList(queryInvoiceBack);
if (CollectionUtils.isEmpty(invoiceBackList)) {
queryInvoiceBack.setId(IdUtils.randomUUID());
queryInvoiceBack.setIdentity(companyservice.getIdentity());
queryInvoiceBack.setBackUrl(callBackUrl);
queryInvoiceBack.setStatus("0");
queryInvoiceBack.setCreateTime(new Date());
queryInvoiceBack.setSystemOrderno(billInfo.getSystemOrderno());
queryInvoiceBack.setBackMsg("");
invoiceBackMapper.insertInvoiceBack(queryInvoiceBack);
} else {
queryInvoiceBack = invoiceBackList.get(0);
}
@ -370,7 +381,13 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
AsyncManager.me().execute(new TimerTask() {
@Override
public void run() {
callBackAisino(finalQueryInvoiceBack,callBackUrl, invoice.getId());
try {
Long c = Long.valueOf(RandomUtil.randomInt(3, 5));
Thread.sleep(c * 1000);
callBackAisino(finalQueryInvoiceBack,callBackUrl, invoice.getId());
} catch (InterruptedException e) {
}
}
});
@ -393,6 +410,8 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
*/
private void callBackAisino(InvoiceBack invoiceBack,String callBackUrl, Long id) {
// TODO: 2023/10/27 回调处理
if (id == null) {
log.info("【控制台】发票回调,id为空");
return;
@ -412,12 +431,12 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(result);
if(jsonObject != null){
String status = jsonObject.get("status") != null ? jsonObject.get("status").toString():"";
String message = jsonObject.get("message")!= null ? jsonObject.get("message").toString():"";
String status = jsonObject.get("Result") != null ? jsonObject.get("Result").toString():"";
String message = jsonObject.get("Message")!= null ? jsonObject.get("Message").toString():"";
if("0000".equals(status)){
invoiceBack.setStatus("1");
invoiceBack.setBackMsg("发票信息未查询到");
invoiceBack.setBackMsg(message);
invoiceBackMapper.updateInvoiceBack(invoiceBack);
}else if("9999".equals(status)){
invoiceBack.setStatus("3");
@ -796,7 +815,7 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
//发起请求
AjaxResult ajaxResult = null;
try {
ajaxResult = AisinoConsoleUtil.sendRequestXML(AisinoConsoleConstants.RED_UPLOAD, "129", param, companyservice);
ajaxResult = AisinoConsoleUtil.sendRequestXML(AisinoConsoleConstants.RED_UPLOAD, "0200", param, companyservice);
} catch (Exception e) {
log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice));
e.printStackTrace();
@ -846,60 +865,35 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
throw new JianshuiServiceException("金税盘编号未配置,请联系管理员!");
}
String goldenTaxDiskNo = companyserviceDetailList.get(0).getGoldenTaxDiskNo();
String fjh = companyserviceDetailList.get(0).getFjh();
// 组装报文
AisinoConsoleInvoiceRedDownloadDTO downloadDTO = BeanUtil.copyProperties(downloadRedInfoDTO, AisinoConsoleInvoiceRedDownloadDTO.class);
AisinoConsoleInvoiceRedDownloadDTO downloadDTO = BeanUtil.copyProperties(downloadRedInfoDTO,AisinoConsoleInvoiceRedDownloadDTO.class);
downloadDTO.setYQZT("N");
downloadDTO.setXXBFW("0");
downloadDTO.setPAGENO("1");
downloadDTO.setPAGESIZE("1000");
downloadDTO.setNSRSBH(companyservice.getSellertax());
downloadDTO.setSBBH(goldenTaxDiskNo);
downloadDTO.setKPJH(fjh);
downloadDTO.setXXBBH(downloadRedInfoDTO.getBillInfoNo());
downloadDTO.setTKRQ_Q(downloadRedInfoDTO.getBillTimeBegin());
downloadDTO.setTKRQ_Z(downloadRedInfoDTO.getBillTimeEnd());
String param = JSONUtil.toXmlStr(JSONUtil.parse(downloadDTO));
param = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
"<FPXT>\n" +
"<INPUT>\n" +
param = "" +
"<FPXT>" +
"<INPUT>" +
"" + param + "</INPUT>" +
"</FPXT>";
/*param = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
"<FPXT>\n" +
"<INPUT>\n" +
"<!--企业税号-->\n" +
" <NSRSBH>370103999999060</NSRSBH>\n" +
" <!--设备编号(必传)-->\n" +
" <SBBH>661027630342</SBBH>\n" +
" <!--开票机号(非必传)-->\n" +
" <KPJH>0</KPJH>\n" +
" <!--逾期状态:N非逾期;Y逾期(固定传N,没有逾期)-->\n" +
" <YQZT>N</YQZT>\n" +
" <!--填开日期(信息表申请日期)起,可空-->\n" +
" <TKRQ_Q>2019-04-01</TKRQ_Q>\n" +
" <!--填开日期(信息表申请日期)止,可空-->\n" +
" <TKRQ_Z>2019-05-01</TKRQ_Z>\n" +
" <!--购方税号,可空-->\n" +
" <GFSH></GFSH>\n" +
" <!--销方税号,可空-->\n" +
" <XFSH></XFSH>\n" +
" <!--信息表编号,查询条件,为空的时候信息表编号不作为查询条件-->\n" +
" <XXBBH></XXBBH>\n" +
" <!--信息表下载范围:0全部;1本企业申请;2其它企业申请(必填,只能0、1、2,不可以其他值)-->\n" +
" <XXBFW>0</XXBFW>\n" +
" <!--页号,从1开始,必传,否则会报错-->\n" +
" <PAGENO>1</PAGENO>\n" +
" <!--每页记录数,如果为空,则查询全部,且PAGENO值必须为1-->\n" +
" <PAGESIZE>1000</PAGESIZE></INPUT>\n" +
"</FPXT>";*/
//发起请求
AjaxResult ajaxResult = null;
try {
ajaxResult = AisinoConsoleUtil.sendRequestXML(AisinoConsoleConstants.RED_DOWLOAD, "0201", param, companyservice);
} catch (Exception e) {
log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice));
log.error("【销项发票】【总部控制台接口】【红字申请表下载】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice));
e.printStackTrace();
throw new JianshuiServiceException("系统异常!");
}
@ -913,16 +907,47 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
String retcode = resultJSON.get("retcode") != null ? resultJSON.get("retcode").toString() : "";
String retmsg = resultJSON.get("retmsg") != null ? resultJSON.get("retmsg").toString() : "";
if (!StringUtils.equals("0000", retcode)) {
// 返回结果处理
if (!StringUtils.equals("0", retcode)) {
return new HXResponse(retmsg);
}
// TODO: 2023/10/28 返回结果待解析。
/*if(sss.indexOf("<DATA>") != -1 && sss.indexOf("</DATA>") != -1){
System.out.println("存在");
String data = sss.substring(sss.indexOf("<DATA>") + 6,sss.indexOf("</DATA>"));
System.out.println(data);
if(StrUtil.isNotEmpty(data)){
Map<String,Object> map = new HashMap<>();
data = Base64.decodeStr(data,"GB2312");
if(data.indexOf("<DATA>") != -1 && data.indexOf("</DATA>") != -1){
String dataChild = data.substring(data.indexOf("<DATA>") + 6,data.indexOf("</DATA>"));
return null;
cn.hutool.json.JSONObject dataChildJson = JSONUtil.parseObj(dataChild);
String RedInvReqBill = dataChildJson.get("RedInvReqBill").toString();
cn.hutool.json.JSONArray jsonArray = JSONUtil.parseArray(RedInvReqBill);
List<DownloadJdcVO> downloadJdcVOList = BeanUtil.copyToList(jsonArray,DownloadJdcVO.class);
System.out.println(jsonArray);
}
System.out.println(map);
}
}*/
return new HXResponse("9999",retmsg);
}else{
return new HXResponse("9999",retmsg);
}
}
/**
* 作废结果查询
*/

@ -45,7 +45,7 @@ public class InvoiceBackTask
log.info("[重汽回调定时任务开始执行]---{}次",params);
QueryWrapper<InvoiceBack> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", "0").eq("status","2");
queryWrapper.eq("status", "0").or().eq("status","2");
List<InvoiceBack> invoiceBackList = invoiceBackMapper.selectList(queryWrapper);
for (InvoiceBack invoiceBack : invoiceBackList) {
@ -79,7 +79,7 @@ public class InvoiceBackTask
break;
}
Invoice invoice = invoiceMapper.selectBySystemOrderNo(null,id);
Invoice invoice = invoiceMapper.selectBySystemOrderNo(Long.valueOf(identity),id);
if (invoice == null) {
log.info("【控制台】发票信息未查询到,id={}", id);
invoiceBack.setStatus("3");
@ -94,12 +94,12 @@ public class InvoiceBackTask
log.info("【控制台】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
JSONObject jsonObject = JSONUtil.parseObj(result);
if(jsonObject != null){
String status = jsonObject.get("status") != null ? jsonObject.get("status").toString():"";
String message = jsonObject.get("message")!= null ? jsonObject.get("message").toString():"";
String status = jsonObject.get("Result") != null ? jsonObject.get("Result").toString():"";
String message = jsonObject.get("Message")!= null ? jsonObject.get("Message").toString():"";
if("0000".equals(status)){
invoiceBack.setStatus("1");
invoiceBack.setBackMsg("发票信息未查询到");
invoiceBack.setBackMsg(message);
invoiceBackMapper.updateInvoiceBack(invoiceBack);
}else if("9999".equals(status)){
invoiceBack.setStatus("3");

@ -200,15 +200,14 @@ public class AisinoConsoleUtil {
throw new JianshuiServiceException("未获取到企业信息,请联系管理员!");
}
//JSON明文BASE64加密,字符集GB2312,替换+为-
String param = Base64.encode(SIDParam,"GB2312").replace("+", "_");
String param = Base64.encode(SIDParam,"GB2312");
param = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
"<FPXT_COM_INPUT>\n" +
"<ID>"+paramId+"</ID>\n" +
"<DATA>"+param+"</DATA>\n" +
"</FPXT_COM_INPUT>\n";
param = "<?xml version=\"1.0\" encoding=\"GBK\"?>" +
"<FPXT_COM_INPUT>" +
"<ID>"+paramId+"</ID>" +
"<DATA>"+param+"</DATA>" +
"</FPXT_COM_INPUT>";
//获取请求地址
List<CompanyserviceDetail> companyserviceDetailList = companyservice.getCompanyserviceDetailList();
@ -220,12 +219,25 @@ public class AisinoConsoleUtil {
// param = "<?xml version=\"1.0\" encoding=\"GBK\"?><FPXT_COM_INPUT><ID>129</ID><DATA>PEZQWFQ_CiAgICA8SU5QVVQ_CiAgICAgICAgPFJlZEludlJlcUJpbGw_PHJlcW5zcnNiaD45MTEzMDkzMDY3ODUxMTU1WFk8L3JlcW5zcnNiaD48ZmpoPjEyMzwvZmpoPjxqc3BiaD42NjEwMjQ2NDMwNjg8L2pzcGJoPjxvdXRUcmFkZU9yZGVybm8_NjYxMDI0NjQzMDY4MjMwMjE4MTAzNTI0PC9vdXRUcmFkZU9yZGVybm8_PHJlZEluZm9UeXBlPjA8L3JlZEluZm9UeXBlPjxvcmlnaW5GcGRtPjM3MDAyMjIxMzA8L29yaWdpbkZwZG0_PG9yaWdpbkZwaG0_MTA0MDUxNzI8L29yaWdpbkZwaG0_PGJpbGxJbnB1dFRpbWU_MjAyMi0xMS0xMTwvYmlsbElucHV0VGltZT48dGF4VHlwZT4xPC90YXhUeXBlPjxtdWx0VGF4UmF0ZT4wPC9tdWx0VGF4UmF0ZT48RGF0ZT4yMDIyLTExLTExPC9EYXRlPjxidXllck5hbWU_utOxsdbQsaa3qMC8udy8/tbG1OzT0M/euavLvjwvYnV5ZXJOYW1lPjxidXllclRheG51bT45MTEzMDkzMDY3ODUxMTU1WFk8L2J1eWVyVGF4bnVtPjxzZWxsZXJOYW1lPrq90MWy4srUxvPStTwvc2VsbGVyTmFtZT48c2VsbGVyVGF4bnVtPjM3MDEwMzk5OTk5OTAzMDwvc2VsbGVyVGF4bnVtPjxBbW91bnQ_LTE5NTQ1MS4zMjwvQW1vdW50Pjx0YXhyYXRlPjAuMDM8L3RheHJhdGU_PHRheD4tMTI3MDQuMzQ8L3RheD48YXBwbHlSZW1hcms_MDAwMDAwMDEwMDwvYXBwbHlSZW1hcms_PGJtYmJoPjIzMjMyMzI8L2JtYmJoPjxTTEJaPjA8L1NMQlo_PFJlZEludlJlcUJpbGxNeD48R29vZHNNeD48Z29vZE5hbWU_xtXMvLDlUTIzNUI8L2dvb2ROYW1lPjxzcGVjPjQwKjIyMDAqTDwvc3BlYz48cHJpY2U_MzYxOS40NjkwMjY1NTwvcHJpY2U_PG51bT4tMjc8L251bT48dGF4ZnJlZWFtdD4tOTc3MjUuNjY8L3RheGZyZWVhbXQ_PHRheHJhdGU_MC4xMzwvdGF4cmF0ZT48dGF4Pi0xMjcwNC4zNDwvdGF4Pjx3aXRoVGF4RmxhZz5OPC93aXRoVGF4RmxhZz48c3BibT4xMDgwMjA3MDc8L3NwYm0_PHloemNicz4wPC95aHpjYnM_IDwvR29vZHNNeD4gICAgICAgICAgICA8L1JlZEludlJlcUJpbGxNeD4KICAgICAgICA8L1JlZEludlJlcUJpbGw_CiAgICA8L0lOUFVUPgo8L0ZQWFQ_</DATA></FPXT_COM_INPUT>";
JSONObject jsonObject = new JSONObject();
/* JSONObject jsonObject = new JSONObject();
jsonObject.put("param",param);
String aa = JSONUtil.toJsonStr(jsonObject);
String aa = JSONUtil.toJsonStr(jsonObject);*/
// sb控制台
String paramResult = "{'param':'" + param + "'}";
log.info("【总部控制台】实际发送报文:{}",Base64.encode(paramResult,"GB2312").replace("+", "_"));
// String requestUrl = clientIp + "?SID="+SID+"&SIDParam=" + Base64.encode(paramResult,"GB2312").replace("+", "_");
paramResult.replaceAll("\r|\n","");
// System.out.println("===="+paramResult);
// paramResult = "{'param':'<?xml version=\"1.0\" encoding=\"GBK\"?><FPXT_COM_INPUT><ID>0201</ID><DATA>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iR0JLIj8+PEZQWFQ+PElOUFVUPjxOU1JTQkg+MTEwMTAxMTU2NTcxNDQ3PC9OU1JTQkg+PFNCQkg+NjYxNTY1NzE0NDcxPC9TQkJIPjxLUEpIPjA8L0tQSkg+PFlRWlQ+TjwvWVFaVD48VEtSUV9RPjIwMTYtMTAtMDE8L1RLUlFfUT48VEtSUV9aPjIwMTYtMTEtMDE8L1RLUlFfWj48R0ZTSD5OPC9HRlNIPjxYRlNIPjwvWEZTSD48WFhCQkg+PC9YWEJCSD48WFhCRlc+MDwvWFhCRlc+PFBBR0VOTz4xPC9QQUdFTk8+PFBBR0VTSVpFPjEwPC9QQUdFU0laRT48L0lOUFVUPjwvRlBYVD4=</DATA></FPXT_COM_INPUT>'}";
// System.out.println("===="+paramResult);
// System.out.println("===="+Base64.encode(paramResult,"GB2312").replace("+", "_"));
String requestUrl = clientIp + "?SID="+SID+"&SIDParam=" + Base64.encode(paramResult,"GB2312").replace("+", "_");
log.info("【总部控制台】实际发送报文:{}",Base64.encode(aa,"GB2312").replace("+", "_"));
String requestUrl = clientIp + "?SID="+SID+"&SIDParam=" + Base64.encode(aa,"GB2312").replace("+", "_");
requestUrl = requestUrl.replaceAll("\r|\n","");
try {
@ -244,6 +256,11 @@ public class AisinoConsoleUtil {
throw new JianshuiServiceException("未获取到接口返回信息!");
}
String decodeResult = Base64.decodeStr(result.replace("_", "+"),"GB2312");
// result = "eydwYXJhbSc6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IkdCSyI/PjxGUFhUX0NPTV9JTlBVVD48SUQ_MDIwMTwvSUQ_PERBVEE_UEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVIwSkxJajgrUEVaUVdGUStQRWxPVUZWVVBqeE9VMUpUUWtnK01URXdNVEF4TVRVMk5UY3hORFEzUEM5T1UxSlRRa2crUEZOQ1FrZytOall4TlRZMU56RTBORGN4UEM5VFFrSklQanhMVUVwSVBqQThMMHRRU2tnK1BGbFJXbFErVGp3dldWRmFWRDQ4VkV0U1VWOVJQakl3TVRZdE1UQXRNREU4TDFSTFVsRmZVVDQ4VkV0U1VWOWFQakl3TVRZdE1URXRNREU4TDFSTFVsRmZXajQ4UjBaVFNENU9QQzlIUmxOSVBqeFlSbE5JUGp3dldFWlRTRDQ4V0ZoQ1FrZytQQzlZV0VKQ1NENDhXRmhDUmxjK01Ed3ZXRmhDUmxjK1BGQkJSMFZPVHo0eFBDOVFRVWRGVGs4K1BGQkJSMFZUU1ZwRlBqRXdQQzlRUVVkRlUwbGFSVDQ4TDBsT1VGVlVQand2UmxCWVZEND08L0RBVEE_PC9GUFhUX0NPTV9JTlBVVD4nfQ==";
// result = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iR0JLIj8+PEZQWFQ+PElOUFVUPjxOU1JTQkg+MTEwMTAxMTU2NTcxNDQ3PC9OU1JTQkg+PFNCQkg+NjYxNTY1NzE0NDcxPC9TQkJIPjxLUEpIPjA8L0tQSkg+PFlRWlQ+TjwvWVFaVD48VEtSUV9RPjIwMTYtMTAtMDE8L1RLUlFfUT48VEtSUV9aPjIwMTYtMTEtMDE8L1RLUlFfWj48R0ZTSD5OPC9HRlNIPjxYRlNIPjwvWEZTSD48WFhCQkg+PC9YWEJCSD48WFhCRlc+MDwvWFhCRlc+PFBBR0VOTz4xPC9QQUdFTk8+PFBBR0VTSVpFPjEwPC9QQUdFU0laRT48L0lOUFVUPjwvRlBYVD4=";
decodeResult = Base64.decodeStr(result.replace("_", "+"),"GB2312");
log.info("【总部控制台工具类】请求返回解密报文:" + decodeResult);
JSON resultJSON = JSONUtil.xmlToJson(decodeResult);

Loading…
Cancel
Save