6
0
Fork 0

优化微信支付回调

release
李静 2021-12-18 17:41:37 +08:00
parent 7ecedc43df
commit 43c933caea
1 changed files with 24 additions and 19 deletions

View File

@ -32,36 +32,41 @@ class WeChatPayController extends Controller
return true;
}
$attach = json_decode(data_get($message, 'attach'), true);
$attach = json_decode($message['attach'], true);
if (! isset($attach['pay_target'])) {
return true;
}
switch ($attach['pay_target']) {
// 支付订单
case 'order':
try {
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;
}
$this->handlePaidNotifyForOrder($message);
break;
}
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;
}
}
}