模擬串接服務 - 票券發票資訊回報查詢

經銷商『票券發票資訊回報查詢』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/vouchersalesinvoicequery" }
JSON格式,AES256加密資料
3 encry_data 『票券發票資訊回報查詢』欄位資料 string 必填
『票券發票資訊回報查詢』欄位參考
JSON格式,AES256加密資料
特約商店『票券發票資訊回報查詢』請求欄位
Id Name Description Type Additional Information
1 store_uid 特約商店商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/vouchersalesinvoicequery" }
JSON格式,AES256加密資料
3 encry_data 『票券發票資訊回報查詢』欄位資料 string 必填
『票券發票資訊回報查詢』欄位參考
JSON格式,AES256加密資料
票券發票資訊回報查詢』欄位
Id Name Description Type Additional Information
1 order_id 票券發票資訊回報處理編號 string 必填
票券發票資訊回報查詢』回傳欄位
Id Name Description Type Additional Information
1 code 執行狀態碼 string 『票券執行狀態碼』值參考
2 msg 執行狀態訊息 string
3 content 內容 『票券狀態資訊回傳』值參考
票券執行狀態碼』 值內容
Value Description Type Additional Information
100 資料不正確 string
400 系統錯誤 string
B200 執行成功 string
B500 執行失敗 string
票券狀態資訊回傳』欄位
Id Name Description Type Additional Information
1 code 執行狀態碼 string 『票券執行狀態碼』值參考
2 msg 執行狀態訊息 string
3 uid 票券發票資訊回報交易訂單UID string
4 key 交易驗証碼 string
5 order_id 票券發票資訊回報處理編號(唯一) string
6 invoice_mode 發票何時開立 int 『發票何時開立』值參考
7 issue_invoice_state 發票誰開立 int 『票券發票資訊回報』值參考
8 order_uid 售出交易訂單UID或核銷交易訂單UID string
9 order_key 售出交易驗証碼或核銷交易驗證碼 string
10 items 發票資訊回報
開立時間/作廢時間/折讓時間需注意合理順序
array 每筆『票券發票開立資訊指令』欄位參考
每筆『票券發票作廢資訊指令』欄位參考
每筆『票券發票折讓資訊指令』欄位參考
11 echo_0 自訂回傳參數 1 string
12 echo_1 自訂回傳參數 2 string
13 echo_2 自訂回傳參數 3 string
14 echo_3 自訂回傳參數 4 string
15 echo_4 自訂回傳參數 5 string
票券執行狀態碼』 值內容
Value Description Type Additional Information
100 資料不正確 string
400 系統錯誤 string
B200 執行成功 string
B500 執行失敗 string
B501 執行失敗,資料不正確 string
發票何時開立』 值內容
Value Description Type Additional Information
2 票券售出時開立 int
3 票券核銷時開立 int
票券發票資訊回報』 值內容
Value Description Type Additional Information
1 自行開立 int
票券發票開立資訊指令』欄位
Id Name Description Type Additional Information
1 type 開立指令 int 『發票指令模式』值參考
2 content 票券發票開立資訊 object 『票券發票開立資訊』欄位參考
票券發票作廢資訊指令』欄位
Id Name Description Type Additional Information
1 type 作廢指令 int 『發票指令模式』值參考
2 content 票券發票作廢資訊 object 『票券發票作廢資訊』欄位參考
票券發票折讓資訊指令』欄位
Id Name Description Type Additional Information
1 type 折讓指令 int 『發票指令模式』值參考
2 content 票券發票折讓資訊 object 『票券發票開立資訊』欄位參考
發票指令模式』 值內容
Value Description Type Additional Information
2 開立 int
3 作廢 int
4 折讓 int
票券發票開立資訊』欄位
Id Name Description Type Additional Information
1 number 發票號碼 string
2 date 發票開立日期(格式:YYYYMMDDHHmmss) string
3 cost 發票開立金額 int
4 detail 發票明細資訊 array 每筆『票券售出發票明細資訊』欄位參考
票券發票作廢資訊』欄位
Id Name Description Type Additional Information
1 number 發票號碼 string
2 date 發票作廢日期(格式:YYYYMMDDHHmmss) string
票券發票開立資訊』欄位
Id Name Description Type Additional Information
1 number 發票號碼 string
2 date 發票折讓日期(格式:YYYYMMDDHHmmss) string
3 cost 折讓總金額 int
4 detail 折讓明細資訊 array 每筆『票券售出發票明細資訊』欄位參考
票券售出發票明細資訊』欄位
Id Name Description Type Additional Information
1 description 商品名稱 string
2 quantity 商品數量 int
3 unit_price 商品單價 float
4 amount 商品總價 float
AES256資料加密方式說明

1、所有的API送出HTTPs請求之欄位中,service 和 encry_data 欄位皆進行 AES256+BASE64 加密處理。
2、AES加密,格式為CBC,長度為256bits,金鑰長度32,IV長度16,傳遞內文為加密後組合IV並經過Base64轉換後傳出。

方式:
使用自訂的AES256函式將JSON資料加密後,再將IV資料和此AES256加密後的JSON資料串聯後,使用base64再進行加密成ASCII字串即可完成加密。

    PHP加密示意:
    AesEncrypt -> base64_ecode($IV . $JSON)

    C#加密示意:
    AesEncrypt -> (bytes)IV+(bytes)Json -> toBase64

    Java加密示意:
    AesEncrypt -> (bytes)IV+(bytes)Json -> toBase64

    Node.js加密示意:
    AesEncrypt -> concat([IV,JSON], [IV_SIZE,JSON_SIZE]) -> toString('base64')
    Python加密示意:
    AesEncrypt -> (bytes)IV+(bytes)Json -> base64.b64encode

範例程式碼