經濟部商業司是經濟部的業務單位之一,主要管理商業事務及公司設立登記等資訊,在前言中我們有提到這幾年因疫情的衝擊,台灣中小企業面臨各種窘境,因此造就了我們專案的誕生,藉由商業模式優化使中小企業提供新價值來吸引人流與商機。而在如此多的中小企業申請案件中,就需透過經濟部商業司的資訊來審核商家。
經濟部商業司共提供56支Open API查詢資料,所有的Open API都可以至經濟部商工行政資料開放平臺查詢,主要分為「公司登記」或「商業登記」兩大類別,可依據專案需求取得Json
或XML
格式資料,需特別注意的是經濟部商業司Open API有透過來源IP進行白名單管控,因此使用前需簽先填寫「經濟部商工行政資料開放平臺資料介接使用告知書
」,經濟部商工行政資料開放平臺確認申請資料無誤後,會進行介接設定並發信通知該介接設定已完成。
我們前面有提到需透過經濟部商業司的資訊來審核商家,因此從「公司登記」或「商業登記」兩大類別中各選擇一支Open API作為審核商家的依據,分別是商業登記基本資料-應用三及商業登記基本資料-應用三,在開發串接程式時,原以為只要使用Get Method組裝相關參數內容,就可以完成串接,但串接時卻一直得到「$filter參數有誤,請查明後繼續
」的錯誤訊息,查了許久才發現是因為參數包含空白字元,所以在串接時需先針對$filter
參數做前置處理,將「$filter=President_No eq 91308561
」透過URL Encode
後轉成「$filter=President_No%20eq%2091308561
」,再重新組裝後便完成了Open API的串接。
private String getQueryString(Map<String, String> map) {
StringBuffer sb = new StringBuffer();
if (map != null) {
Set<String> keyset = map.keySet();
Iterator<String> it = keyset.iterator();
while (it.hasNext()) {
String key = (String) it.next();
String value = (String) map.get(key);
// 經濟部商業司API需將空白做URL Encode
if ("$filter".equals(key)) {
try {
value = URLEncoder.encode(value, "UTF-8");
} catch (Exception e) {
log.info("Error:{}", e.getMessage(), e);
}
}
sb.append("&" + key + "=" + value);
}
}
String result = sb.toString().replaceFirst("&", "");
return result;
}