模擬串接服務 - 票券售出交易查詢

經銷商『票券售出交易查詢』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/vouchersoldquery" }
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\/vouchersoldquery" }
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 查詢內容 object 『票券售出交易內容』欄位參考
票券執行狀態碼』 值內容
Value Description Type Additional Information
100 資料不正確 string
400 系統錯誤 string
B200 執行成功 string
B500 執行失敗 string
B501 執行失敗,資料不正確 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 sales_date 銷售處理完成日期時間(格式為YYYYMMDDHHmmss) string
7 items 內容 array 每筆『票券售出資訊回傳』欄位參考
8 sales_order_id 銷售店家訂單單號 string
9 issue_invoice_state 票券售出發票開立類型 int 『票券售出發票開立類型』值參考
10 invoice 當發票開立類型為1自行開立時,需帶入相關資訊 object|null 『票券售出交易發票資訊』欄位參考
11 trust_start_date 票券履約保證起始日(格式:YYYYMMDD) string
12 trust_end_date 票券履約保證結束日(履約保證時間必須超過一年)(格式:YYYYMMDD) string
13 sales_from_type 銷售點類型 int 『票券銷售點類型』值參考
14 sales_store_uid 銷售特約商店商務代號 string
15 sales_dealer_no 自訂銷售點編號 string
16 echo_0 自訂回傳參數 1 string
17 echo_1 自訂回傳參數 2 string
18 echo_2 自訂回傳參數 3 string
19 echo_3 自訂回傳參數 4 string
20 echo_4 自訂回傳參數 5 string
票券執行狀態碼』 值內容
Value Description Type Additional Information
100 資料不正確 string
400 系統錯誤 string
B200 執行成功 string
B500 執行失敗 string
票券售出資訊回傳』欄位
Id Name Description Type Additional Information
1 issuance_uid 委託發行商 string
2 unit_type 單位類型 int 『票券實體券單位』值參考
3 no 自訂票券號碼或本號碼 string
4 ticket 若單位為券時,票券資訊 object|null 『單位為券,票券資訊』欄位參考
5 book 若單位為本時,票券資訊清單 array 每筆『單位為本,票券資訊』欄位參考
票券售出發票開立類型』 值內容
Value Description Type Additional Information
0 不開立(預設) int
1 自行開立 int
票券售出交易發票資訊』欄位
Id Name Description Type Additional Information
1 number 發票號碼 string
2 date 發票開立日期(格式:YYYYMMDDHHmmss) string
票券銷售點類型』 值內容
Value Description Type Additional Information
1 MYTIX特約商店(預設) int
2 自訂銷售點編號 int
票券實體券單位』 值內容
Value Description Type Additional Information
1 int
2 int
單位為券,票券資訊』欄位
Id Name Description Type Additional Information
1 custom_serial_no 自訂票券號碼 string
2 serial_no 系統票券號碼 string
3 cost 購買單價 float
4 price 購買定價 float
5 trust_start_date 票券履約保證起始日(格式:YYYYMMDD) string
6 trust_end_date 票券履約保證結束日(履約保證時間必須超過一年)(格式:YYYYMMDD) string
7 trust_guarantee_date 與消費者定型化契約結束日(格式:YYYYMMDD) string
單位為本,票券資訊』欄位
Id Name Description Type Additional Information
1 custom_serial_no 自訂票券號碼 string
2 serial_no 系統票券號碼 string
3 cost 購買單價 float
4 price 購買定價 float
5 trust_start_date 票券履約保證起始日(格式:YYYYMMDD) string
6 trust_end_date 票券履約保證結束日(履約保證時間必須超過一年)(格式:YYYYMMDD) string
7 trust_guarantee_date 與消費者定型化契約結束日(格式:YYYYMMDD) string
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

範例程式碼