綠界科技電子發票資料驗證器

Roan
Mar 20, 2024

--

串接綠界科技的 B2C 電子發票時,其中可以使用資料驗證的功能驗證統一編號、手機條碼與捐贈碼。本文分享驗證資料的程式碼,可以同時驗證三種功能。

photo of an engineer studying data with a robot in the office — ar 3:2 — style raw — s 0 — v 6.0

為什麼要驗證?

若想要用綠界系統開電子發票,可能要打統編、輸入手機載具條碼或是愛心捐贈碼。使用驗證功能,可以先查詢該統編屬於哪間公司,或是手機條碼與愛心碼是否存在。例如,如果手機條碼並不存在,可能事後無法歸戶。

程式碼 (Node.js)

GitHub 連結:https://github.com/evojroan/ECPAy_EInvoice_Data_Verification

首先先確保電腦可以執行 Node.js。打開 app.js,於「//改以下就好」修改相關參數。執行本檔案,console.log 出來的內容就是發送 API 後回傳的結果,也同時把訊息解密好了。

三種驗證功能的差別非常小

進行統一編號、手機條碼、捐贈碼要傳送的參數非常相像,只差在要查詢的是統一編號、手機條碼還是捐贈碼而已,而且三者呼叫的 API 網址差別也只在於網址的最後面,所以可以一次就把所需的功能寫好,只要調整參數就可以選擇要驗證哪個資料。

URI 加解密與 AES 加解密

上次在綠界科技檢查碼(CheckMacValue)產生器中,已經用到 Node.js 中的 encodeURIComponent() 功能。在傳輸資料以進行驗證時,要先將資料經過 AES 加密;綠界回傳的資料也有經過 AES 加密。因此為了使用者方便,我也寫好了解密功能,能直接看到回傳的原始資料,以及解密後的資料。

查不到不代表資料不存在

綠界技術文件有提到,驗證是調用財政部系統資料,但因為財政部可能會進行不預期的維護作業,而影響查閱,所以查無資料並不意味著該統一編號、手機條碼或捐贈碼不存在,本驗證功能僅當作一種輔助性驗證工具。

確認過後再開立發票

開立發票時有時會需要打統編、使用手機條碼或捐贈愛心碼的功能。使用這些號碼前,應先完成確認作業再開立,才能確保發票資料的正確。

--

--

Roan

Javascript/HTML/CSS/React/Node.JS 我是光頭工程師