模擬串接服務 - 電票退款

經銷商『電票退款』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/esvcrefund" }
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\/esvcrefund" }
JSON格式,AES256加密資料
3 encry_data 『電票退款』欄位資料 string 必填
『電票退款』欄位參考
JSON格式,AES256加密資料
電票退款』欄位
Id Name Description Type Additional Information
1 store_uid 特約商店代碼 string
2 device_id 設備編號 string
3 key 交易驗証碼 string
4 uid 訂單編號(UID) string
5 cost 退款金額(可部分退款) string
6 invoice_state 若有開立電子發票,指定電子發票使用作廢或折讓
注意:跨發票月份無法作廢
integer 『電子發票退款時使用作廢或折讓』值參考
7 items 退款項目
若使用電子發票,此欄位必填
退款項目必須和交易時之產品項目名稱相同
項目總金額必須與退款金額一致
array 每筆『商品項目』欄位參考
電票退款』回傳欄位
Id Name Description Type Additional Information
1 key 特約商店驗證碼 string
2 uid 訂單編號(UID) string
3 code 處理狀態 B200 或 B500 string
4 msg 回傳訊息 string
5 row_data 退款資訊(退款成功才有此資訊) object 『電票交易退款完成資訊』欄位參考
電子發票退款時使用作廢或折讓』 值內容
Value Description Type Additional Information
0 沒有發票 string
4 作廢或作廢重開 string 預設
6 折讓 string
商品項目』欄位
Id Name Description Type Additional Information
1 id 商品編號 string 必填
2 name 商品名稱 string 必填
3 cost 商品單價 integer 必填
4 amount 商品數量 integer 必填
5 total 商品小計 integer 必填
6 image_url 商品圖片連結(僅LINEPay線上使用) string
電票交易退款完成資訊』欄位
Id Name Description Type Additional Information
1 uid 訂單編號(UID) string
2 refund_uid 退款之交易流水號(若多次退款,每次皆會不同) string
3 key 交易驗証碼 string
4 code 交易回傳碼 string
5 msg 回傳訊息 string
6 finishtime 退款處理完成時間(YYYYMMDDHHmmss) string
7 order_id 貴特店系統的訂單編號 string
8 user_id 消費者帳號 string
9 cost 申請之退款金額 string
10 currency 申請之退款幣別 string
11 actual_cost 實際退款金額 string
12 actual_currency 實際退款幣別 string
13 pfn 付費方法 string
14 echo_0 自訂回傳參數 1 string
15 echo_1 自訂回傳參數 2 string
16 echo_2 自訂回傳參數 3 string
17 echo_3 自訂回傳參數 4 string
18 echo_4 自訂回傳參數 5 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

範例程式碼