再做訂單的時候,常常會遇到重新付款的需求,
情境通常發生在使用者購物車加入一拖拉庫的項目之後,
因為某種原因付款失敗,可是卡號填錯或者信用卡額度爆炸等等,
在或者是第三方付款時間超過,但又不想重新建立訂單而產生的需求。
至於我們要怎麼做呢?
首先要注意的是payment的expired_at付款期限,
要付款期限結束後才能重新付款,不然會有付款錯誤的問題,
像是atm帳號、qrcode匯款到舊的資料的情況,
這邊比較容易漏掉的是接收到信用卡付款類型的訂單,
接收到付款錯誤通知時沒有修改payment.expired_at為當下,
這樣的話使用者就要等到當初成立金流單時設定的付款期限才能再次付款,
是的,這段時間可能沒多久,但就是會又需求....
整個流程也不難,簡易流程如下
簡單來說就是建立一組新增永豐金付款資料並且更新payment.payment_id,
綁定新的付款資料,另外雖然我們上面有檢查expired_at,
但原本設計裡面--Day22 訂單金流 -- log紀錄
是有設計payment_log.payment_id去紀錄通知的payment_id,
避免找不到對應的情況。
明天我們會介紹另一種作法,大家明天見。