終於要進入成立訂單的部份了,先看一下成立訂單所需要的參數,
{
"ShopNo": "bank001" //永豐金提供的商店編號
"OrderNo": "202109141230" //店家自訂訂單編號
"Amount": 888 //訂單金額
"CurrencyID": "TWD" //幣別 固定為twd
"PrdtName": "商品名稱" //呈現於付款頁面上面的商品名稱
"ReturnURL": "user_back_url" //使用者付款完成後導向的頁面
"BackendURL": "notify_url" //付款完成通知server url
"PayType": "A" //付款方式 A: ATM付款, C: 信用卡付款
"ATMParam" : { //atm付款才需設定
"ExpireDate": "20210914" //atm付款截止日期為設定日期的晚上23:59:59,格式Ymd
}
"CardParam": { //信用卡付款才需設定
"ExpMinutes": 20 //信用卡付款連結失效時間,1-30分鐘
}
}
這邊只列出常用控制項目,以及atm、信用卡付款常用設定項目,
一些銀行請款相關設定都用預設,
以及要特別注意‘ATMParam’跟‘CardParam’,
是分別於atm付款及信用卡刷卡才會特別出現的參數,
然後把這些資料利用我們前幾天封裝好的函式進行測試,
apiService的組成可看Day7 永豐金API 基礎流程 -- 整理
$data; //上面上串資料
//記得設定order_api_url及nonce_api_url
$service = "OrderCreate"; //服務名稱
echo apiService($service, $data);
//response 信用卡
{
"OrderNo": "店家自訂訂單號",
"ShopNo": "商店店號",
"TSNo": "永豐金訂單號",
"Amount": 50000,
"Status": "S", //S:正常 F:失敗
"Description": "S0000 – 處理成功",
"PayType": "C",
"CardParam": {
"CardPayURL": "信用卡付款網址"
}
}
//response atm
{
"OrderNo": "店家自訂訂單號",
"ShopNo": "商店店號",
"TSNo": "永豐金訂單號",
"Amount": 50000,
"Status": "S", //S:正常 F:失敗
"Description": "S0000 – 處理成功",
"PayType": "A",
"ATMParam": {
"AtmPayNo": "atm匯款帳號",
"WebAtmURL": "web atm匯款url",
"OtpURL": "簡訊動態密碼otp付款 url"
}
}
這邊拿到response之後,在導向到對應的付款頁面,
信用卡導向到CardParam->CardPayURL,
ATM有幾個操作,首先是有直接提供匯款帳號的,所以是可以直接呈現在網站上,
讓使用者自行匯款,或者導向service或OtpURL進行線上付款,
依照目前大環境來說,我個人是偏好直接顯示匯款帳號,
讓使用者自行選擇現場匯款或者線上轉帳。
至於如果status為失敗,有太多種情況,
一步步依照提示的錯誤訊息進行debug即可,
比較容易出現的錯誤有json跟array的轉換,以及url多斜線/的情況,
稍微注意一下即可。