諾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);
    }

}
View Code

 

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;
    }

}
View Code

 

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;
    }
}

 

調用方法:

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的返回結果:

"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 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章