# 點子數位 - 電子發票導入概念驗證(POC) 參考文件:[財政部北區國稅局導入電子發票模式自我評估](https://www.ntbna.gov.tw/download/163de82cc8d00000e426127ad0b70c2f) ## 導入模式 依自我評估 P.5 之圖,導入分為不需要內部整合及需要內部整合二類。其下又分為: 1. 不需內部整合 - 大平台 WEB 系統開立模式:適用規模較小、量少、月結彙開、不需要與內部系統整合。 - 系統外包開立模式 2. 需要內部整合 ### 不需要內部整合 需要與內部整合,又可區分為以下二種: 1. 高穩私模式 2. 低隱私模式 (***暫定採用此模式***) ```graphviz digraph { rankdir=LR; 營業人 -> 開立發票系統[label="開立發票"] 開立發票系統 -> 易發票[label="API 呼叫"]; 易發票 -> "大平台" } ``` ### ## 銷售單建立作業 ```graphviz digraph { 銷售作業 -> 開立發票[label="API 呼叫"]; 開立發票 -> 取得發票資訊[label="API 回覆"]; 取得發票資訊 -> 建立銷售單; 取得發票資訊 -> 取得發票PDF[label="API 呼叫"]; 取得發票PDF -> 呼叫列印代理[label="本地 API 呼叫"]; } ``` ## 發票重印 ```graphviz digraph { } ``` ### 發票生命週期 ```graphviz digraph { 開立 -> { 註銷重開, 折讓, 作廢 } } ``` 開立 作廢 折讓 ## 開發進度 ### 測試 API 界接 - [x] 登入測試 API 取得 AccessToken,回應如下,其中 validTo 為 token 有效時間為60天。 ```json { "code": 0, "message": "Ok", "value": { "accName": "A50852742", "dspName": null }, "token": { "token": "9bb58eaaf0b0d8c59b2e96951f641d0c12035746002cabbc", "validTo": 1710510536656 } } ``` - [x] 將 token 存入供未來備用,目前放在 /var/app/syu3c/mis/invoice_poc ```php $token_file = ./tmp/token.json ``` - [x] 測試取得指定週期的發票清單。 ```json // 測試名稱:取得 202401 期的已開立的發票資料 // URL is https://tryapi.ezreceipt.cc/eInvoice/invoice/list // STATUS 200 // BODY { "code": 0, "message": "Ok", "value": { "list": [ { "invID": 21555, "invNo": "AA10000000", "invType": 7, "soID": 51442, "orderNo": "ID2024011500022", "salesAmount": 1504, "taxAmount": 75, "taxType": 1, "taxRate": 0.05, "msgType": 0, "invoiceTime": "2024-01-15 20:05:00", "lotStatus": -10, "carrierType": 10, "carrierInfo": "", "charity": null, "cdc4": null, "notifyEmail": null, "remarks": "", "uploadCode": null, "procState": 11, "allowance": [], "prodList": [ { "title": "iPhone 8 64G 黑", "qty": 1 } ] } ], "entries": 1 } } ``` ### 單獨列印發票 POC > 取得發票不是以發票號碼,而是以 invID - [x] 取得發票 PDF 檔。 - 樣本網頁: https://dev.idea3c.com.tw/pg/invoice/proof/2 - [x] 列印發票測試, ```graphviz digraph { rankdir=LR; 取得發票PDF -> 主機暫存 -> 呼叫列印代理 -> 抓取暫存PDF -> "進行列印(lq)" } ``` 發票列印代理指令: ```shell lp -o media=Custom.57x90mm -o PaperType=Continue 1.pdf ``` ### 開立發票 POC - [ ] 測試開立發票(純 API 測試,未與流程整合) - [ ] 測試開立發票後、透過標籤機列印發票。 - [ ] 設計發票列印代理。 - [ ] ``` 開立發票 ```