回帖:$response = $this->payment->handlePaidNotify(function($message, $fail){
Log::info('无此处理方法:' . [$message]);
$order = Order::where('out_trade_no', $message['out_trade_no'])->first();
// 异常: 1. 定单不存在; 2.已经支付过了;
if (!$order || $order->status) {
return true;
}
// 查询
$real_resault = $this->payment->order->queryByOutTradeNumber($message['out_trade_no']);
if ($message['return_code'] === 'SUCCESS') {
// 用户是否支付成功
if (Arr::get($message, 'result_code') === 'SUCCESS' && Arr::get($real_resault, 'trade_state') === 'SUCCESS') {
//$this->getTicket($message);
$order->paytime = time(); // 更新支付时间为当前时间
$order->status = 1;//'支付成功';
// 用户支付失败
} elseif (Arr::get($message, 'result_code') === 'FAIL') {
$order->status = 2;//'支付失败';
}
} else {
return $fail('通信失败,请稍后再通知我');
}
$order->save(); // 保存订单
return true; // 返回处理完成
});
$response->send();

