模擬串接服務 - 發票查詢

經銷商『發票查詢』請求欄位
Id Name Description Type Additional Information
1 agent_uid 經銷商商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/invoice" }
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\/invoice" }
JSON格式,AES256加密資料
3 encry_data 『發票查詢』欄位資料 string 必填
『發票查詢』欄位參考
JSON格式,AES256加密資料
發票查詢』欄位
Id Name Description Type Additional Information
1 uid 訂單 uid string
2 key 查詢驗證碼 string
發票查詢』回傳欄位
Id Name Description Type Additional Information
1 uid 原MYPAYLINK 之交易流水號 string
2 key 交易驗証碼 string
3 prc 主要交易回傳碼(retcode) string
4 order_id 貴特店系統的訂單編號 string
5 cost 交易金額 string
6 currency 交易幣別 string
7 actual_cost 實際交易金額 string
8 actual_currency 實際交易幣別 string
9 state 發票開立狀態
0.不處理(預設) 1等候處理中,2發票處理成功 3.發票處理失敗 4.作癈 5.系統服務異常 6.折讓
string
10 msg 發票開立狀態訊息 string
11 date 發票開立日期(YYYYMMDD) string
12 cancel_date 發票作廢時間(YYYYMMDDHHMMSS)) string
13 wordtrack 發票字軌 string
14 number 發票號碼 string
15 rand_code 隨機碼 string
16 seller_ban 賣方統編 string
17 seller_name 賣方名稱 string
18 buyer_ban 買方統編 string
19 buyer_name 買方名稱 string
20 left_qrcode 左邊QrCode(電子發票查詢碼) string
21 middle_barcode 中間Barcode (Code-39格式) string
22 right_qrcode 右邊QrCode(電子發票產品資訊-精簡版) string
23 title_type 電子發票列印標題格式 integer 『電子發票紙本列印標題類型』值參考
24 title 電子發票標題內容 string
25 print_type 電子發票列印類型 integer 『電子發票列印類型』值參考
26 print_device 電子發票列印設備 integer 『電子發票列印設備』值參考
27 amount 電子發票開立總額 string
28 sales_amount 電子發票銷售額 string
29 tax_amount 電子發票稅額 string
30 order_detail 電子發票開立之產品詳細資訊(JSON格式) string 『商品細項』值參考
31 ratetype 電子發票稅率別 integer 『電子發票稅率別』值參考
32 tax_rate 電子發票稅率:預設0.05(零稅與免稅帶0) float
33 remark 發票註記(依加值中心提供註記功能) string
34 input_type 電子發票開立類型 integer 『電子發票開立類型』值參考
35 cloud_type 電子發票開立類型-雲端發票類型 string 『雲端發票類型』值參考
36 mobile_code 當cloud_type為2時紀錄的手機條碼 string
37 tax_id 當cloud_type為2時紀錄的統一編號 string
38 tax_title 當cloud_type為2時紀錄的買受人公司名稱 string
39 natural_person 當cloud_type為3時紀錄的自然人憑證條碼 string
40 m_post_zone 當cloud_type為4時紀錄中獎時紙本發票郵遞區號 string
41 m_address 當cloud_type為4時紀錄中獎時紙本發票收件住址 string
42 love_code 當input_type為2時紀錄的愛心碼 string
43 b2b_title 當input_type為3時紀錄的發票抬頭 string
44 b2b_id 當input_type為3時紀錄的統一編號 string
45 b2b_post_zone 當input_type為3時紀錄的郵遞區號 string
46 b2b_address 當input_type為3時紀錄的發票地址 string
47 allowance 電子發票折讓資訊 array 每筆『電子發票折讓資訊』欄位參考
48 group_id 1.定期定額式扣款編號
2.定期分期式扣款編號
string
49 payment_name 定期定額式/定期分期式扣款名稱 string
50 nois 定期定額式/定期分期式扣繳期數 string
51 echo_0 自訂回傳參數 1 string
52 echo_1 自訂回傳參數 2 string
53 echo_2 自訂回傳參數 3 string
54 echo_3 自訂回傳參數 4 string
55 echo_4 自訂回傳參數 5 string
電子發票紙本列印標題類型』 值內容
Value Description Type Additional Information
1 文字 integer
2 圖形(圖片網址) integer
電子發票列印類型』 值內容
Value Description Type Additional Information
0 不列印 自行處置 integer
1 列印 電子發票 + 商品明細 integer
2 只印電子發票 integer
3 只印商品明細 integer
電子發票列印設備』 值內容
Value Description Type Additional Information
0 自行處理 integer
1 SUNMI V2 PRO 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
電子發票開立類型』 值內容
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
電子發票折讓資訊』欄位
Id Name Description Type Additional Information
1 uid 發生之退款交易流水號(UID) string
2 allowance_date 折讓時間 string
3 allowance_no 折讓單號 string
4 cancel_date 作廢時間 string
5 amount 電子發票折讓金額 integer
6 order_detail 電子發票折讓明細(JSON格式) 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

範例程式碼