模擬串接服務 - 掃碼交易-街口線上

特約商店『掃碼交易-街口線上』請求欄位
Id Name Description Type Additional Information
1 store_uid 特約商店商務代號
string 必填
2 service 服務名稱
string 必填
{ "service_name": "api", "cmd": "api\/postransaction" }
JSON格式,AES256加密資料
3 encry_data 『掃碼交易-街口線上』欄位資料 string 必填
『掃碼交易-街口線上』欄位參考
JSON格式,AES256加密資料
掃碼交易-街口線上』欄位
Id Name Description Type Additional Information
1 store_uid 特約商店代碼 string 必填
2 cost 訂單總金額 string 必填
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 pfn 支付方式支援的方式有
CREDITCARD(信用卡)
OFFLINE(線下交易)
LINEPAYON(LINEPay線上)
PION(Pi錢包線上)
WECHAT(微信線上)
ALIPAY(支付寶線上)
JKOON(街口支付線上)
EASYWALLETON(悠遊付線上)
string
12 discount 折價金額 (預設0) string
13 shipping_fee 運費 string
14 user_id 消費者帳號 string
15 user_name 消費者姓名 string
16 user_real_name 消費者真實姓名 string
17 user_english_name 消費者英文名稱 string
18 user_zipcode 消費者郵遞區號 string
19 user_address 消費者地址 string
20 user_sn_type 證號類型 string 『證號類型』值參考
21 user_sn 付款人身分證/統一證號/護照號碼 string
22 user_phone 消費者家用電話 string
23 user_cellphone_code 消費者行動電話國碼 string
24 user_cellphone 消費者行動電話 string
25 user_email 消費者 E-Mail string
26 user_birthday 消費者生日 string
27 ip 消費者來源 IP string
28 issue_invoice_state 開立發票 integer 『電子發票是否開立狀態』值參考
29 invoice_ratetype 電子發票稅率別 integer 『電子發票稅率別』值參考
30 invoice_tax_rate 電子發票稅率:預設0.05(零稅與免稅帶0) float
31 invoice_remark 發票註記(依加值中心提供註記功能) string
32 invoice_input_type 電子發票開立類型 integer 『電子發票開立類型』值參考
33 invoice_cloud_type 「雲端發票」類型 integer 當invoice_input_type為1,此狀態才有效
『雲端發票類型』值參考
34 invoice_tax_id 統一編號 string 當invoice_input_type為1,此欄位才有效,非必要
35 invoice_mobile_code 手機條碼 string 當invoice_cloud_type為2,此欄位才有效
36 invoice_natural_person 自然人憑證條碼 string 當invoice_cloud_type為3,此欄位才有效
37 invoice_m_post_zone EMail 紙本寄送郵遞區號 string 當invoice_cloud_type為4,此欄位才有效,非必須
38 invoice_m_address EMail 紙本寄送住址 string 當invoice_cloud_type為4,此欄位才有效,非必須
39 invoice_love_code 愛心碼 string 當invoice_input_type為2,此欄位才有效
40 invoice_b2b_title 發票抬頭 string 當invoice_input_type為3時,此欄位才有效
41 invoice_b2b_id 統一編號 string 當invoice_input_type為3時,此欄位才有效
42 invoice_b2b_post_zone 發票郵遞區號 string 當invoice_input_type為3時,此欄位才有效,非必須
43 invoice_b2b_address 發票地址 string 當invoice_input_type為3時,此欄位才有效
44 data_json 聚合線下掃碼資訊,JSON字串格式
若pfn=OFFLINE此欄位才有效
特約商店如果自行掃碼,可直接帶入此欄位資訊,若透過刷卡機則可忽略帶此欄位
string 非必填
『錢包被掃交易資料』值參考
45 device_name 設備編號 string
46 invoice_print_type 發票列印類型(預設只印電子發票) integer 『電子發票列印類型』值參考
掃碼交易-街口線上』回傳欄位
Id Name Description Type Additional Information
1 code 回傳碼 string
2 msg 回傳訊息 string
商品項目』欄位
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
錢包被掃交易資料』欄位
Id Name Description Type Additional Information
1 qrCode qrcode 交易碼 string 必填
電子發票列印類型』 值內容
Value Description Type Additional Information
0 不列印 自行處置 integer
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

範例程式碼