$rocket]); $this->init($rocket); $params = $rocket->getParams(); /* @phpstan-ignore-next-line */ verify_wechat_sign($rocket->getDestinationOrigin(), $params); $body = json_decode((string) $rocket->getDestination()->getBody(), true); $rocket->setDirection(NoHttpRequestDirection::class)->setPayload(new Collection($body)); $body['resource'] = decrypt_wechat_resource($body['resource'] ?? [], get_provider_config('wechat', $params)); $rocket->setDestination(new Collection($body)); Logger::info('[Wechat][V3][CallbackPlugin] 插件装载完毕', ['rocket' => $rocket]); return $next($rocket); } /** * @throws InvalidParamsException */ protected function init(Rocket $rocket): void { $request = $rocket->getParams()['_request'] ?? null; $params = $rocket->getParams()['_params'] ?? []; if (!$request instanceof ServerRequestInterface) { throw new InvalidParamsException(Exception::PARAMS_CALLBACK_REQUEST_INVALID, '参数异常: 微信回调参数不正确'); } $rocket->setDestination(clone $request) ->setDestinationOrigin($request) ->setParams($params); } }