模擬串接服務 - 電子錢包直接交易

經銷商『電子錢包直接交易』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "ocp", "cmd": "api\/directdeal" }
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\/directdeal" }
JSON格式,AES256加密資料
3 encry_data 『電子錢包直接交易』欄位資料 string 必填
『電子錢包直接交易』欄位參考
JSON格式,AES256加密資料
電子錢包直接交易』欄位
Id Name Description Type Additional Information
1 store_uid 特約商店代碼 string 必填
2 cost 訂單總金額 integer 必填
3 currency 預設交易幣別(預設為TWD新台幣) string
4 order_id 訂單編號 string 必填
5 items 訂單內物品數 array 每筆『商品項目』欄位參考
6 echo_0 自訂回傳參數 1 string
7 echo_1 自訂回傳參數 2 string
8 echo_2 自訂回傳參數 3 string
9 echo_3 自訂回傳參數 4 string
10 echo_4 自訂回傳參數 5 string
11 user_id 消費者帳號 string 必填
12 user_name 消費者姓名 string
13 user_real_name 消費者真實姓名 string
14 user_english_name 消費者英文名稱 string
15 user_zipcode 消費者郵遞區號 string
16 user_address 消費者地址 string
17 user_sn_type 證號類型 string 『證號類型』值參考
18 user_sn 付款人身分證/統一證號/護照號碼 string
19 user_phone 消費者家用電話 string
20 user_cellphone_code 消費者行動電話國碼 string
21 user_cellphone 消費者行動電話 string
22 user_email 消費者 E-Mail string
23 user_birthday 消費者生日 string
24 ip 消費者來源 IP string 必填
25 issue_invoice_state 開立發票 integer 『電子發票是否開立狀態』值參考
26 invoice_ratetype 電子發票稅率別 integer 『電子發票稅率別』值參考
27 invoice_tax_rate 電子發票稅率:預設0.05(零稅與免稅帶0) float
28 invoice_remark 發票註記(依加值中心提供註記功能) string
29 invoice_input_type 電子發票開立類型 integer 『電子發票開立類型』值參考
30 invoice_cloud_type 「雲端發票」類型 integer 當invoice_input_type為1,此狀態才有效
『雲端發票類型』值參考
31 invoice_tax_id 統一編號 string 當invoice_input_type為1,此欄位才有效,非必要
32 invoice_mobile_code 手機條碼 string 當invoice_cloud_type為2,此欄位才有效
33 invoice_natural_person 自然人憑證條碼 string 當invoice_cloud_type為3,此欄位才有效
34 invoice_m_post_zone EMail 紙本寄送郵遞區號 string 當invoice_cloud_type為4,此欄位才有效,非必須
35 invoice_m_address EMail 紙本寄送住址 string 當invoice_cloud_type為4,此欄位才有效,非必須
36 invoice_love_code 愛心碼 string 當invoice_input_type為2,此欄位才有效
37 invoice_b2b_title 發票抬頭 string 當invoice_input_type為3時,此欄位才有效
38 invoice_b2b_id 統一編號 string 當invoice_input_type為3時,此欄位才有效
39 invoice_b2b_post_zone 發票郵遞區號 string 當invoice_input_type為3時,此欄位才有效,非必須
40 invoice_b2b_address 發票地址 string 當invoice_input_type為3時,此欄位才有效
電子錢包直接交易』回傳欄位
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 每筆『商品項目』欄位參考
商品項目』欄位
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
證號類型』 值內容
Value Description Type Additional Information
1 身份證字號(預設) integer
2 統一證號 integer
3 護照號碼 integer
電子發票是否開立狀態』 值內容
Value Description Type Additional Information
0 不開立電子發票 integer
1 開立電子發票 integer
2 依系統設定(預設) integer
電子發票稅率別』 值內容
Value Description Type Additional Information
1 應稅(預設) integer
2 零稅率 integer
3 免稅 integer
電子發票開立類型』 值內容
Value Description Type Additional Information
0 未使用電子發票開立 integer
1 雲端發票 integer
2 發票捐贈 integer
3 實體發票 integer
雲端發票類型』 值內容
Value Description Type Additional Information
0 未使用雲端發票類型 integer
2 手機條碼 integer
3 自然人憑證條碼 integer
4 以E-Mail寄送 integer
電子錢包執行狀態碼』 值內容
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

範例程式碼