iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0

除了昨天的成立訂單流程之外,還有個在處理特殊情況會用到的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。


上一篇
Day08 永豐金API 建立訂單交易
下一篇
Day10 永豐金API 訂單通知服務
系列文
掌握訂單與線上金流的剪不斷理還亂30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言