Appearance
超商代碼訂單
路徑:/admin/query/cvs | 快捷鍵:6 → Q
查詢所有超商代碼(CVS)的訂單紀錄,包含訂單全生命週期的詳細資訊、供應商通訊紀錄與商戶回調紀錄。
篩選條件
| 篩選項目 | 說明 |
|---|---|
| 時間類型 | 選擇以「建立時間」或「付款時間」作為日期篩選依據 |
| 日期範圍 | 日期範圍,預設為今日。提供「本日 / 昨日 / 本周 / 本月」快捷按鈕可快速選取 |
| 訂單號查詢 | 依系統訂單號或商戶訂單號搜尋,支援搜尋歷史紀錄 |
| 狀態 | 訂單狀態篩選(全部 / PENDING / PROCESSING / SUCCESS / SETTLED 等),支援複選多個狀態同時篩選 |
| 商戶 | 特定商戶或全部 |
| 服務通道 | 特定供應商(服務通道)或全部。(站點限定) 部分站點會一併列出已停用的通道,查得到那些卡的歷史訂單 |
| 繳費通路 | 指定超商通路,或選「全部方式」 |
| 繳費店號 | 依繳費門市代號搜尋 |
| 黑名單 | 多選篩選,可選擇命中的特定欄位類型(姓名 / 手機 / 身分證),採 AND 邏輯(同時符合所有勾選欄位),各選項附有清除按鈕 |
| 預約異常 | 站點限定。只看預約異常的訂單 —— 開單時有帶預約綁定(指定繳費超商通路/門市),但實際繳費與綁定內容不符者。選「全部」即維持原本查詢結果;未啟用的站點不顯示此欄位 |
| 付款人姓名 | 依付款人姓名搜尋 |
| 付款人電話 | 依付款人電話搜尋 |
| 付款人信箱 | 依付款人電子信箱搜尋 |
搜尋歷史
訂單號搜尋欄位支援自動記錄搜尋歷史。Focus 搜尋框時會顯示最近 10 筆搜尋過的關鍵字,點擊即可快速再次搜尋。每筆歷史可單獨刪除,也可一鍵清除全部。
統計摘要
篩選區域右側永遠顯示即時統計:
| 統計項目 | 說明 |
|---|---|
| 總手續費 | 符合篩選條件的手續費合計(點擊可看費用說明) |
| 總服務費 | 符合篩選條件的服務費合計 |
| 合計費用 | (站點限定) 總手續費 + 總服務費,接在上面兩項之後、用不同底色標示;其他站點不顯示這一格 |
| 總訂單數 | 符合篩選條件的訂單總數 |
| 總金額 | 符合篩選條件的訂單金額合計 |
所有統計都跟著篩選條件即時變動,換了日期或狀態就會重算。
桌機上統計以多欄並排;手機上一律改成一欄(每格佔滿寬度),避免金額被切掉。
表格欄位
點服務通道直接篩選(站點限定)
部分站點的表格「服務通道」那一格是可點的,點下去會把篩選列的服務通道換成那張卡並重查 —— 詳見 ATM 訂單頁的說明,四種訂單查詢頁行為相同。
框選複製不會展開列
想複製格子裡的文字(訂單號、虛擬帳號、繳費代碼、會員帳號…)時,用滑鼠框選不會誤觸展開明細。 單純點一下仍然照常展開,詳見系統後台概覽。
| 欄位 | 說明 |
|---|---|
| 序號 | 列表序號 |
| 建立時間 | 訂單建立的日期時間 |
| 商戶 | 商戶名稱與代碼 |
| 付款時間 | 付款完成的日期時間 |
| 供應商 | 處理此訂單的供應商名稱 |
| 金額 | 訂單金額 |
| 繳費代碼 | CVS 超商繳費代碼(顯示通路/代碼,可複製) |
| 繳費通路 | 實際繳費的通路與門市 |
| 狀態 | 訂單狀態 badge(含預約異常、黑名單警示) |
| Cashier URL | 結帳連結(可複製) |
| 操作 | 功能按鈕 |
| 系統訂單號 | 系統產生的訂單編號(可複製,位於最末欄位) |
| 商戶訂單號 | 商戶端的訂單編號(位於最末欄位) |
訂單狀態說明
| 狀態 | 說明 |
|---|---|
| PENDING | 訂單已建立,等待取號 |
| PROCESSING | 已取得繳費代碼,等待付款 |
| SUCCESS | 付款成功 |
| SETTLED | 已下撥 |
| REFUNDED | 已退款(站點限定,詳見訂單退款) |
| EXPIRED | 超過繳費期限 |
| FAILED | 訂單失敗 |
狀態 Badge 顏色
七種訂單狀態的 Badge 顏色皆已調整為互不重複,其中 REFUNDED(已退款)使用紫色,可與其他狀態一眼區分。
預約異常警示
當系統偵測到訂單的「預約通路/門市」與「實際繳費通路/門市」不一致時,會在狀態欄位旁顯示紅色閃爍的 「預約異常」 警示標籤。支援多組預約時,任一組匹配即通過驗證。
後端驗證機制
預約異常的偵測完全由後端處理,前端僅讀取後端回傳的驗證結果。後端在查詢訂單時會自動重新驗證異常標記,確保因規則調整而變成正常的訂單不再顯示假警報。
展開該訂單的詳情可看到:
- 異常原因說明
- 預約通路 vs. 實際通路的比對
黑名單警示
當訂單的付款人資訊(姓名/手機/信箱/身分證字號)命中黑名單時,狀態欄位旁會顯示橘色閃爍的 「黑名單」 警示標籤。
- 不阻擋回調:僅標記提醒,不影響商戶回調流程
- 可與預約異常並存:同一筆訂單可同時顯示紅色「預約異常」與橘色「黑名單」
展開該訂單的詳情可看到:
- 命中項目(姓名/手機/信箱/身分證字號)
- 命中的值與備註說明
列色彩標記
訂單表格以背景色標記異常訂單,方便快速辨識:
| 顏色 | 說明 |
|---|---|
| 橘色背景 | 命中黑名單 |
| 紅色背景 | 預約異常 |
| 紅橘漸層背景 | 同時命中黑名單與預約異常(50/50 分割漸層) |
頁面頂部提供 「色彩圖例」 文字按鈕,點擊可展開/收合色彩說明。
展開訂單詳情
點擊任一訂單列可展開五區塊的詳細資訊:
1. 預約資訊
- 預約驗證(多組,顯示每組的通路/門市)
- 付款人姓名
- 付款人信箱
- 付款人電話
- 商品描述
2. 超商資訊
- 指定通路
- 繳費代碼
- 繳費期限
- 條碼 1/2/3(若有)
3. 繳費結果
- 實際繳費通路
- 實際繳費門市代號
- 付款時間
- 實際付款金額
4. 撥款資訊
- 下撥時間
- 撥款批次號(可點擊跳轉至撥款歷程頁面)
- 服務費(預估值)
- 手續費(預估值)
5. 發票資訊
- 發票號碼
- 發票金額
- 發票稅率
- 作廢狀態(若發票已作廢,顯示作廢標記與時間)
狀態變更歷程
展開訂單後,底部顯示狀態變更歷程表,完整記錄每一次狀態轉換的上下文:
| 欄位 | 說明 |
|---|---|
| 時間 | 狀態變更的時間 |
| 原狀態 | 變更前的狀態 |
| 新狀態 | 變更後的狀態 |
| 觸發來源 | 建立 / 供應商回調 / 人工補登 / 撥款 / 系統 |
| 操作者 | 商戶代碼(建立時)、操作人員帳號(人工補登/撥款時)、或 -(供應商回調) |
| IP | 觸發此變更的來源 IP 位址 |
| 裝置 | User-Agent(瀏覽器/裝置資訊,滑鼠移入可查看完整字串) |
| 指紋 | 瀏覽器指紋識別碼(僅人工操作時記錄) |
| 描述 | 完善的變更說明,例如:「商戶 XXXX 建立 CVS 訂單, 金額 500」、「供應商回傳繳費資訊 (CatPay)」、「人工補登 CVS」、「batch BATCH-xxx」 |
追蹤與稽核
狀態變更歷程完整記錄了 IP、裝置指紋與 User-Agent,可供安全稽核與問題追蹤使用。供應商回調會記錄回調伺服器的 IP 與 User-Agent;人工操作會記錄管理員的瀏覽器指紋。
操作按鈕
商戶回調紀錄
點擊 Webhook 圖示開啟彈窗,顯示:
- 訂單號
- 回調網址(商戶設定的 notifyUrl)
- 人工補發回調 按鈕(僅 SUCCESS/SETTLED 狀態且有 notifyUrl 時顯示)
- 回調嘗試列表:每次嘗試顯示次數、時間(台灣時間)、HTTP 回應狀態碼、請求內容(JSON)、回應內容
人工補發回調
若商戶端未正確接收回調通知,可使用此功能重新發送。操作前會要求二次確認。
供應商通訊紀錄
點擊檔案圖示開啟彈窗,顯示:
- 發送給供應商:系統發送給上游供應商的原始請求(JSON,可複製)
- 供應商回應:供應商回傳的原始回應(JSON,可複製)
- 供應商回調紀錄:每筆回調顯示類型(取號回調/繳費回調)、時間(台灣時間)、狀態、原始資料(JSON,可複製)
人工補登
僅在 PROCESSING 狀態的訂單顯示,用於手動確認付款。需要二階段確認。
訂單退款(站點限定)
部分站點提供訂單退款功能,可將已付款的訂單標記為 已退款(REFUNDED)。
顯示條件(三者皆須成立):
- 站點已啟用訂單退款功能
- 位於 系統後台(商戶後台不提供此功能)
- 操作者具備對應的退款權限
操作流程:
- 訂單狀態為 SUCCESS(已付款)時,操作欄會顯示藍色的退款圖示
- 點擊後開啟確認彈窗,顯示訂單號、訂單金額、目前狀態
- 確認後訂單狀態變更為 REFUNDED
退款後的行為:
- 系統會發送 商戶回調通知(
status=REFUNDED),商戶端可據此更新自己的訂單狀態 - 該筆操作會寫入狀態變更歷程與操作歷程稽核紀錄
- 展開詳情時,繳費結果與發票資訊仍保留原值(繳費通路、繳費門市、實際付款金額、發票號碼等不會變成
-)
僅限已付款訂單
只有 SUCCESS 狀態的訂單可以退款。已下撥(SETTLED)、待付款(PROCESSING)等其他狀態不會顯示退款按鈕,直接呼叫 API 也會被拒絕。
權限代碼(依訂單的付款方式動態判斷):
| 付款方式 | 所需權限 |
|---|---|
| 超商代碼 | queryCvs.refund |
| ATM | queryAtm.refund |
| 信用卡 | queryCreditCard.refund |
| 幣商 | queryCoin.refund |
INFO
上述權限僅在啟用訂單退款功能的站點才會出現在角色列表的權限編輯彈窗中。
編輯訂單金額(站點限定)
部分站點提供訂單金額人工編輯功能,可編輯的情境有兩種:
- 已付款(已付款、已撥款):付款人實際匯入的金額與開單金額不一致時(卡對卡、ATM 轉帳尤其常見),把訂單金額改成實收金額,系統會立即以新金額重新回調商戶,商戶端的帳才對得平。
- 待付款:訂單還沒收到錢,改的是開單金額本身。這一種不會通知商戶、不會動通道累計金額,而且付款人手上的繳費代碼不會跟著改(見下方說明)。
顯示條件(三者皆須成立):
- 站點已啟用訂單金額編輯功能
- 位於 系統後台(商戶後台不提供此功能)
- 操作者具備對應的編輯權限
操作流程:
- 訂單狀態為 已付款(未下撥)、已撥款 或 待付款 時,操作欄會顯示橘色的鉛筆圖示(待驗證、已過期、無效訂單一律不提供)
- 點擊後開啟彈窗,顯示訂單號、商戶訂單號、目前金額
- 填入新金額(必填),並可填寫調整原因(選填,會寫進紀錄供事後追查)
- 確認後金額立即生效
編輯後的行為:
| 行為 | 已付款/已撥款 | 待付款 |
|---|---|---|
| 商戶回調通知 | 立即以新金額重發一次(驗簽碼一併重算) | 不發送 |
| 通道累計收款金額 | 依差額自動補正 | 不調整(付款成功時才會累計) |
| 付款人看到的收銀台頁面 | 即時更新 | 不更新 |
| 「已修改」標記 | 出現 | 出現 |
| 狀態變更歷程與稽核紀錄 | 寫入 | 寫入(並註明未通知商戶) |
共通的部分:繳費統計、下撥金額、匯出報表全部以新金額計算,口徑一致;訂單列表的金額欄會出現 「已修改」 標記,滑鼠移上去可看原始開單金額。
待付款訂單為什麼不通知商戶
商戶回調通知的內容一律是「付款成功」。對一筆還沒收到錢的訂單發出去,商戶會誤以為款項已到而出貨或加值。因此待付款訂單改金額時不發送任何通知 —— 若商戶需要知道新金額,請另行告知。
編輯待付款訂單
待付款訂單改的是開單金額,但有一件事改不掉:付款人手上的繳費代碼、虛擬帳號在取號當下就綁定了原本的金額,供應商端沒有提供修改的介面。
也就是說:
- 付款人到超商或 ATM 繳的,仍然是原本的金額
- 平台這一側記錄的是新金額,日後的統計、撥款、回調商戶也都用新金額
- 兩者的差額不會自動被發現
因此編輯待付款訂單時,彈窗會換成一段紅色警語,請務必看完再確認。
付款進來之後,如果實際繳的金額與平台記錄不同,訂單列表的金額欄會多出一個紅色的 「金額不符」 標記,滑鼠移上去可以看到付款人實際繳了多少。看到這個標記就表示這筆需要人工處理帳差。
什麼時候該用這個功能
如果目的是「付款人繳了不一樣的金額,要以實收為準記帳」,正確做法是等付款進來(或用人工補登),再編輯已付款的訂單 —— 那樣不會有代碼對不上的問題。
如果目的是「商戶反悔要改單」,比較安全的做法是刪除訂單重新開單,讓舊代碼失效。
編輯已撥款訂單
已撥款(SETTLED)的訂單同樣可以編輯金額,但款項早已入商戶錢包,系統不會自動補扣或補入差額 —— 這與訂單退款採完全相同的做法:平台不做任何金流動作,只把調帳依據留給人員。
編輯已撥款訂單時,彈窗會額外顯示三個數字:
| 欄位 | 說明 |
|---|---|
| 結算批次號 | 這筆訂單當初是哪一個批次撥出去的 |
| 當初入帳淨額 | 訂單原金額 − 結算時固化的手續費 − 結算時固化的服務費,也就是商戶實際收到的錢 |
| 調整後淨額 | 用新金額重算的淨額(手續費是每筆固定不隨金額變動,沿用原值;服務費按商戶目前費率重算) |
| 應調帳金額 | 兩者的差額。正數代表要補給商戶,負數代表要從商戶扣回 |
拿著這個數字到雲端餘額頁面手動調整即可。該筆操作的批次號與應調帳金額會一併寫進訂單的狀態變更歷程與操作歷程,方便事後查核是否確實完成調帳。
撥款紀錄的批次金額不會跟著改
撥款歷程裡的批次總額、服務費、淨額都是撥款當下的快照,記錄的是「當時實際撥了多少」這個事實,不會被追溯改寫。
因此批次明細彈窗上半部的金額與下半部的訂單現值會對不起來 —— 這是刻意的。該批次只要有訂單事後被調整過金額,彈窗就會出現提示,告訴你差異從何而來、有幾筆。
以下情形一律拒絕
直接呼叫 API 也會被擋:
| 情形 | 原因 |
|---|---|
| 待驗證 | 供應商還沒回取號,取號回來時繳費資訊會被覆寫,改了也留不住 |
| 已開立發票 | 發票金額已申報,只能走折讓,不能靠改單掩蓋 |
| 已退款/已過期/失敗 | 沒有實際金流,改了沒有意義 |
繳費統計的口徑
結算時固化在訂單上的手續費與服務費不會重算(那兩個數字的語意是「當初實際收了多少」,退款計算應扣回金額要靠它)。因此已撥款訂單改金額後,繳費統計的「已下撥金額」會跟著新金額移動,而服務費維持原值。這是已知且刻意的口徑差異,與訂單退款的處理方式一致。
此操作無法復原
已付款與已撥款的訂單,金額一旦送出就會立刻回調給商戶;待付款的訂單雖然不發回調,但付款人手上的繳費代碼已經發出去了,同樣救不回來。
系統只保留第一次編輯前的原始開單金額,中間每一次的調整記錄在訂單的狀態變更歷程中。
權限代碼(依訂單的付款方式動態判斷):
| 付款方式 | 所需權限 |
|---|---|
| 超商代碼 | queryCvs.editAmount |
| ATM | queryAtm.editAmount |
| 信用卡 | queryCreditCard.editAmount |
| 幣商 | queryCoin.editAmount |
INFO
上述權限僅在啟用訂單金額編輯功能的站點才會出現在角色列表的權限編輯彈窗中。
刪除訂單
點擊刪除按鈕後需輸入 TOTP 二階段驗證碼 才能刪除訂單。
DANGER
刪除訂單是不可復原的操作,請謹慎使用。
匯出 CSV
點擊 「匯出」 按鈕,依據目前篩選條件匯出所有訂單(上限 99,999 筆)。
匯出欄位包含表格可見欄位,以及展開詳情中的所有欄位(預約資訊、超商資訊、繳費結果、撥款資訊、發票資訊)。
檔案命名格式:cvs-orders-{日期}.csv
即時更新
頁面透過 WebSocket 連線即時接收訂單狀態變更。當有新的繳費代碼、付款完成或其他狀態變更時,列表中的對應訂單會自動更新,無需手動重新整理。
即時更新只管「已經在列表裡」的訂單
WebSocket 更新的是畫面上已有的那幾筆。新建立的訂單不會自己冒出來 —— 要看新單請用下面的自動刷新,或按查詢。
自動刷新(站點限定)
部分站點在表格右上角提供 自動刷新 下拉,可選 不自動刷新/每 15 秒/每 30 秒/每 2 分鐘/每 5 分鐘,預設不開啟。
它只重新抓訂單資料並併進現有列表,不會重新整理整個頁面:
- 已經往下捲載入的第二頁、第三頁原封不動,捲軸不會跳回頂端
- 展開中的訂單不會收起來
- 篩選條件、日期範圍維持不變
- 刷新當下只有下拉旁邊轉一個小圈,表格不閃
新訂單會出現在列表最上方(訂單本來就依建立時間由新到舊排列),旁邊會顯示上次更新的時間。
不需要瀏覽器的自動刷新外掛
外掛是整頁重新載入,每次都要重跑一次系統初始化,捲軸位置與展開的訂單全部消失。內建的這個只換表格資料,其他都不動。
這幾種情況會自動暫停(避免打擾操作、也避免沒必要的查詢):
| 情況 | 原因 |
|---|---|
| 切到其他分頁或視窗 | 沒人在看就不查詢。切回來會立刻更新一次,再繼續計時 |
| 正在查詢或正在載入下一頁 | 兩份資料同時回來會互相蓋掉 |
| 任何操作視窗開著(人工補登、編輯金額、退款、刪除…) | 你正在對某一筆做事,資料在腳下換掉會對不上 |
日期範圍不會跟著換日
選「本日」之後,日期範圍在你按下查詢的當下就固定了。開著自動刷新跨過午夜,它仍然抓的是前一天的資料 —— 換日後請重新按一次查詢。
設定會依「系統後台/商戶後台」與付款方式分別記住,例如 ATM 訂單頁設每 30 秒,不會影響超商訂單頁。
每個分頁各自獨立
自動刷新的設定只屬於當前這個分頁。同一分頁重新整理會保留,但把網址複製到新分頁、或另外開一個訂單頁,都是從「不自動刷新」開始。
這是刻意的:你可能同時開好幾個訂單頁看不同條件,通常只想讓其中一個一直刷新。如果設定跟著整個瀏覽器走,每開一個分頁都會跟著查詢,白白增加系統負擔。
虛擬滾動
訂單列表採用虛擬滾動(Virtual Scrolling)技術,僅渲染可視區域內的列,大幅提升大量資料的載入與操作效能。每次載入 500 筆,捲動至底部時自動載入下一批資料。