javascript - php 如何做自動退款功能?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 13:03:45
0
5
651

我要做一個自動退款功能?比如說他付款後三天內容沒有人回覆他,就自動進入退款流程!但是要如何寫這個定時任務呢?是每隔一秒鐘就去執行PHP腳本還是在mysql內寫定時任務?

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(5)
某草草

有幾種方案,各有利弊,看看哪種更適合你吧:
相關表需要設定好下單時間字段,過期時間字段。
第一種:crontab定時任務,執行一個php腳本去掃表,過期時間減去下單時間超過三天的都變更成退款狀態。

第二種:使用mysql的定時規劃任務,下面是個demo,具體邏輯根據你自己的去寫。

create event myevent
on schedule at current_timestamp + interval 1 hour (周期或者时间点)
do
update myschema.mytable set mycol = mycol + 1;     (执行的sql)

第三種:使用Redis保存,保存的時候expire過期時間3天即可。

第一種方案
優點:簡單,程式碼邏輯改動不大,寫好就用
缺點:時效性不太好,因為你跑crontab任務肯定是固定的某個時間
第二種方案
優點:直接mysql搞定,不用其他環節
缺點:跟crontab優點類似,另如果你不熟悉mysql計劃任務,還需要去熟悉一下
第三種方案
優點:好用,訂單時效性好,而且不用走mysql少一次io
缺點:可能邏輯層程式碼需要加上redis的邏輯,而且持久化策略、HA,主從要做好,不然宕機就悲劇了。

PHPzhong

用linux crontab定時任務,隔一段時間執行一次某個固定的php腳本~

某草草

寫個定時任務,每隔一秒執行一次php腳本。

phpcn_u1582

透過延時訊息佇列,下單之後進行訊息佇列的寫入任務註冊,三天之後進行觸發;再寫一介面,只是簡單判斷是否進行退款操作

小葫芦

退款不審核嗎?還直接跑腳本,傾家蕩產的節奏呀!

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板