除了昨天的成立訂單流程之外,還有個在處理特殊情況會用到的api,
正常情況所有的訂單紀錄會紀錄在我們自己的資料庫,
但金流api的對接有很大的機會會產生所謂的掉單,
也就是其中一方沒有接收到或者接收錯誤另一方發送的資訊,
導致的資訊落差,我們稱之為掉單,
最常見是成立訂單後沒有正確導向付款網址,
以及付款完成後沒有修改付款狀態的錯誤。
來人上範例!
{
"ShopNo": "商家名稱"
"OrderNo": "訂單編號" //option
"PayType": "A" //option 付款方式 A: atm C:信用卡
"OrderDateTimeS": "202109061200" //option 交易開始時間 格式YmdHi
"OrderDateTimeE": "202109061800" //option 交易結束時間 格式YmdHi
"PayDateTimeS": "202109061200" //option 付款開始時間 格式YmdHi
"PayDateTimeE": "202109061800" //option 付款結束時間 格式YmdHi
"PayFlag": "Y" //option 付款狀態 Y: 完成付款 N: 未完成付款 O: 逾期 (在atm跟信用卡有不同定義)
}
//apIService 可參考Day7 永豐金API 基礎流程5 -- 整理
echo apIService("OrderQuery", $data);
//response
{
"ShopNo": "商店編號",
"Date": "202109061614", //日期
"Status": "S",
"Description": "S0000 – 處理成功",
"OrderList": [
{
"OrderNo": "訂單編號",
"TSNo": "永豐金流單號",
"TSDate": "202109061536", //交易日期
"PayDate": "202109061540", //付款日期
"Amount": 50000,
"PayType": "A", //付款方式
"PayStatus": "1A400", //付款狀態
"ExpireDate": "202109162359", //atm帳號或者信用卡付款連結有效日期
"RefundFlag": "N", //有無退款
"RefundStatus": "", //退款狀態
"RefundDate": "", //退款日期
"PrdtName": "虛擬帳號訂單", //訂單名稱
"ATMParam": {
"AtmPayNo": "收款帳號",
"WebAtmURL": "webAtm url",
"OtpURL": "otp url",
"BankNo": "700", //使用者匯款銀行代號
"AcctNo": "012344777" //使用者匯款帳號
},
"RefundAmount": 0 //退款金額
}
]
}
可以看出來就是類似於一般cms會出現的訂單查詢,有幾點要注意
搜尋規則就少要有一種(訂單編號、付款方式、交易開始結束、付款狀態)
每次資料最多300筆
這邊建議使用訂單編號作為查詢即可,其餘的filter應該在自己DB的資料庫再做查詢,
該api通常是為了確定某筆有意外狀況的訂單使用,另外這邊response只列出atm,
信用卡大致相同,就是多了一些信用卡專有的參數。
查詢api的實際應用之後我們會特別說明,這邊先簡單跟大家介紹api所需參數以及
response,明天我們就會講到,訂單交易一個特別重要的環節,see you。