1. 程式人生 > >支付寶回撥問題

支付寶回撥問題

今天在看專案日誌的時候發現的問題,專案已經上線3個月了,突然發現在支付寶回撥介面被呼叫,呼叫的訂單號是3個月之前的訂單號。通過查詢才知道原來支付寶的一個訂單會有兩個回撥。

第一個回撥是在支付成功之後的回撥,
第二個是這個訂單支付成功3個月之後的回撥。
第一個返回的引數中trade_status的值是TRADE_SUCCESS,這個是支付成功的回撥,我們在這個之後可以去處理業務邏輯
第二個返回的引數中trade_status的值是TRADE_FINISHED,這個是交易完成的回撥,如果專案不涉及退款業務可以直接省略不用判斷了。

我出現的問題是因為在判斷時候出現問題

//處理交易完成或者支付成功的通知
if($_POST['trade_status'] == 'TRADE_SUCCESS' || $_POST['trade_status'] == 'TRADE_FINISHED'){
	//這裡處理邏輯
}

如果是交易完成的回撥應該不走這個業務邏輯的,要根據自己的退款邏輯去處理,所以直接修改判斷即可

if($_POST['trade_status'] == 'TRADE_SUCCESS' ){
	//這裡處理邏輯
}