最近一陣子都一直在處理家教系統的問題。原本只是要把已經做好的購買功能開啟,卻意外地衍生 / 發現了更多問題,稍微紀錄一下。
10/06 (二) 接到需求要開啟購買,開啟後開始測試
發現購買 (模擬付款) 之後課時會增加,但是多個老師的時候,老師可以看到別人的課時。並且在有萬用課時以及多個老師的情況下,預扣的條件也必須修正為計算各個老師各自的課時和預排的課程,加上萬用課時後才會是正確的課時。
10/13 (二) 課時計算修正之後,開始測試金流
發現購物車數量錯誤,以及無法手動減少課時等問題。
皆修正之後,在正式機環境上測試金流,發現無法收到綠界的成功付款訊息。各方查證後發現是正式機為非 https 環境。於是 Lewis 開始研究如何在機器上掛憑證。
等待掛憑證期間,發現產品設定中的購買人數是無效的功能,於是請阿蓉處理。
10/15 (四) Eric 請假,Lewis 跑去做字彙雲
10/16 (五) 下班前將憑證掛上,並嘗試正式機正式金流購買
一開始憑證綁錯,由於 Lewis 詢問 API 的 domain,於是我給了錯誤的網址。修正後卻導致無法打到後端 API (在同一台機器上,但 domain 不同,可是 https 憑證只能擇一)。於是修正 API base URL。
完成後嘗試正式機正式金流購買,仍然無法收到綠界的成功付款訊息。找問題找了許久,最後發現是因為正式機的 API 網址是掛在 :8005 之下,綠界僅接受沒有 port 的 domain。緊急之下在前端 public 下放置一支 PHP,接收綠界的訊息並轉發給 API。之後能成功收到訊息,並觸發課時增加。
10/19 (一) 今年是五倍?
上週可成功付款後,卻發現課時加了五次,原因為轉發的 PHP 沒有回傳 ok 給綠界,因此綠界會以每 5 分鐘一次的頻率重新通知,導致課時重複增加。
經過了兩週多的折騰,還有各種很髒的做法,購買的功能總算可以正常上線使用。只可惜完全可預期留下的這些坑,還會讓後人摔得多慘…然而上面對於此情況也僅是表示「重構可以,別讓我知道。因為已經花了很多時間和金錢。」我也只能笑笑。