支付优化
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user