模擬串接服務 - 電子錢包綁定與交易

經銷商『電子錢包綁定與交易』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "ocp", "cmd": "api\/ewallet" }
JSON格式,AES256加密資料
3 encry_data 『電子錢包綁定與交易』欄位資料 string 必填
『電子錢包綁定與交易』欄位參考
JSON格式,AES256加密資料
特約商店『電子錢包綁定與交易』請求欄位
Id Name Description Type Additional Information
1 store_uid 特約商店商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "ocp", "cmd": "api\/ewallet" }
JSON格式,AES256加密資料
3 encry_data 『電子錢包綁定與交易』欄位資料 string 必填
『電子錢包綁定與交易』欄位參考
JSON格式,AES256加密資料
電子錢包綁定與交易』欄位
Id Name Description Type Additional Information
1 user_id 使用者帳號 string 必填
2 type 電子錢包交易類型 string 必填
『電子錢包交易類型』值參考
3 return_url 交易結果通知網址 string
4 homepage_url 返回首頁連結 string 必填
電子錢包綁定與交易』回傳欄位
Id Name Description Type Additional Information
1 code 回傳碼 string 『電子錢包執行狀態碼』值參考
2 msg 回傳訊息 string
3 url 導頁網址 string
接收回報方式說明

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

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

電子錢包交易/退款完成通知』回報欄位
Id Name Description Type Additional Information
1 user_id 消費者帳號 string
2 code 交易狀態 string
3 msg 交易訊息(付款完成、退款完成) string
4 actual_cost 實際交易金額 string
5 actual_currency 實際交易幣別 string
6 finishtime 交易完成時間(YYYYMMDDHHmmss) string
7 store_uid 消費者交易之特約商店商務代號 string
8 store_name 消費者交易之特約商店名稱 string
9 order_id 消費者交易之特約商店的訂單編號 string
10 items 消費者交易之商品名稱 array 每筆『商品項目』欄位參考
電子錢包交易類型』 值內容
Value Description Type Additional Information
bind 綁卡 string
pay 交易 string
電子錢包執行狀態碼』 值內容
Value Description Type Additional Information
100 資料不正確 string
400 系統錯誤 string
B200 執行成功 string
B500 執行失敗 string
商品項目』欄位
Id Name Description Type Additional Information
1 id 商品編號 string
2 name 商品名稱 string
3 cost 商品單價 string
4 amount 商品數量 string
5 total 商品小計 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

範例程式碼