• 沒有找到結果。

(一)、作業平台

Touching Invoice 發票機和 Touching Invoice 發票盒採 用 Windows Phone 8 作業系統。

由於目前推出之 Windows Phone 8 手機大多搭載 NFC 功能,且比起其他作業系統,Windows Phone 8 在操作 NFC 上更為簡便,只需將兩個裝置點對點感應即可傳輸資料,故 選擇 Windows Phone 8 開發。

(二)、開發工具

1、Visual Studio 2012

本系統使用 C#及 XAML 開發 Windows Phone 8 程 式。Visual Studio 2012 安裝 Windows Phone SDK 8.0

後即支援開發 Windows Phone 8 程式,因此以 Visual Studio 2012 作為開發工具。

2、Blend for Visual Studio

使用 Blend for Visual Studio,可以視覺化操作介面 進行 App 介面設計,且能產生可靠、可預期之 XAML 程 式碼套用至程式專案,對於介面設計而言,功能齊全且操 作容易。

3、NetBeans 7.3.1

Touching Invoice 網路服務平台使用 NetBeans 7.3.1 作為開發工具,主要以 Java 搭配 CSS 和 HTML 開發,

並採用 MVC 架構簡化開發複雜度。

4、Tomcat 8.0.0

Touching Invoice 網路服務平台以 Tomcat 8.0.0 實作 Java Servlet 和 JavaServer Page,建立網頁伺服器。

5、MySQL 5.6.13

MySQL 5.6.13 關聯式資料庫效能高、成本低且可靠 性佳,故選用其作為 Touching Invoice 系統資料庫。

6、NDEF Library

Touching Invoice 發票機和 Touching Invoice 發票 盒採用 NFC 近場通訊技術進行資料交換,必須在 Visual Studio 2012 加入 NDEF Library,才能針對 NFC 進行程 式碼撰寫及運作。

參、 NFC 電子發票機-Touching Invoice 發票機 一、 使用前驗證

商 家 使 用 Touching Invoice 發 票 機 前 , 必 須 至 Touching Invoice 網路服務平台註冊帳號密碼,取得一組唯一的驗證碼與驗 證金鑰。商家每次啟動發票機都要先進行驗證,才能使用開立電子 發票等功能。

POS 機與 Touching Invoice 發票機採用 HMAC 演算法進行加 密驗證,兩端建立連線後,在 POS 機按下驗證鈕,即會將商家驗 證碼以 SHA256 雜湊加密,並以加密後驗證碼與加密前驗證碼作為 Request 發送至發票機,發票機收到後,按下驗證頁面的「Verify」, 發票機就會以儲存在系統內之該商家驗證金鑰,利用相同雜湊演算 法將商家加密前驗證碼加密,再與商家加密後驗證碼進行比對。

比對正確後,Touching Invoice 發票機會顯示驗證通過(如圖 3-1),並回傳「OK」作為 Response,POS 機收到「OK」後,即 驗證成功,始得進行其他操作。如果比對錯誤,Touching Invoice 發票機會跳出「Hash values differ! Signed file has been tampered with!」(如圖 3-2),並回傳「Fail」作為 Response,POS 機收到

「Fail」表示驗證失敗,將無法進行其他操作。

二、 開立電子發票與行動 POS 機

Touching Invoice 發票機與商家 POS 機驗證成功後,商家即 可利用 POS 進行結帳,並透過發票機開立電子發票。商家輸入商 品及金額後,應詢問消費者是否要使用 Touching Invoice 發票盒接 收電子發票,如果消費者欲使用,商家須在 POS 機按「使用載具 結帳」,使 Touching Invoice 發票機跳出傳輸視窗(如圖 3-3),此 時消費者只要在發票盒按下「接收電子發票」後,將手機 NFC 裝 置對準發票機 NFC 裝置,發票盒就會將消費者識別碼經由發票機 傳送至商家 POS 機,商家 POS 機收到後,會將結帳清單傳送至發 票機,再由發票機將結帳清單轉換成電子發票格式回傳給消費者發 票盒,即完成開立電子發票動作。倘若消費者不使用 Touching

圖 3-1 發票機驗證成功畫面 圖 3-2 發票機驗證失敗畫面

Invoice 發票盒接收電子發票,則商家應在 POS 機按下「不使用載 具結帳」,結帳清單仍會傳送至發票機轉換成電子發票格式,但發 票機會將其送至紙本發票列表機印出。

若 消 費 者 使 用 Touching Invoice 發 票 盒 接 收 電 子 發 票 , Touching Invoice 發票機在開立電子發票的同時,會透過 Touching Invoice 網路服務平台至後台資料庫隨機取得一張折價券,連同電 子發票一起傳送給消費者。

Touching Invoice 發票機除接收商家 POS 機結帳清單開立發 票外,也能獨立輸入消費金額直接開立電子發票。Touching Invoice 發票機自行輸入金額頁面,提供簡易計算機功能(如圖 3-4),讓商 家可以計算消費者消費總額,並開立電子發票,而其同樣可以讓消 費者決定是否以 Touching Invoice 發票盒接收電子發票。

圖 3-3 發票機傳輸視窗畫面

Touching Invoice 發票機獨立輸入金額開立發票後,會在裝置 發票紀錄頁面留下紀錄(如圖 3-5),商家可以將此頁面之紀錄匯入 POS 機,進行統一管理。發票機擁有獨立輸入金額開立發票功能,

因此可以將其視為一簡便行動 POS 機,突破僅能至結帳臺進行結 帳開發票的限制,此功能對於許多攤販、餐廳及 KTV 等業者而言,

相當方便。

圖 3-4 發票機自行輸入金額頁面

圖 3-5 發票機裝置發票紀錄頁面

三、 發票機與商家 POS 機之資料傳遞

Touching Invoice 發票機與商家 POS 機之間主要有驗證、結 帳清單傳遞、獨立開立之發票紀錄傳遞等互動。在驗證時,由商家 POS 機傳送「Auth \t 加密後驗證碼 \t 加密前驗證碼」至發票機,

驗證成功,發票機會回傳「OK」;驗證失敗,發票機則回傳「Fail」。

傳遞結帳清單時,如果消費者不使用 Touching Invoice 發票盒,

商家 POS 機將傳送「Paper \t 結帳清單 \t」至發票機,發票機收 到後會把結帳清單轉換成電子發票格式再傳送至紙本發票列表機,

並回傳「InvoiceNum \t 發票號碼 \t」給商家 POS 機記錄發票號 碼;如果消費者使用 Touching Invoice 發票盒接收電子發票,商家 POS 機則會先傳送「getID」至發票機,發票機收到後會跳出傳輸 視窗,等待消費者發票盒傳來消費者識別碼及折價券資訊,倘若接 收之折價券無誤或消費者未使用折價券,發票機會回傳「ID \t 消費 者識別碼 \t 折價券折扣率」(關於消費者使用折價券,詳細內容請 見第肆章第一節)至 POS 機,再由 POS 機傳送「發票機 \t 結帳 清單 \t」至發票機,讓發票機開立電子發票,並回傳「InvoiceNum

圖 3-6 商家 POS 機與發票機驗證流程圖

\t 發票號碼 \t」給商家 POS 機記錄發票號碼;但若接收之折價券 有誤,發票機則會回傳「Wrong」至 POS 機,結束所有傳輸動作。

當商家欲將發票機獨立開發票之紀錄匯入 POS 機時,會由 POS 機傳送「getLog」至發票機,發票機將回傳「Log \t 裝置紀錄

\t」供 POS 機擷取紀錄。

圖 3-7 商家 POS 機與發票機開立紙本發票流程圖

圖 3-9 商家 POS 機與發票機裝置紀錄流程圖 圖 3-8 商家 POS 機與發票機開立電子發票流程圖

肆、 消費者 App-Touching Invoice 發票盒 一、 選擇折價券與接收電子發票

消費者至 Touching Invoice 網路服務平台註冊帳密,取得消費 者識別碼後,即可下載 Touching Invoice 發票盒使用,下載後,發 票盒會綁定消費者識別碼。

消費者使用 Touching Invoice 發票盒接收電子發票前,可以在 選擇折價券頁面點選適用於當前商家之折價券(如圖 4-1),進入折 價券明細頁面(如圖 4-2)。如果確定欲使用該折價券,在折價券明 細頁面按下「使用」後,會回到選擇折價券頁面,此時按下「接收 電子發票」,發票盒就會將該折價券送出,讓系統自動折算消費金 額。如果選擇使用折價券後,欲取消該折價券,只要在接收電子發 票前,於選擇折價券頁面按下「取消折價券」即可。

圖 4-1 發票盒選擇折價券頁面 圖 4-2 發票盒折價券明細頁面

若消費者選用折價券,商家會先透過 POS 機點選折扣率,讓 POS 機顯示折價後金額供消費者檢視,隨後消費者使用 Touching Invoice 發票盒與 Touching Invoice 發票機進行傳輸時,發票盒會 將折價券傳送至發票機,發票機將驗證該折價券是否適用於當前商 家,假使該折價券確定可以使用,發票機會將折價券載明之折扣率 傳到商家 POS 機更改內部結帳金額,再經由發票機將結帳明細轉 換成電子發票傳送給發票盒,當發票盒收到電子發票後,使用的折 價券會自動從發票盒中移除,避免消費者重覆使用;如果該折價券 不為當前商家之折價券,發票機會傳送錯誤訊息至商家 POS 機及 發票盒,取消各端目前所有傳輸動作,必須重新操作。若消費者未 選用折價券,發票盒僅會傳送消費者識別碼至發票機,此情況下發 票機會將折扣率設為 0,即不做任何折扣。

另外,Touching Invoice 發票盒提供刪除折價券功能,倘若消 費者欲刪除持有之折價券,只要點選該折價券進入折價券明細頁面 按下「刪除」,就能將該折價券從發票盒中移除。當消費者在選擇折 價券頁面按下「接收電子發票」,Touching Invoice 發票盒將跳出傳 輸視窗(如圖 4-3)。接收到電子發票後,發票盒會顯示發票明細(如 圖 4-4),並關閉傳輸視窗;如果消費者選用不適用之折價券,發票 盒則會收到錯誤訊息並顯示「折價券使用錯誤或發票傳輸錯誤,請

確認折價券是否正確並重新接收發票。」(如圖 4-5),必須重新選 擇是否使用折價券,並再次進行接收電子發票動作。

圖 4-3 發票盒傳輸視窗畫面

圖 4-4 發票盒發票明細畫面 圖 4-5 發票盒折價券錯誤畫面

二、 檢視發票明細與發票中獎號碼

Touching Invoice 發票盒接收電子發票後,會將發票明細儲存 在程式中,消費者可以利用發票盒的檢視發票頁面(如圖 4-6),點 選發票紀錄進入發票明細頁面檢視該發票詳細內容(如圖 4-7)。如 果要刪除該紀錄,只要在發票明細頁面按下「刪除」即可,倘若要 一次刪除所有發票紀錄,可以在檢視發票頁面按「刪除全部發票紀 錄」,發票盒就會將儲存在程式中的所有發票紀錄清空。

Touching Invoice 發票盒尚提供檢視統一發票中獎號碼功能。

在檢視發票頁面按「檢視發票中獎號碼」後,發票盒會至網路讀取 近兩期統一發票中獎號碼(如圖 4-8)。使用此功能必須開啟 wifi 或 利用 3G 行動上網等方式與網路連線,否則發票盒將無法至網路讀

圖 4-6 發票盒檢視發票頁面 圖 4-7 發票盒發票明細頁面

取資料,畫面會顯示「更新/讀取 中獎號碼,請開啟 Wifi 或行動網 路」(如圖 4-9)。

三、 發票盒與發票機之資料傳遞

Touching Invoice 發票盒接收電子發票時,是利用 NFC 進場 通訊技術與 Touching Invoice 發票機做資料交換。發票盒及發票機

Touching Invoice 發票盒接收電子發票時,是利用 NFC 進場 通訊技術與 Touching Invoice 發票機做資料交換。發票盒及發票機

相關文件