跳到主要内容

交易查詢

查詢接口端點

當商戶發起付款、退款或取消交易後,可使用本查詢接口獲取該交易的處理狀態。

支援的查詢方式:

  • 透過 QFPay 訂單號 syssn
  • 透過商戶自訂訂單號 out_trade_no
  • 或者以時間區間 start_time / end_time 查詢

若查詢的是退款交易,回應中會額外返回欄位 origssn,對應原始交易的 syssn

HTTP 請求

  • 端點/trade/v1/query
  • 方法POST

Header:

Content-Type: application/x-www-form-urlencoded
X-QF-APPCODE: <your-app-code>
X-QF-SIGN: <signature>

請求參數

完整格式請參見 通用 API 請求格式,以下為交易查詢相關的主要欄位:

參數類型是否必填說明
mchidString(16)視情況若系統有配置商戶編號則必填,否則不可填寫
syssnString(128)QFPay 訂單號,可為多筆,以逗號分隔
out_trade_noString(128)商戶訂單號,可為多筆,以逗號分隔
pay_typeString(6)支付類型,可多筆,用逗號分隔
respcdString(4)指定回傳狀態碼(如:0000)
start_timeString(20)開始時間。格式:YYYY-MM-DD hh:mm:ss。跨月份查詢必填
end_timeString(20)結束時間。格式:YYYY-MM-DD hh:mm:ss。跨月份查詢必填
pageInteger預設為 1
page_sizeInteger預設為 10,最大值為 100
import urllib.request, urllib.parse, urllib.error, urllib.request, urllib.error, urllib.parse, hashlib
import requests
from hashids import Hashids
import datetime
import string
import random

# 輸入用戶端憑證
environment = 'https://test-openapi-hk.qfapi.com'
app_code = 'D5589D2A1F2E42A9A60C37**********'
client_key = '0E32A59A8B454940A2FF39**********'

# 建立資料請求所需的參數值
current_time = datetime.datetime.now().replace(microsecond=0)
random_string = ''.join(random.choices(string.ascii_uppercase + string.digits, k=32))


# 產生簽名
def make_req_sign(data, key):
keys = list(data.keys())
keys.sort()
p = []
for k in keys:
v = data[k]
p.append('%s=%s'%(k,v))
unsign_str = ('&'.join(p) + key).encode("utf-8")
s = hashlib.md5(unsign_str).hexdigest()
return s.upper()


# 請求內容主體
mchid = 'ZaMVg*****' # 只適用於渠道商
syssn = '20191227000200020061752831' # 使用QFPay內部訂單號查詢
out_trade_no = '2019122722001411461404119764' # 使用商戶訂單號查詢
start_time = '2019-12-27 00:00:00'
end_time = '2019-12-27 23:59:59'
key = client_key


#data ={'mchid': mchid, 'syssn': syssn, 'out_trade_no': out_trade_no, 'start_time': start_time, 'end_time': end_time}
data ={'mchid': mchid, 'syssn': syssn}

r = requests.post(environment+"/trade/v1/query",data=data,headers={'X-QF-APPCODE':app_code,'X-QF-SIGN':make_req_sign(data, key)})

print(make_req_sign(data, key))
print(r.json())

回應參數

詳細欄位請見 通用 API 回應格式,以下為交易查詢常見欄位:

欄位類型說明
syssnStringQFPay 訂單號
out_trade_noString商戶訂單號
txamtInteger訂單金額(單位為分)
txcurrcdString幣種代碼,如 HKD,詳見 幣別表
respcdString交易結果代碼,詳見 狀態碼
errmsgString交易結果說明
order_typeString訂單類型:paymentrefund
pay_typeString支付通道代碼
cancelString撤銷/退款標記。詳見 退款說明
cash_feeString使用者實際付款金額(扣除折扣後)
cash_fee_typeString實際支付幣別,如 CNY
cash_refund_feeString實際退款金額
cash_refund_fee_typeString退款幣別
exchange_rateString若為跨幣種交易,返回匯率
sysdtmStringQFPay 系統交易時間
txdtmString商戶請求交易時間
chnlsnString錢包/通道交易號
origssnString原始交易號(僅退款時提供)
{
"respcd": "0000",
"resperr": "Request successful",
"data": [
{
"syssn": "20230423000200020088888888",
"out_trade_no": "YOUR_ORDER_001",
"txamt": "100",
"txcurrcd": "HKD",
"respcd": "0000",
"errmsg": "success",
"pay_type": "801107",
"order_type": "payment",
"txdtm": "2023-04-23 12:00:00",
"sysdtm": "2023-04-23 12:00:03",
"cancel": "0",
"cash_fee": "100",
"cash_fee_type": "HKD"
}
]
}

對帳報表下載

各支付通道的清算對帳報表會定期生成,僅支援在 正式環境 呼叫,並返回壓縮檔案(ZIP)。

HTTP 請求

  • 端點/download/v1/trade_bill
  • 方法GET

請求參數

參數類型是否必填說明
trade_dateString(10)報表日期。格式:YYYY-MM-DD,如 2023-04-01