支付优化

This commit is contained in:
liu
2026-09-01 12:47:02 +08:00
parent 95ea0714ad
commit d190bdaade
11 changed files with 342 additions and 633 deletions
@@ -97,19 +97,20 @@ class OnlinePaymentController extends BaseMiniController
}
/**
* 旺铺支付结果后台通知(公开路由,验签后幂等结账)
* 旺铺支付结果后台通知(公开路由,解密信封后幂等结账)
*
* 网关约定:应答 {"code":"00"} 视为通知成功,否则按 2^n 分钟重试 7 次;
* 通知报文与网关应答同为加密信封(data + signature,商户私钥可解),
* 解密成功即视为合法通知;应答 {"code":"00"} 视为通知成功,否则网关按 2^n 分钟重试 7 次;
* 重复通知必须幂等(settle 内部行锁 + 状态判断)。
*/
#[PostRoute('/payment/notify', authorize: false)]
public function notify(Request $request): JsonResponse
{
$params = $request->all();
if (! $this->wangpu->verifyNotifySign($params)) {
Log::warning('旺铺支付通知验签失败', ['params' => $params]);
return $this->notifyAck('01', '验签失败');
try {
$params = $this->wangpu->decryptNotify($request->all());
} catch (Throwable $e) {
Log::warning('旺铺支付通知解密失败', ['error' => $e->getMessage()]);
return $this->notifyAck('01', '报文解密失败');
}
try {