模擬串接服務 - 票券轉贈(消費者主動)

經銷商『票券轉贈(消費者主動)』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/vouchergift" }
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\/vouchergift" }
JSON格式,AES256加密資料
3 encry_data 『票券轉贈(消費者主動)』欄位資料 string 必填
『票券轉贈(消費者主動)』欄位參考
JSON格式,AES256加密資料
票券轉贈(消費者主動)』欄位
Id Name Description Type Additional Information
1 order_id 票券轉贈交易票券處理編號(唯一) string 必填
2 user_id 消費者帳號 string 必填
3 page_type 票券顯示模式 string 必填
『票券顯示模式』值參考
4 issuance_uid 以委託發行商顯示票券之委託發行商商務代號
1.資訊商發動,可以帶不同的委託發行商
2.委託發行商發動,只能自己本身委託發行商
array 必填
5 success_returl 成功轉贈畫面 string
6 failure_returl 轉贈失敗畫面 string
7 homepage_url 返回首頁連結 string
8 theme 佈景主題名稱 string
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
票券轉贈(消費者主動)』回傳欄位
Id Name Description Type Additional Information
1 code 執行狀態碼 string 『票券執行狀態碼』值參考
2 msg 執行狀態訊息 string
3 content 票券轉贈回傳細項資訊 object 『票券轉贈回傳細項資訊』欄位參考
接收回報方式說明

接收到資料時,請主動回傳字串【8888】四個字元,確認完成。若貴司沒有回傳,系統會間隔十五分鐘傳送一次持續四次,若仍未接受到貴司回傳確認字串,系統即會停止傳送。

回報使用 HTTP Protocol的Post方式,內容格式為 application/x-www-form-urlencoded。

票券轉贈簡訊通知』回報欄位
Id Name Description Type Additional Information
1 sms_type 簡訊通知類型
1.票券轉贈簡訊通知
integer
2 content 簡訊通知內容 object 『票券轉贈簡訊通知』欄位參考
票券顯示模式』 值內容
Value Description Type Additional Information
1 以委託發行商顯示票券 string
票券執行狀態碼』 值內容
Value Description Type Additional Information
100 資料不正確 string
400 系統錯誤 string
B200 執行成功 string
B500 執行失敗 string
票券轉贈回傳細項資訊』欄位
Id Name Description Type Additional Information
1 url 網址 string
2 uid 票券轉贈交易UID string
3 key 驗証碼 string
票券轉贈簡訊通知』欄位
Id Name Description Type Additional Information
1 uid 票券轉贈交易UID string
2 key 交易驗証碼 string
3 order_id 票券轉贈交易票券處理編號 string
4 cellphone_code 被轉贈者手機國碼 string
5 cellphone 被轉贈者手機號碼 string
6 is_member 被轉贈票券是否為記名 integer 『被轉贈票券是否為記名』值參考
7 gift_url 不記名票券領取與使用網址 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
1 integer
0 不是 integer
票券轉贈交易產品資訊』欄位
Id Name Description Type Additional Information
1 id 票券產品編號 string
2 name 票券名稱 string
3 material_code 委託發行商的商品料號 string
4 products 產品金額資訊 array 每筆『票券轉贈交易產品金額資訊』欄位參考
票券轉贈交易產品金額資訊』欄位
Id Name Description Type Additional Information
1 amount 數量 integer
2 cost 購買單價 float
3 price 購買定價 float
4 total_cost 購買單價小計 float
5 total_price 購買定價小計 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

範例程式碼