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

經銷商『票券發票資訊回報』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/vouchersalesinvoice" }
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\/vouchersalesinvoice" }
JSON格式,AES256加密資料
3 encry_data 『票券發票資訊回報』欄位資料 string 必填
『票券發票資訊回報』欄位參考
JSON格式,AES256加密資料
票券發票資訊回報』欄位
Id Name Description Type Additional Information
1 order_id 票券發票資訊回報處理編號(唯一) string 必填
2 invoice_mode 發票何時開立 int 必填
『發票何時開立』值參考
3 issue_invoice_state 發票誰開立 int 必填
『票券發票資訊回報』值參考
4 order_uid 售出交易訂單UID或核銷交易訂單UID string 必填
5 order_key 售出交易驗証碼或核銷交易驗證碼 string 必填
6 items 發票資訊回報
開立時間/作廢時間/折讓時間需注意合理順序
array 必填
每筆『票券發票開立資訊指令』欄位參考
每筆『票券發票作廢資訊指令』欄位參考
每筆『票券發票折讓資訊指令』欄位參考
7 echo_0 自訂回傳參數 1 string
8 echo_1 自訂回傳參數 2 string
9 echo_2 自訂回傳參數 3 string
10 echo_3 自訂回傳參數 4 string
11 echo_4 自訂回傳參數 5 string
票券發票資訊回報』回傳欄位
Id Name Description Type Additional Information
1 code 執行狀態碼 string 『票券執行狀態碼』值參考
2 msg 執行狀態訊息 string
3 content 內容 object 『票券狀態資訊回傳』欄位參考
發票何時開立』 值內容
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
100 資料不正確 string
400 系統錯誤 string
B200 執行成功 string
B500 執行失敗 string
B501 執行失敗,資料不正確 string
票券狀態資訊回傳』欄位
Id Name Description Type Additional Information
1 uid 票券發票資訊回報交易訂單UID string
2 key 交易驗証碼 string
3 order_id 票券發票資訊回報處理編號(唯一) string
4 invoice_mode 發票何時開立 int 『發票何時開立』值參考
5 issue_invoice_state 發票誰開立 int 『票券發票資訊回報』值參考
6 order_uid 售出交易訂單UID或核銷交易訂單UID string
7 order_key 售出交易驗証碼或核銷交易驗證碼 string
8 items 發票資訊回報
開立時間/作廢時間/折讓時間需注意合理順序
array 每筆『票券發票開立資訊指令』欄位參考
每筆『票券發票作廢資訊指令』欄位參考
每筆『票券發票折讓資訊指令』欄位參考
9 echo_0 自訂回傳參數 1 string
10 echo_1 自訂回傳參數 2 string
11 echo_2 自訂回傳參數 3 string
12 echo_3 自訂回傳參數 4 string
13 echo_4 自訂回傳參數 5 string
發票指令模式』 值內容
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

範例程式碼