诺e票电子发票开放平台,上海航信模拟测试发票平台的开票方法封装JAVA。
-- 诺e票电子发票开放平台,上海航信模拟测试发票平台的开票方法封装JAVA。 --
封装之后的目录长这样。
公用的结构目录:
│ InvoiceElectronicsUtil.java 公用类入库
│
├─config 配置package
│ Constant.java
│ ConstantInvoice.java
│
├─dependency 依赖公用
│ ConvertInvoiceUtil.java
│ DES3.java
│ HttpConnection.java
│ Xml2JsonUtil.java
│
└─dto 传输实体
DownLoadPDFInvoice.java
InvoiceCommonDto.java
InvoiceDto.java
InvoiceHead.java
InvoiceItemArrDto.java
InvoiceItemDto.java
InvoiceOrder.java
InvoiceVueDto.java
ResponseDownload.java
ResponseInvoice.java
ResponseInvoiceCommon.java
Xml2JsonUtil.java
比如
public class Constant { /** * 执行成功 */ public static final String OK = "0000"; /** * 电票 */ public static final String INVOICE_MODEL_EZ = "ez"; /** * 纸票 */ public static final String INVOICE_MODEL_ZZ = "zz"; /** * 普票 */ public static final String INVOICE_PUPIAO = "pp"; /** * 专票 */ public static final String INVOICE_ZHIPIAO = "zp"; /** * token */ public static final String TOKEN_PAPER_STORE = ""; }
ConvertInvoiceUtil

public class ConvertInvoiceUtil { public static String getDeCode(String base64) { return Base64Decoder.decodeStr(base64); } }
Xml2JsonUtil

public class Xml2JsonUtil { public static String readFile(String path) throws Exception { File file = new File(path); FileInputStream fis = new FileInputStream(file); FileChannel fc = fis.getChannel(); ByteBuffer bb = ByteBuffer.allocate(new Long(file.length()).intValue()); //fc向buffer中读入数据 fc.read(bb); bb.flip(); String str = new String(bb.array(), "UTF8"); fc.close(); fis.close(); return str; } /** * xml转json * * @param xmlStr * @return * @throws DocumentException */ public static JSONObject xml2Json(String xmlStr) { Document doc = null; try { doc = DocumentHelper.parseText(xmlStr); } catch (DocumentException e) { e.printStackTrace(); } JSONObject json = new JSONObject(); dom4j2Json(doc.getRootElement(), json); return json; } /** * xml转json * * @param element * @param json */ public static void dom4j2Json(Element element, JSONObject json) { //如果是属性 for (Object o : element.attributes()) { Attribute attr = (Attribute) o; if (!isEmpty(attr.getValue())) { json.put("@" + attr.getName(), attr.getValue()); } } List<Element> chdEl = element.elements(); if (chdEl.isEmpty() && !isEmpty(element.getText())) {//如果没有子元素,只有一个值 json.put(element.getName(), element.getText()); } for (Element e : chdEl) {//有子元素 if (!e.elements().isEmpty()) {//子元素也有子元素 JSONObject chdjson = new JSONObject(); dom4j2Json(e, chdjson); Object o = json.get(e.getName()); if (o != null) { JSONArray jsona = null; if (o instanceof JSONObject) {//如果此元素已存在,则转为jsonArray JSONObject jsono = (JSONObject) o; json.remove(e.getName()); jsona = new JSONArray(); jsona.add(jsono); jsona.add(chdjson); } if (o instanceof JSONArray) { jsona = (JSONArray) o; jsona.add(chdjson); } json.put(e.getName(), jsona); } else { if (!chdjson.isEmpty()) { json.put(e.getName(), chdjson); } } } else {//子元素没有子元素 for (Object o : element.attributes()) { Attribute attr = (Attribute) o; if (!isEmpty(attr.getValue())) { json.put("@" + attr.getName(), attr.getValue()); } } if (!e.getText().isEmpty()) { json.put(e.getName(), e.getText()); } } } } public static boolean isEmpty(String str) { if (str == null || str.trim().isEmpty() || "null".equals(str)) { return true; } return false; } }
DTO
@Getter @Setter public class InvoiceHead { /** * 发票请求唯一流水号 */ private String FPQQLSH; /** * 平台编码 由诺e票电子发票平台提供,生产环境详见《交付表》 */ private String DSPTBM; /** * 开票方识别号 开票金税盘的销方纳税人识别号,由企业提供,测试环境由平台提供 */ private String NSRSBH; /** * 开票方名称 开票金税盘的销方纳税人全称,由企业提供,测试环境由平台提供 */ private String NSRMC; /** * 开票方电子档案号 */ private String NSRDZDAH; /** * 代开标志(0:自开,1:代开.默认为自开) */ private String DKBZ; /** * 主要开票项目(主要开票商品,或者第一条商品,取项目信息中第一条数据的项目名称(或传递大类例如:办公用品)) */ private String KPXM; /** * 编码表版本号 编码表版本号。该字段为税收分类编码版本号,最新版本号可关注上海爱信诺微信公众号的开票软件升级公告 */ private String BMB_BBH; /** * 销方识别号(开票金税盘的销方纳税人识别号,由企业提供,测试环境由平台提供) */ private String XHF_NSRSBH; /** * 销方名称(必填,纳税人名称) */ private String XHFMC; /** * 销方地址 */ private String XHF_DZ; /** * 销方电话 */ private String XHF_DH; /** * 购货方名称 */ private String GHFMC; /** * 购货方邮箱 */ private String GHF_EMAIL; /** * 购货方企业类型(01:企业 ,02:机关事业单位, 03:个人 ,04:其它) */ private String GHFQYLX; /** * 开票员 */ private String KPY; /** * 开票类型(1:正票,2:红票) */ private String KPLX; /** * 操作代码(10:正票正常开具,20:退货折让红票) */ private String CZDM; /** * 清单标志(默认为0(商品明细大于8行,平台自动生成清单)。) */ private String QD_BZ; /** * 价税合计金额(小数点后2位,以元为单位精确到分) */ private String KPHJJE; /** * 合计不含税金额。所有商品行不含税金额之和。 * 小数点后2位,以元为单位精确到分(单行商品金额之和)。平台处理价税分离,此值传0 */ private String HJBHSJE; /** * 合计税额。所有商品行税额之和。 * 小数点后2位,以元为单位精确到分(单行商品税额之和),平台处理价税分离,此值传0 */ private String HJSE; /** * 该字段为平台预留字段,不可用 */ private String BYZD1; /** * 51:电子发票 * 4:电子专票 */ private String FPLX; /** * 信息表编号 */ private String HZTZD; private String GHF_NSRSBH; private String GHF_DZ; private String GHF_YHZH; /** * 销货方银行账号 */ private String XHF_YHZH; /** * 备注 */ private String BZ; /** * @return */ @Override public String toString() { String res = "<FPKJXX_FPTXX class=\"FPKJXX_FPTXX\">\n" + " <FPQQLSH>" + getFPQQLSH() + "</FPQQLSH>\n" + " <DSPTBM>" + getDSPTBM() + "</DSPTBM>\n" + " <NSRSBH>" + getNSRSBH() + "</NSRSBH>\n" + " <NSRMC>" + getNSRMC() + "</NSRMC>\n" + " <FJH></FJH>\n" + " <NSRDZDAH>" + getNSRDZDAH() + "</NSRDZDAH>\n" + " <SWJG_DM></SWJG_DM>\n" + " <DKBZ>" + getDKBZ() + "</DKBZ>\n" + " <PYDM></PYDM>\n" + " <KPXM>" + getKPXM() + "</KPXM>\n" + " <BMB_BBH>" + getBMB_BBH() + "</BMB_BBH>\n" + " <XHF_NSRSBH>" + getXHF_NSRSBH() + "</XHF_NSRSBH>\n" + " <XHFMC>" + getXHFMC() + "</XHFMC>\n" + " <XHF_DZ>" + getXHF_DZ() + "</XHF_DZ>\n" + " <XHF_DH>" + getXHF_DH() + "</XHF_DH>\n" + " <XHF_YHZH>" + getXHF_YHZH() + "</XHF_YHZH>\n" + " <GHFMC>" + getGHFMC() + "</GHFMC>\n" + " <GHF_NSRSBH>" + getGHF_NSRSBH() + "</GHF_NSRSBH>\n" + " <GHF_SF></GHF_SF>\n" + " <GHF_DZ>" + getGHF_DZ() + "</GHF_DZ>\n" + " <GHF_GDDH></GHF_GDDH>\n" + " <GHF_SJ></GHF_SJ>\n" + " <GHF_EMAIL></GHF_EMAIL>\n" + " <GHFQYLX>" + getGHFQYLX() + "</GHFQYLX>\n" + " <GHF_YHZH>" + getGHF_YHZH() + "</GHF_YHZH>\n" + " <HY_DM></HY_DM>\n" + " <HY_MC></HY_MC>\n" + " <KPY>" + getKPY() + "</KPY>\n" + " <SKY>xxx</SKY>\n" + " <FHR>xx</FHR>\n" + " <KPRQ></KPRQ>\n" + " <KPLX>" + getKPLX() + "</KPLX>\n" + " <YFP_DM></YFP_DM>\n" + " <YFP_HM></YFP_HM>\n" + " <CZDM>" + getCZDM() + "</CZDM>\n" + " <QD_BZ>" + getQD_BZ() + "</QD_BZ>\n" + " <QDXMMC></QDXMMC>\n" + " <CHYY></CHYY>\n" + " <TSCHBZ></TSCHBZ>\n" + " <KPHJJE>" + getKPHJJE() + "</KPHJJE>\n" + " <HJBHSJE>" + getHJBHSJE() + "</HJBHSJE>\n" + " <HJSE>" + getHJSE() + "</HJSE>\n" + " <BZ>" + getBZ() + "</BZ>\n" + " <FPLX>" + getFPLX() + "</FPLX>\n" + " <HZTZD>" + getHZTZD() + "</HZTZD>\n" + " <BYZD1></BYZD1>\n" + " <BYZD2></BYZD2>\n" + " <BYZD3></BYZD3>\n" + " <BYZD4></BYZD4>\n" + " <BYZD5></BYZD5>\n" + " </FPKJXX_FPTXX>"; return res; } }
调用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public static void main(String[] args) { InvoiceVueDto invoiceVueDto = new InvoiceVueDto(); invoiceVueDto.setItemName(ConstantInvoice.ITEM_NAME); invoiceVueDto.setLx( "pp" ); invoiceVueDto.setZpHZTZD( "001" ); invoiceVueDto.setItemAmout( "1.6" ); invoiceVueDto.setMfName( "阿里巴巴(中国)网络技术有限公司" ); invoiceVueDto.setMfsbh( "91330100716105852F" ); invoiceVueDto.setMfTelAddress( "浙江省杭州市滨江区网商路699号/0571-85022088" ); invoiceVueDto.setMfBankNo( "中国银行深圳科苑路支行RMB xxxxx" ); invoiceVueDto.setSfBankNo( "中国银行深圳科苑路支行RMB xxx,中信银行深圳分行USD xxxxxxx" ); invoiceVueDto.setRemaker( "xxxxxxxx" ); ResponseInvoiceCommon res = createInvoice(invoiceVueDto); System. out .println(JSONUtil.toJsonStr(res)); try { Thread.sleep(1000 * 7); } catch (InterruptedException e) { e.printStackTrace(); } String seq = res.getSeq(); String order = res.getOrderNo(); DownLoadPDFInvoice responseDownload = downloadInvoice(seq, order); System. out .println(JSONUtil.toJsonStr(responseDownload)); } |
调用api的返回结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | "C:\Program Files\Java\jdk1.8.0_291\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1.3\lib\idea_rt.jar=54997:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\rt.jar;D:\chenfei\source\slowork\sync\target\classes;C:\Users\Admin\.m2\repository\e-iceblue\spire.pdf\3.8.5\spire.pdf-3.8.5.jar;C:\Users\Admin\.m2\repository\commons-beanutils\commons-beanutils\1.9.4\commons-beanutils-1.9.4.jar;C:\Users\Admin\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\Admin\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.3.8.RELEASE\spring-boot-starter-web-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter\2.3.8.RELEASE\spring-boot-starter-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.3.8.RELEASE\spring-boot-starter-logging-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Admin\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Admin\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;C:\Users\Admin\.m2\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;C:\Users\Admin\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.3.8.RELEASE\spring-boot-starter-json-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.3.8.RELEASE\spring-boot-starter-tomcat-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.41\tomcat-embed-core-9.0.41.jar;C:\Users\Admin\.m2\repository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;C:\Users\Admin\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.41\tomcat-embed-websocket-9.0.41.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-web\5.2.12.RELEASE\spring-web-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-webmvc\5.2.12.RELEASE\spring-webmvc-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-context\5.2.12.RELEASE\spring-context-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-expression\5.2.12.RELEASE\spring-expression-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\mysql\mysql-connector-java\8.0.22\mysql-connector-java-8.0.22.jar;C:\Users\Admin\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\Admin\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;C:\Users\Admin\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-core\5.2.12.RELEASE\spring-core-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-jcl\5.2.12.RELEASE\spring-jcl-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\Admin\.m2\repository\com\alibaba\fastjson\1.2.33\fastjson-1.2.33.jar;C:\Users\Admin\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.3.8.RELEASE\spring-boot-starter-aop-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-aop\5.2.12.RELEASE\spring-aop-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\org\aspectj\aspectjweaver\1.9.6\aspectjweaver-1.9.6.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-data-redis\2.3.8.RELEASE\spring-boot-starter-data-redis-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\data\spring-data-redis\2.3.6.RELEASE\spring-data-redis-2.3.6.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\data\spring-data-keyvalue\2.3.6.RELEASE\spring-data-keyvalue-2.3.6.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\data\spring-data-commons\2.3.6.RELEASE\spring-data-commons-2.3.6.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-oxm\5.2.12.RELEASE\spring-oxm-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\io\lettuce\lettuce-core\5.3.6.RELEASE\lettuce-core-5.3.6.RELEASE.jar;C:\Users\Admin\.m2\repository\io\projectreactor\reactor-core\3.3.13.RELEASE\reactor-core-3.3.13.RELEASE.jar;C:\Users\Admin\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Users\Admin\.m2\repository\com\alibaba\druid-spring-boot-starter\1.1.16\druid-spring-boot-starter-1.1.16.jar;C:\Users\Admin\.m2\repository\com\alibaba\druid\1.1.16\druid-1.1.16.jar;C:\Users\Admin\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.3.8.RELEASE\spring-boot-autoconfigure-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-jdbc\4.2.5.RELEASE\spring-jdbc-4.2.5.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-beans\5.2.12.RELEASE\spring-beans-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-tx\5.2.12.RELEASE\spring-tx-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.3.8.RELEASE\spring-boot-starter-jdbc-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\com\zaxxer\HikariCP\3.4.5\HikariCP-3.4.5.jar;C:\Users\Admin\.m2\repository\org\mybatis\mybatis-spring\1.3.0\mybatis-spring-1.3.0.jar;C:\Users\Admin\.m2\repository\org\mybatis\mybatis\3.4.1\mybatis-3.4.1.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-swagger-ui\2.6.1\springfox-swagger-ui-2.6.1.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-spring-web\2.6.1\springfox-spring-web-2.6.1.jar;C:\Users\Admin\.m2\repository\com\google\guava\guava\18.0\guava-18.0.jar;C:\Users\Admin\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\Admin\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-spi\2.6.1\springfox-spi-2.6.1.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-core\2.6.1\springfox-core-2.6.1.jar;C:\Users\Admin\.m2\repository\com\github\xiaoymin\knife4j-spring-boot-starter\2.0.6\knife4j-spring-boot-starter-2.0.6.jar;C:\Users\Admin\.m2\repository\com\github\xiaoymin\knife4j-spring-boot-autoconfigure\2.0.6\knife4j-spring-boot-autoconfigure-2.0.6.jar;C:\Users\Admin\.m2\repository\com\github\xiaoymin\knife4j-spring\2.0.6\knife4j-spring-2.0.6.jar;C:\Users\Admin\.m2\repository\com\github\xiaoymin\knife4j-annotations\2.0.6\knife4j-annotations-2.0.6.jar;C:\Users\Admin\.m2\repository\com\github\xiaoymin\knife4j-core\2.0.6\knife4j-core-2.0.6.jar;C:\Users\Admin\.m2\repository\org\javassist\javassist\3.25.0-GA\javassist-3.25.0-GA.jar;C:\Users\Admin\.m2\repository\io\swagger\swagger-models\1.5.22\swagger-models-1.5.22.jar;C:\Users\Admin\.m2\repository\io\swagger\swagger-annotations\1.5.22\swagger-annotations-1.5.22.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-swagger2\2.10.5\springfox-swagger2-2.10.5.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-schema\2.10.5\springfox-schema-2.10.5.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-swagger-common\2.10.5\springfox-swagger-common-2.10.5.jar;C:\Users\Admin\.m2\repository\org\mapstruct\mapstruct\1.3.1.Final\mapstruct-1.3.1.Final.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-bean-validators\2.10.5\springfox-bean-validators-2.10.5.jar;C:\Users\Admin\.m2\repository\io\springfox\springfox-spring-webmvc\2.10.5\springfox-spring-webmvc-2.10.5.jar;C:\Users\Admin\.m2\repository\com\github\xiaoymin\knife4j-spring-ui\2.0.6\knife4j-spring-ui-2.0.6.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\elasticsearch\5.6.2\elasticsearch-5.6.2.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-core\6.6.1\lucene-core-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-analyzers-common\6.6.1\lucene-analyzers-common-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-backward-codecs\6.6.1\lucene-backward-codecs-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-grouping\6.6.1\lucene-grouping-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-highlighter\6.6.1\lucene-highlighter-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-join\6.6.1\lucene-join-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-memory\6.6.1\lucene-memory-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-misc\6.6.1\lucene-misc-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-queries\6.6.1\lucene-queries-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-queryparser\6.6.1\lucene-queryparser-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-sandbox\6.6.1\lucene-sandbox-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-spatial\6.6.1\lucene-spatial-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-spatial-extras\6.6.1\lucene-spatial-extras-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-spatial3d\6.6.1\lucene-spatial3d-6.6.1.jar;C:\Users\Admin\.m2\repository\org\apache\lucene\lucene-suggest\6.6.1\lucene-suggest-6.6.1.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\securesm\1.1\securesm-1.1.jar;C:\Users\Admin\.m2\repository\net\sf\jopt-simple\jopt-simple\5.0.2\jopt-simple-5.0.2.jar;C:\Users\Admin\.m2\repository\com\carrotsearch\hppc\0.7.1\hppc-0.7.1.jar;C:\Users\Admin\.m2\repository\joda-time\joda-time\2.9.5\joda-time-2.9.5.jar;C:\Users\Admin\.m2\repository\org\yaml\snakeyaml\1.26\snakeyaml-1.26.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-smile\2.11.4\jackson-dataformat-smile-2.11.4.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.11.4\jackson-dataformat-yaml-2.11.4.jar;C:\Users\Admin\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-cbor\2.11.4\jackson-dataformat-cbor-2.11.4.jar;C:\Users\Admin\.m2\repository\com\tdunning\t-digest\3.0\t-digest-3.0.jar;C:\Users\Admin\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.9\HdrHistogram-2.1.9.jar;C:\Users\Admin\.m2\repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\jna\4.4.0-1\jna-4.4.0-1.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\client\transport\5.6.2\transport-5.6.2.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\plugin\transport-netty3-client\5.6.2\transport-netty3-client-5.6.2.jar;C:\Users\Admin\.m2\repository\io\netty\netty\3.10.6.Final\netty-3.10.6.Final.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\plugin\reindex-client\5.6.2\reindex-client-5.6.2.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\client\elasticsearch-rest-client\7.6.2\elasticsearch-rest-client-7.6.2.jar;C:\Users\Admin\.m2\repository\org\apache\httpcomponents\httpcore\4.4.14\httpcore-4.4.14.jar;C:\Users\Admin\.m2\repository\org\apache\httpcomponents\httpasyncclient\4.1.4\httpasyncclient-4.1.4.jar;C:\Users\Admin\.m2\repository\org\apache\httpcomponents\httpcore-nio\4.4.14\httpcore-nio-4.4.14.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\plugin\lang-mustache-client\5.6.2\lang-mustache-client-5.6.2.jar;C:\Users\Admin\.m2\repository\com\github\spullara\mustache\java\compiler\0.9.3\compiler-0.9.3.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\plugin\percolator-client\5.6.2\percolator-client-5.6.2.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\plugin\parent-join-client\5.6.2\parent-join-client-5.6.2.jar;C:\Users\Admin\.m2\repository\org\elasticsearch\plugin\transport-netty4-client\5.6.2\transport-netty4-client-5.6.2.jar;C:\Users\Admin\.m2\repository\io\netty\netty-buffer\4.1.58.Final\netty-buffer-4.1.58.Final.jar;C:\Users\Admin\.m2\repository\io\netty\netty-codec\4.1.58.Final\netty-codec-4.1.58.Final.jar;C:\Users\Admin\.m2\repository\io\netty\netty-codec-http\4.1.58.Final\netty-codec-http-4.1.58.Final.jar;C:\Users\Admin\.m2\repository\io\netty\netty-common\4.1.58.Final\netty-common-4.1.58.Final.jar;C:\Users\Admin\.m2\repository\io\netty\netty-handler\4.1.58.Final\netty-handler-4.1.58.Final.jar;C:\Users\Admin\.m2\repository\io\netty\netty-resolver\4.1.58.Final\netty-resolver-4.1.58.Final.jar;C:\Users\Admin\.m2\repository\io\netty\netty-transport\4.1.58.Final\netty-transport-4.1.58.Final.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-starter-mail\2.3.8.RELEASE\spring-boot-starter-mail-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\spring-context-support\5.2.12.RELEASE\spring-context-support-5.2.12.RELEASE.jar;C:\Users\Admin\.m2\repository\com\sun\mail\jakarta.mail\1.6.5\jakarta.mail-1.6.5.jar;C:\Users\Admin\.m2\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\Admin\.m2\repository\com\microsoft\sqlserver\mssql-jdbc\6.1.0.jre8\mssql-jdbc-6.1.0.jre8.jar;C:\Users\Admin\.m2\repository\com\microsoft\azure\azure-keyvault\0.9.3\azure-keyvault-0.9.3.jar;C:\Users\Admin\.m2\repository\com\microsoft\azure\azure-core\0.9.3\azure-core-0.9.3.jar;C:\Users\Admin\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\Admin\.m2\repository\javax\mail\mail\1.4.5\mail-1.4.5.jar;C:\Users\Admin\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\Admin\.m2\repository\com\sun\jersey\jersey-client\1.13\jersey-client-1.13.jar;C:\Users\Admin\.m2\repository\com\sun\jersey\jersey-core\1.13\jersey-core-1.13.jar;C:\Users\Admin\.m2\repository\com\sun\jersey\jersey-json\1.13\jersey-json-1.13.jar;C:\Users\Admin\.m2\repository\org\codehaus\jettison\jettison\1.1\jettison-1.1.jar;C:\Users\Admin\.m2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\Users\Admin\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\jaxb-impl-2.2.3-1.jar;C:\Users\Admin\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\Admin\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\Admin\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.2\jackson-core-asl-1.9.2.jar;C:\Users\Admin\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.2\jackson-mapper-asl-1.9.2.jar;C:\Users\Admin\.m2\repository\org\codehaus\jackson\jackson-jaxrs\1.9.2\jackson-jaxrs-1.9.2.jar;C:\Users\Admin\.m2\repository\org\codehaus\jackson\jackson-xc\1.9.2\jackson-xc-1.9.2.jar;C:\Users\Admin\.m2\repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\Admin\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar;C:\Users\Admin\.m2\repository\com\microsoft\azure\adal4j\1.0.0\adal4j-1.0.0.jar;C:\Users\Admin\.m2\repository\com\nimbusds\oauth2-oidc-sdk\7.1.1\oauth2-oidc-sdk-7.1.1.jar;C:\Users\Admin\.m2\repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;C:\Users\Admin\.m2\repository\com\nimbusds\content-type\2.0\content-type-2.0.jar;C:\Users\Admin\.m2\repository\com\nimbusds\lang-tag\1.4.4\lang-tag-1.4.4.jar;C:\Users\Admin\.m2\repository\com\nimbusds\nimbus-jose-jwt\8.19\nimbus-jose-jwt-8.19.jar;C:\Users\Admin\.m2\repository\com\sun\mail\javax.mail\1.6.1\javax.mail-1.6.1.jar;C:\Users\Admin\.m2\repository\com\google\code\gson\gson\2.8.6\gson-2.8.6.jar;C:\Users\Admin\.m2\repository\com\huaban\jieba-analysis\1.0.2\jieba-analysis-1.0.2.jar;C:\Users\Admin\.m2\repository\org\apache\commons\commons-lang3\3.10\commons-lang3-3.10.jar;C:\Users\Admin\.m2\repository\com\hankcs\hanlp\portable-1.7.6\hanlp-portable-1.7.6.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot-devtools\2.3.8.RELEASE\spring-boot-devtools-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\springframework\boot\spring-boot\2.3.8.RELEASE\spring-boot-2.3.8.RELEASE.jar;C:\Users\Admin\.m2\repository\org\projectlombok\lombok\1.18.16\lombok-1.18.16.jar;C:\Users\Admin\.m2\repository\javax\servlet\javax.servlet-api\3.1-b07\javax.servlet-api-3.1-b07.jar;C:\Users\Admin\.m2\repository\com\github\oshi\oshi-core\5.3.6\oshi-core-5.3.6.jar;C:\Users\Admin\.m2\repository\net\java\dev\jna\jna\5.6.0\jna-5.6.0.jar;C:\Users\Admin\.m2\repository\net\java\dev\jna\jna-platform\5.6.0\jna-platform-5.6.0.jar;C:\Users\Admin\.m2\repository\cn\hutool\hutool-all\5.3.4\hutool-all-5.3.4.jar;C:\Users\Admin\.m2\repository\org\apache\poi\poi-ooxml\4.1.2\poi-ooxml-4.1.2.jar;C:\Users\Admin\.m2\repository\org\apache\poi\poi\4.1.2\poi-4.1.2.jar;C:\Users\Admin\.m2\repository\commons-codec\commons-codec\1.14\commons-codec-1.14.jar;C:\Users\Admin\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\Admin\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\Admin\.m2\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;C:\Users\Admin\.m2\repository\org\apache\poi\poi-ooxml-schemas\4.1.2\poi-ooxml-schemas-4.1.2.jar;C:\Users\Admin\.m2\repository\org\apache\xmlbeans\xmlbeans\3.1.0\xmlbeans-3.1.0.jar;C:\Users\Admin\.m2\repository\org\apache\commons\commons-compress\1.19\commons-compress-1.19.jar;C:\Users\Admin\.m2\repository\com\github\virtuald\curvesapi\1.06\curvesapi-1.06.jar;C:\Users\Admin\.m2\repository\dom4j\dom4j\1.6\dom4j-1.6.jar;C:\Users\Admin\.m2\repository\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar;C:\Users\Admin\.m2\repository\org\jdom\jdom\1.1\jdom-1.1.jar;C:\Users\Admin\.m2\repository\org\apache\pdfbox\pdfbox\2.0.21\pdfbox-2.0.21.jar;C:\Users\Admin\.m2\repository\org\apache\pdfbox\fontbox\2.0.21\fontbox-2.0.21.jar;C:\Users\Admin\.m2\repository\org\apache\pdfbox\pdfbox-app\2.0.21\pdfbox-app-2.0.21.jar;C:\Users\Admin\.m2\repository\com\squareup\okhttp3\okhttp\3.10.0\okhttp-3.10.0.jar;C:\Users\Admin\.m2\repository\com\squareup\okio\okio\1.14.0\okio-1.14.0.jar" com.slo.plateform.util.invoice.InvoiceElectronicsUtil ---- unmix data <REQUEST_FPKJXX class = "REQUEST_FPKJXX" ><FPKJXX_FPTXX class = "FPKJXX_FPTXX" > <FPQQLSH>166c7e79c978415b9d3dc61c0e2482e7</FPQQLSH> <DSPTBM>P1000991</DSPTBM> <NSRSBH>913101010000000090</NSRSBH> <NSRMC>上海航信模拟测试</NSRMC> <FJH></FJH> <NSRDZDAH> null </NSRDZDAH> <SWJG_DM></SWJG_DM> <DKBZ>0</DKBZ> <PYDM></PYDM> <KPXM>*经纪代理服务*代理运费</KPXM> <BMB_BBH>12.0</BMB_BBH> <XHF_NSRSBH>913101010000000090</XHF_NSRSBH> <XHFMC>上海航信模拟测试</XHFMC> <XHF_DZ>深圳市龙岗区神州大厦</XHF_DZ> <XHF_DH>0755-86968888</XHF_DH> <XHF_YHZH>中国银行深圳科苑路支行RMB 12121212,中信银行深圳分行USD 12121212</XHF_YHZH> <GHFMC>阿里巴巴(中国)网络技术有限公司</GHFMC> <GHF_NSRSBH>91330100716105852F</GHF_NSRSBH> <GHF_SF></GHF_SF> <GHF_DZ>浙江省杭州市滨江区网商路699号/0571-85022088</GHF_DZ> <GHF_GDDH></GHF_GDDH> <GHF_SJ></GHF_SJ> <GHF_EMAIL></GHF_EMAIL> <GHFQYLX>01</GHFQYLX> <GHF_YHZH>中国银行深圳科苑路支行RMB 12121212</GHF_YHZH> <HY_DM></HY_DM> <HY_MC></HY_MC> <KPY>张开票</KPY> <SKY>张收款</SKY> <FHR>张复核</FHR> <KPRQ></KPRQ> <KPLX>1</KPLX> <YFP_DM></YFP_DM> <YFP_HM></YFP_HM> <CZDM>10</CZDM> <QD_BZ>0</QD_BZ> <QDXMMC></QDXMMC> <CHYY></CHYY> <TSCHBZ></TSCHBZ> <KPHJJE>1.6</KPHJJE> <HJBHSJE>0</HJBHSJE> <HJSE>0</HJSE> <BZ>HKST2105266150</BZ> <FPLX>51</FPLX> <HZTZD> null </HZTZD> <BYZD1></BYZD1> <BYZD2></BYZD2> <BYZD3></BYZD3> <BYZD4></BYZD4> <BYZD5></BYZD5> </FPKJXX_FPTXX><FPKJXX_XMXXS class = "FPKJXX_XMXX;" size= "1" > <FPKJXX_XMXX> <XMMC>*经纪代理服务*代理运费</XMMC> <XMDW>票</XMDW> <GGXH></GGXH> <XMSL>1</XMSL> <HSBZ>1</HSBZ> <FPHXZ>0</FPHXZ> <XMDJ>1.6</XMDJ> <SPBM>3040802010200000000</SPBM> <ZXBM></ZXBM> <YHZCBS>1</YHZCBS> <LSLBS>1</LSLBS> <ZZSTSGL>免税</ZZSTSGL> <KCE></KCE> <XMJE>1.6</XMJE> <SL>0</SL> <SE></SE> <BYZD1></BYZD1> <BYZD2></BYZD2> <BYZD3></BYZD3> <BYZD4></BYZD4> <BYZD5></BYZD5> </FPKJXX_XMXX> </FPKJXX_XMXXS><FPKJXX_DDXX class = "FPKJXX_DDXX" > <DDH>a7233f9dede748d7a897225882e41bed</DDH> <THDH/> <DDDATE/> </FPKJXX_DDXX></REQUEST_FPKJXX> ---- password 9oyKs7cVo1yYzkuisP9bhA== ---- des3 result: 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 ---- request data: <?xml version= "1.0" encoding= "utf-8" ?> < interface xmlns= "" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.chinatax.gov.cn/tirip/dataspec/interfaces.xsd" version= "DZFP1.0" > <globalInfo> <terminalCode>0</terminalCode> <appId>ZZS_PT_DZFP</appId> <version>1.0</version> <interfaceCode>ECXML.FPKJ.BC.E_INV</interfaceCode> <requestCode>P1000991</requestCode> <requestTime>2019-04-18 09:40:30</requestTime> <responseCode>121</responseCode> <dataExchangeId>P1000001ECXML.FPKJ.BC.E_INV20161128eXl4EymmJ </dataExchangeId> <userName>P1000991</userName> <passWord></passWord> <taxpayerId>913101010000000090</taxpayerId> <authorizationCode>NH873FG4KW</authorizationCode> </globalInfo> <returnStateInfo> <returnCode /> <returnMessage /> </returnStateInfo> <Data> <dataDescription> <zipCode>0</zipCode> <encryptCode>1</encryptCode> <codeType>3DES</codeType> </dataDescription> <content> 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 </content> </Data> </ interface > ---- responseInvoice ---- { "@version" : "WLFP1.0" , "globalInfo" :{ "requestTime" : "2019-04-18 09:40:30" , "authorizationCode" : "NH873FG4KW" , "appId" : "ZZS_PT_DZFP" , "dataExchangeId" : "P1000001ECXML.FPKJ.BC.E_INV20161128eXl4EymmJ" , "requestCode" : "P1000991" , "terminalCode" : "0" , "interfaceCode" : "ECXML.FPKJ.BC.E_INV" , "userName" : "P1000991" , "version" : "1.0" , "taxpayerId" : "913101010000000090" , "responseCode" : "121" }, "Data" :{ "dataDescription" :{ "zipCode" : "0" , "codeType" : "3DES" , "encryptCode" : "1" }}, "returnStateInfo" :{ "returnCode" : "0000" , "returnMessage" : "5o6l5pS25byA56Wo5pWw5o2u5oiQ5Yqf77yB" }} { "orderNo" : "a7233f9dede748d7a897225882e41bed" , "result" : true , "seq" : "166c7e79c978415b9d3dc61c0e2482e7" } -- downLoadPDFInvoice -- { "@version" : "WLFP1.0" , "globalInfo" :{ "requestTime" : "2019-04-18 09:40:30" , "authorizationCode" : "NH873FG4KW" , "appId" : "ZZS_PT_DZFP" , "dataExchangeId" : "P1000001ECXML.FPXZ.CX.E_INV20161128eXl4EymmJ" , "requestCode" : "P1000991" , "terminalCode" : "0" , "interfaceCode" : "ECXML.FPXZ.CX.E_INV" , "userName" : "P1000991" , "version" : "1.0" , "taxpayerId" : "913101010000000090" , "responseCode" : "121" }, "Data" :{ "dataDescription" :{ "zipCode" : "0" , "codeType" : "3DES" , "encryptCode" : "1" }, "content" : "KkljLXJH9jnUg4+UyiPjzsmohuAxRTi0Iybiub47dTySoEqIK2NKg/LgKzhXWRc3Eken0YW09xcApE6kJEUfoEIsrAWnsnSC4zagumSb2LwXOY9rsjemRXW+57CMDpjvTB/rSnFQcLrtcg2bgpJvGB109u+Me+nrRL6ZUv20yQ1qom5T83vObojZPywInjp9HssgNhWJLQwOe9yxaeRqk/dZdkDz4+fa57p2QvmirOQav3Dxme7B+rqAPwisizfoRpgvVbrKRDVDfmnilif9++HculgVf2mIB5kLhLzyJ3jk2peZ9Zyn8IH5MS2LLKcYK8LW8X+MFBJrzZNNZZqpL+BADYCETUs0ziUt2/wzLQ0NYlWaJqxzGt5gwesKGbg8gE/Pzc91miel7jz6JPSJpEhXQAwfH5UE3mDB6woZuDzofJeL6wg3sytxAxUxDE6ouyAM5V59Q3lTLzqY0XsmKvsDRKGygNkhrfBa9JdJlSO8roMorXfhHOwcZBPMTPveW7/B2J6ZC760LfLOqtNsFA+D3bkzLycrvmPBEN1tkbh8yHXviVOXpWe9FlMkzQdCZwimcCqyzFUi74pYYvhiATlgyCU+aU4LUz1zjBqZQPyljtULnEcw6WtwQb2Q8sX398dXMghiGcEakYUBUGXNXfcujxx1m5k3JzYHyP4fSxirXvOIskg4X/EVNP7w2zxQ5IgIMeYBsRrZLGw0B5HWIiwWo3kLJ1a1mDlkBhB4SVmHF/Xce6octjWD84Xa14Z8WkEbqKhQxRo7wpWMb4J8fF1WmW1d9QhAirMimjSAY3rYTRv9HJxdtczy02f1+Gz97Dds+F8WvPS7xeoW7i4OIjLCkUpaNj815M6YJAeJ4g0Szg/XkSIzeyzQlQu84jg8" }, "returnStateInfo" :{ "returnCode" : "0000" , "returnMessage" : "5o6l5pS25Y+R56Wo5byA5YW35pWw5o2u5oiQ5Yqf77yB" }} { "PDF_URL" : "https://digi.aisino.com/dlj/v5/693139f6e80d41ffa127d961e062eeaa41c28f" , "msg" : "success" , "FPQQLSH" : "166c7e79c978415b9d3dc61c0e2482e7" , "KPRQ" : "20230116145210" , "DDH" : "a7233f9dede748d7a897225882e41bed" , "HJBHSJE" : "1.6" , "result" : true , "KPLX" : "1" , "RETURNCODE" : "0000" , "KPLSH" : "01100210080100170132" , "FP_HM" : "00170132" , "FPZL_DM" : "51" , "FWM" : "75676942570027235143" , "KPHJSE" : "0.0" , "FP_DM" : "011002100801" , "CZDM" : "10" } Process finished with exit code 0 |
实际的发票PDF地址URL:https://digi.aisino.com/dlj/v5/693139f6e80d41ffa127d961e062eeaa41c28f
涉及到的一些问题和解决办法:
fpkj_sdk.rar里的3des方法需要反编译压缩包里面的文件得到代码,其他的3des加密之后的结果不一致。
XML数据格式交换非常烦人,用xls2Json做公用解析。
开票后不能立即得到发票,需要过几秒再去download下载发票。
下载成功的发票修改到业务系统数据库中即可,做个开票成功的通知或者是邮件给 财务更好。
开票过程中所有的返回结果解密并且存储到数据库中。
整个流程就是:创建开票任务,开票,得到开票流水号,拿流水号请求下载发票的接口,得到返回发票PDF的文件地址,更新业务系统的数据库,失败了通知财务开票失败的原因,结束。
当然,这只是Java,其他语言也是一样的流程。
避免重复造轮子。for JAVA
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库