簡化成一種控制流程,讓系統簡單好維護。
開發金流時常見一個問題:使用者付款後跳回付款結果頁或訂單詳情頁,但廠商的 notify callback 可能慢了幾毫秒才到。
此時若訂單狀態尚未更新,使用者可能會看到「付款未完成」。
這種體驗很差,必須確保使用者付款成功後看到的是成功,而不是失敗。
通常金流商會提供 query api,讓你在跳轉回來後,可以主動查詢付款是否完成。若只是 callback 尚未送達,就能藉此更新訂單狀態。最完整的做法是同時接 notify callback,並額外呼叫 query api 進行確認。
但對中小企業而言,我不建議這樣做。因為會有兩套控制流程都能更新同一筆訂單的付款狀態,增加複雜度與除錯難度。建議只以 notify callback 作為唯一依據,不使用 query api。
實務上,可以在使用者跳回來時,由後端先等待約三到五秒,再顯示訂單結果頁。通常金流商的 callback 幾乎會立刻送達,等待三秒應該足夠;若超過這個時間仍未收到,就比較像是需要處理的異常或 Bug,而非 UX 問題。
雖然多等幾秒看似不夠理想,但能換來更簡潔、穩定且容易除錯的金流流程。付款狀態只由 notify callback 更新,避免再加入第二層查詢機制,增加複雜度。