优化微信支付回调
parent
7ecedc43df
commit
43c933caea
|
|
@ -32,36 +32,41 @@ class WeChatPayController extends Controller
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$attach = json_decode(data_get($message, 'attach'), true);
|
$attach = json_decode($message['attach'], true);
|
||||||
|
|
||||||
if (! isset($attach['pay_target'])) {
|
if (! isset($attach['pay_target'])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($attach['pay_target']) {
|
switch ($attach['pay_target']) {
|
||||||
// 支付订单
|
|
||||||
case 'order':
|
case 'order':
|
||||||
try {
|
$this->handlePaidNotifyForOrder($message);
|
||||||
DB::beginTransaction();
|
|
||||||
|
|
||||||
(new OrderService())->paySuccess($message['out_trade_no'], [
|
|
||||||
'pay_sn' => $message['transaction_id'],
|
|
||||||
'pay_way' => Order::PAY_WAY_WXPAY,
|
|
||||||
'pay_at' => Carbon::parse($message['time_end']),
|
|
||||||
]);
|
|
||||||
|
|
||||||
DB::commit();
|
|
||||||
} catch (BizException|ModelNotFoundException $e) {
|
|
||||||
DB::rollBack();
|
|
||||||
} catch (Throwable $e) {
|
|
||||||
DB::rollBack();
|
|
||||||
|
|
||||||
throw $e;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理订单支付结果通知
|
||||||
|
*
|
||||||
|
* @param array $message
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function handlePaidNotifyForOrder(array $message): void
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
DB::transaction(function () use ($message) {
|
||||||
|
(new OrderService())->paySuccess($message['out_trade_no'], [
|
||||||
|
'pay_sn' => $message['transaction_id'],
|
||||||
|
'pay_way' => Order::PAY_WAY_WXPAY,
|
||||||
|
'pay_at' => Carbon::parse($message['time_end']),
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
} catch (ModelNotFoundException|BizException $e) {
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue