Nuget下載
PM > Install-Package ElectronicInvoice_TW
範例是呼叫【撈取中獎發票API】
//設定使用哪個抓取Setting類別
var setting = new AppsettingConfig();
//建立工廠 將配置檔傳入建構子中
InvoiceApiFactory factory = new InvoiceApiFactory(setting);
//建立查詢參數
//下面範例查詢 發票民國106年7.8月中獎發票
QryWinningListModel model = new QryWinningListModel()
{
invTerm = "10608"
};
//在工廠中藉由傳入參數 取得Api產品
var api = factory.GetProxyInstace(model);
//api回傳結果
var result = api.ExecuteApi(model);
- 簡化使用創建流程
- 創建一個
InvoiceApiContext
物件 - 傳入要使用的Model,即可獲得使用的值
var setting = new AppsettingConfig();
DonateQueryModel donateModel = new DonateQueryModel()
{
qKey = "伊甸"
};
InvoiceApiContext apiContext = new InvoiceApiContext(setting);
result = apiContext.ExecuteApi(donateModel);
使用Model可以參考
WebConfig配置
<appSettings>
<!--查詢api的url api名稱為key,請求網址為value-->
<add key="QryWinningListApi" value="https://api.einvoice.nat.gov.tw/PB2CAPIVAN/invapp/InvApp" />
<!--是否開啟API模擬-->
<add key="IsMockAPI" value="0" />
<!--設置你們Key和IV-->
<add key="GovAppId" value="" />
<add key="GovAPIKey" value=""/>
</appSettings>
JsonConfig 範例
{
"GovAppId":"",
"GovAPIKey":"",
"IsMockAPI":"0",
"ApiURLTable":{
"QryWinningListApi":"https://wwwtest.einvoice.nat.gov.tw/PB2CAPIVAN/invapp/InvApp",
"QryCarrierAggApi":"https://www.einvoice.nat.gov.tw/PB2CAPIVAN/Carrier/Aggregate",
"DonateQueryApi":"https://wwwtest.einvoice.nat.gov.tw/PB2CAPIVAN/loveCodeapp/qryLoveCode",
"MyApi":"https://wwwtest.einvoice.nat.gov.tw/PB2CAPIVAN/invapp/InvApp"
}
}
基礎建設:
- 建立
InvoiceApiContext
封裝Factory Api實做 - 撰寫單元測試
- API文件和Model類別使用對應表
API實做:
- 1.5.0 ~ 2.0.0 支援.net core和.net framework 4.6.1以上