模擬串接服務 - 開立發票

經銷商『開立發票』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/issueinvoice" }
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\/issueinvoice" }
JSON格式,AES256加密資料
3 encry_data 『開立發票』欄位資料 string 必填
『開立發票』欄位參考
JSON格式,AES256加密資料
開立發票』欄位
Id Name Description Type Additional Information
1 store_uid 特約商店編號(金鑰中心會驗證) string
2 key 特約商店驗證碼 (store_token) string
3 uid 訂單編號(UID) string
4 invoice_input_type 電子發票開立類型 integer 『電子發票開立類型』值參考
5 invoice_cloud_type 「雲端發票」類型 string 當invoice_input_type為1,此狀態才有效
『雲端發票類型』值參考
6 invoice_tax_id 統一編號 string 當invoice_input_type為1,此欄位才有效,非必要
7 invoice_mobile_code 手機條碼 string 當invoice_cloud_type為2,此欄位才有效
8 invoice_natural_person 自然人憑證條碼 string 當invoice_cloud_type為3,此欄位才有效
9 invoice_m_post_zone EMail 紙本寄送郵遞區號 string 當invoice_cloud_type為4,此欄位才有效,非必須
10 invoice_m_address EMail 紙本寄送住址 string 當invoice_cloud_type為4,此欄位才有效,非必須
11 invoice_love_code 愛心碼 string 當invoice_input_type為2,此欄位才有效
12 invoice_b2b_title 發票抬頭 string 當invoice_input_type為3時,此欄位才有效
13 invoice_b2b_id 統一編號 string 當invoice_input_type為3時,此欄位才有效
14 invoice_b2b_post_zone 發票郵遞區號 string 當invoice_input_type為3時,此欄位才有效,非必須
15 invoice_b2b_address 發票地址 string 當invoice_input_type為3時,此欄位才有效
開立發票』回傳欄位
Id Name Description Type Additional Information
1 uid 原MYPAYLINK 之交易流水號 string
2 key 交易驗証碼 string
3 code 主要交易回傳碼(retcode) string
4 msg 主要交易回傳碼(retcode) string
5 order_id 貴特店系統的訂單編號 string
6 actual_cost 實際交易金額 string
7 actual_currency 實際交易幣別 string
8 state 發票開立狀態
0.不處理(預設) 1等候處理中,2發票處理成功 3.發票處理失敗 4.作癈
string
9 state_msg 發票開立狀態訊息 string
10 date 發票開立日期(YYYYMMDD) string
11 wordtrack 發票字軌 string
12 number 發票號碼 string
13 rand_code 隨機碼 string
14 seller_ban 賣方統編 string
15 buyer_ban 買方統編 string
16 left_qrcode 左邊QrCode(電子發票查詢碼) string
17 middle_barcode 中間Barcode (Code-39格式) string
18 right_qrcode 右邊QrCode(電子發票產品資訊-精簡版) string
19 title_type 電子發票列印標題格式 integer 『電子發票紙本列印標題類型』值參考
20 title 電子發票標題內容 string
21 amount 電子發票開立總額 string
22 sales_amount 電子發票銷售額 string
23 tax_amount 電子發票稅額 string
24 order_detail 電子發票開立之產品詳細資訊(JSON格式) string 『商品細項』值參考
25 ratetype 電子發票稅率別 integer 『電子發票稅率別』值參考
26 input_type 電子發票開立類型 integer 『電子發票開立類型』值參考
27 echo_0 自訂回傳參數 1 string
28 echo_1 自訂回傳參數 2 string
29 echo_2 自訂回傳參數 3 string
30 echo_3 自訂回傳參數 4 string
31 echo_4 自訂回傳參數 5 string
電子發票開立類型』 值內容
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
1 文字 integer
2 圖形(圖片網址) integer
商品細項』欄位
Id Name Description Type Additional Information
1 Description 商品名稱 string 必填
2 Quantity 數量 string 必填
3 UnitPrice 單價 string 必填
4 Amount 總金額 string 必填
電子發票稅率別』 值內容
Value Description Type Additional Information
1 應稅(預設) integer
2 零稅率 integer
3 免稅 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

範例程式碼