支付宝回调问题

今天在看项目日志的时候发现的问题,项目已经上线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' ){
	//这里处理逻辑
}

你可能感兴趣的:(php)