模擬串接服務 - 建立或修改發行商票券

經銷商『建立或修改發行商票券』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/voucherdatacreator" }
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\/voucherdatacreator" }
JSON格式,AES256加密資料
3 encry_data 『建立或修改發行商票券』欄位資料 string 必填
『建立或修改發行商票券』欄位參考
JSON格式,AES256加密資料
建立或修改發行商票券』欄位
Id Name Description Type Additional Information
1 issuance_uid 委託發行商商務代號 string 必填
2 items 票券資訊 array 必填
每筆『發行商票券資訊』欄位參考
建立或修改發行商票券』回傳欄位
Id Name Description Type Additional Information
1 code 執行狀態碼 string 『票券執行狀態碼』值參考
2 msg 執行狀態訊息 string
3 content 建立或修改結果回傳 array 每筆『發行商票券資訊』欄位參考
發行商票券資訊』欄位
Id Name Description Type Additional Information
1 product_id 票券產品編號(最長限32 Bytes)(唯一)
限英數字([a-zA-Z0-9])
若此編號已經建立過,則只更新detail欄位內資訊
string 必填
2 area_type 適用區域類型(此欄位新增後無法異動) integer 必填
『適用區域類型』值參考
3 is_paid 票券價值類型(此欄位新增後無法異動) integer 必填
『票券價值類型』值參考
4 detail 票券細部資訊 object 必填
『單店券資訊』欄位參考
『通用券資訊』欄位參考
『區域券資訊』欄位參考
票券執行狀態碼』 值內容
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 product_id 票券產品編號 string
適用區域類型』 值內容
Value Description Type Additional Information
1 單店券(預設) integer
2 通用券 integer
3 區域券 integer
票券價值類型』 值內容
Value Description Type Additional Information
1 有償 integer
0 無償 integer
單店券資訊』欄位
Id Name Description Type Additional Information
1 is_on 上下架狀態 integer 必填
『票券上下架狀態』值參考
2 is_gift 是否可轉贈 integer 『票券是否可轉贈』值參考
3 material_code 委託發行商的商品料號 string
4 product_name 票券名稱 string 必填
5 product_description 票券產品敘述 string
6 declaration 宣告內容,只允許下列html tag,h6,ul,li,b string 必填
7 store_uid 可核銷特約商店商務代號 string 必填
通用券資訊』欄位
Id Name Description Type Additional Information
1 is_on 上下架狀態 integer 必填
『票券上下架狀態』值參考
2 is_gift 是否可轉贈 integer 『票券是否可轉贈』值參考
3 material_code 委託發行商的商品料號 string
4 product_name 票券名稱 string 必填
5 product_description 票券產品敘述 string
6 declaration 宣告內容,只允許下列html tag,h6,ul,li,b string 必填
區域券資訊』欄位
Id Name Description Type Additional Information
1 is_on 上下架狀態 integer 必填
『票券上下架狀態』值參考
2 is_gift 是否可轉贈 integer 『票券是否可轉贈』值參考
3 material_code 委託發行商的商品料號 string
4 product_name 票券名稱 string 必填
5 product_description 票券產品敘述 string
6 declaration 宣告內容,只允許下列html tag,h6,ul,li,b string 必填
7 used_name 群體名稱 string 必填
8 store_uids 可核銷特約商店商務代號 array 必填
發行商票券處理狀態碼』 值內容
Value Description Type Additional Information
250 建立成功 string
251 修改成功 string
300 建立失敗 string
301 修改失敗 string
票券上下架狀態』 值內容
Value Description Type Additional Information
1 上架(預設) integer
0 下架 integer
票券是否可轉贈』 值內容
Value Description Type Additional Information
1 可轉贈(預設) integer
0 不可轉贈 integer
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

範例程式碼