模擬串接服務 - 購買票券交易查詢

經銷商『購買票券交易查詢』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/voucherservicequery" }
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\/voucherservicequery" }
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 『購買票券交易查詢回傳』欄位參考
購買票券交易查詢回傳』欄位
Id Name Description Type Additional Information
1 uid 購買票券交易訂單UID string
2 key 交易驗証碼 string
3 code 目前狀態碼 string 『購買票券交易狀態碼』值參考
4 msg 回傳訊息 string
5 finishtime 交易完成時間(YYYYMMDDHHmmss) string
6 order_id 購買票券交易票券交易編號 string
7 user_id 消費者帳號 string
8 cost 原交易金額 string
9 currency 原交易幣別 string
10 actual_cost 實際交易金額 string
11 actual_currency 實際交易幣別 string
12 pfn 付費方法 string
13 echo_0 自訂回傳參數 1 string
14 echo_1 自訂回傳參數 2 string
15 echo_2 自訂回傳參數 3 string
16 echo_3 自訂回傳參數 4 string
17 echo_4 自訂回傳參數 5 string
購買票券交易狀態碼』 值內容
Value Description Type Additional Information
100 資料不正確 string
200 資料正確 string
210 交易處理中 string
250 交易成功 string
260 交易進行中(超商代碼繳費) string
270 交易進行中(虛擬帳號) string
280 交易進行中(WEBATM等導頁式交易) string
290 交易成功,但金額不符 string
300 交易失敗 string
380 交易逾時 string
400 系統錯誤 string
500 中斷交易(閘道) string
600 交易成功且結帳 (信用卡) string
A0001 中斷交易(金流) string
A0002 未完成交易 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

範例程式碼