模擬串接服務 - 代收款核銷撥款請求

經銷商『代收款核銷撥款請求』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/requestpayment" }
JSON格式,AES256加密資料
3 encry_data 『代收款核銷撥款請求』欄位資料 string 必填
『代收款核銷撥款請求』欄位參考
JSON格式,AES256加密資料
代收款核銷撥款請求』欄位
Id Name Description Type Additional Information
1 store_uid 特約商店編號 string 必填
2 uid 訂單編號(UID) string 必填
3 key 交易驗証碼 string 必填
4 reimbursement_date 請款日期(限今日起兩個月內)(格式YYYYMMDD) string 必填
5 completion_date 商品與服務交付完成日期(格式YYYYMMDD) string 必填
6 service_type 服務提供方式 1.貨運2.課程3.票券4.講座活動5.數位商品6.點數捐贈7.個人贊助 integer 必要
『經銷商代收款核銷服務提供方式』值參考
7 freight_name 貨運廠商名稱(服務方式為貨運時必填) string
8 freight_no 貨運編號(服務方式為貨運時必填) string
代收款核銷撥款請求』回傳欄位
Id Name Description Type Additional Information
1 code 交易回傳碼(B200或B500或100) string
2 msg 回傳訊息 string
3 appropriation_date 預計撥款日 string
4 store_gateway_fee 金流服務費 float
5 domestic_store_sms_fee 國內簡訊費 float
6 foreign_store_sms_fee 國外簡訊費 float
經銷商代收款核銷服務提供方式』 值內容
Value Description Type Additional Information
1 貨運 integer
2 課程 integer
3 票券 integer
4 講座活動 integer
5 數位商品 integer
6 點數捐贈 integer
7 個人贊助 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

範例程式碼