模擬串接服務 - eDDA核印查詢

經銷商『eDDA核印查詢』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/eddaquery" }
JSON格式,AES256加密資料
3 encry_data 『eDDA核印查詢』欄位資料 string 必填
『eDDA核印查詢』欄位參考
JSON格式,AES256加密資料
特約商店『eDDA核印查詢』請求欄位
Id Name Description Type Additional Information
1 store_uid 特約商店商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/eddaquery" }
JSON格式,AES256加密資料
3 encry_data 『eDDA核印查詢』欄位資料 string 必填
『eDDA核印查詢』欄位參考
JSON格式,AES256加密資料
eDDA核印查詢』欄位
Id Name Description Type Additional Information
1 store_uid 特約商店商務代號 string 必填
2 uid 訂單號碼 string 必填
3 key 驗証碼 string 必填
eDDA核印查詢』回傳欄位
Id Name Description Type Additional Information
1 code 回傳碼 string
2 msg 回傳訊息 string
3 content object 『Edda核印訂單查詢』欄位參考
Edda核印訂單查詢』欄位
Id Name Description Type Additional Information
1 uid eDDA電子化授權核印訂單流水號 integer
2 key 驗證碼 string
3 code 核印狀態 string 『eDDA 核印狀態』值參考
4 msg 核印狀態說明 string
5 user_id 消費者帳號 string
6 tix 交易代碼(eDDA授權資訊) string
7 cellphone_code 手機區碼(eDDA授權資訊) string
8 cellphone 手機號碼(eDDA授權資訊) string
9 bank_uid 扣款銀行代碼(eDDA授權資訊) string
10 bank_account 扣款銀行帳號(eDDA授權資訊) string
eDDA 核印狀態』 值內容
Value Description Type Additional Information
C01 核印進行中 string
C02 核印進行中(已進入核印頁面) string
C03 核印進行中(已對票交所發動核印) string
C10 未進行核印 string
C20 核印成功 string
C30 核印失敗 string
C40 系統異常 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

範例程式碼