$response = $this->sendRequest($credentials);
$result = json_decode($response->getBody()->getContents(), true);
$formatted = $this->castResponseToType($response, $this->app['config']->get('response_type'));
if (empty($result[$this->tokenKey])) {
throw new HttpException('Request access_token fail: '.json_encode($result, JSON_UNESCAPED_UNICODE), $response, $formatted);
}
return $toArray ? $result : $formatted;
}
if (!$refresh && $cache->has($cacheKey) && $result = $cache->get($cacheKey)) {
return $result;
}
/** @var array $token */
$token = $this->requestToken($this->getCredentials(), true);
$this->setToken($token[$this->tokenKey], $token['expires_in'] ?? 7200);
$this->token = $token;
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
protected function getQuery(): array
{
return [$this->queryName ?? $this->tokenKey => $this->getToken()[$this->tokenKey]];
}
/**
* @return string
*
*/
public function applyToRequest(RequestInterface $request, array $requestOptions = []): RequestInterface
{
parse_str($request->getUri()->getQuery(), $query);
$query = http_build_query(array_merge($this->getQuery(), $query));
return $request->withUri($request->getUri()->withQuery($query));
}
/**
protected function accessTokenMiddleware()
{
return function (callable $handler) {
return function (RequestInterface $request, array $options) use ($handler) {
if ($this->accessToken) {
$request = $this->accessToken->applyToRequest($request, $options);
}
return $handler($request, $options);
};
};
$options['retries'] = 0;
}
$fn = $this->nextHandler;
return $fn($request, $options)
->then(
$this->onFulfilled($request, $options),
$this->onRejected($request, $options)
);
}
}
// Add the expect header if needed.
$this->addExpectHeader($request, $options, $modify);
return $fn(Psr7\Utils::modifyRequest($request, $modify), $options);
}
/**
* Add expect header
*/
public static function cookies(): callable
{
return static function (callable $handler): callable {
return static function ($request, array $options) use ($handler) {
if (empty($options['cookies'])) {
return $handler($request, $options);
} elseif (!($options['cookies'] instanceof CookieJarInterface)) {
throw new \InvalidArgumentException('cookies must be an instance of GuzzleHttp\Cookie\CookieJarInterface');
}
$cookieJar = $options['cookies'];
$request = $cookieJar->withCookieHeader($request);
if (empty($options['allow_redirects']['max'])) {
return $fn($request, $options);
}
return $fn($request, $options)
->then(function (ResponseInterface $response) use ($request, $options) {
return $this->checkRedirect($request, $options, $response);
});
}
return static function ($request, array $options) use ($handler, $bodySummarizer) {
if (empty($options['http_errors'])) {
return $handler($request, $options);
}
return $handler($request, $options)->then(
static function (ResponseInterface $response) use ($request, $bodySummarizer) {
$code = $response->getStatusCode();
if ($code < 400) {
return $response;
}
*/
public function __invoke(RequestInterface $request, array $options)
{
$handler = $this->resolve();
return $handler($request, $options);
}
/**
* Dumps a string representation of the stack.
*
$request = $this->applyOptions($request, $options);
/** @var HandlerStack $handler */
$handler = $options['handler'];
try {
return P\Create::promiseFor($handler($request, $options));
} catch (\Exception $e) {
return P\Create::rejectionFor($e);
}
}
}
$request = new Psr7\Request($method, $uri, $headers, $body, $version);
// Remove the option so that they are not doubly-applied.
unset($options['headers'], $options['body'], $options['version']);
return $this->transfer($request, $options);
}
/**
* Create and send an HTTP request.
*
*/
public function request(string $method, $uri = '', array $options = []): ResponseInterface
{
$options[RequestOptions::SYNCHRONOUS] = true;
return $this->requestAsync($method, $uri, $options)->wait();
}
/**
* Get a client configuration option.
*
if (property_exists($this, 'baseUri') && !is_null($this->baseUri)) {
$options['base_uri'] = $this->baseUri;
}
$response = $this->getHttpClient()->request($method, $url, $options);
$response->getBody()->rewind();
return $response;
}
{
if (empty($this->middlewares)) {
$this->registerHttpMiddlewares();
}
$response = $this->performRequest($url, $method, $options);
$this->app->events->dispatch(new Events\HttpResponseCreated($response));
return $returnRaw ? $response : $this->castResponseToType($response, $this->app->config->get('response_type'));
}
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function requestRaw(string $url, string $method = 'GET', array $options = [])
{
return Response::buildFromPsrResponse($this->request($url, $method, $options, true));
}
/**
* Register Guzzle middlewares.
*/
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
protected function getStream(string $endpoint, array $params)
{
$response = $this->requestRaw($endpoint, 'POST', ['json' => $params]);
if (false !== stripos($response->getHeaderLine('Content-disposition'), 'attachment')) {
return StreamResponse::buildFromPsrResponse($response);
}
{
$params = array_merge([
'scene' => $scene,
], $optional);
return $this->getStream('wxa/getwxacodeunlimit', $params);
}
/**
* Create QrCode.
*
if ($lineColor) {
$data['auto_color'] = false;
}
//秀屏二维码新增xp参数
// $data['env_version'] = 'develop';
return $this->wxa->app_code->getUnlimit($scene, $data);
}
/**
* 为授权的小程序帐号上传小程序代码
*
$uid = $input['dtUserId'] ?? $uid;//如果传了dtUserId则拿dtUserId
$share_id = $share_id."-{$uid}";
$scene = http_build_query(['share_id' => $share_id]);//
$qrcode = $weappService->createWxaCodeUnlimit($scene, $page);
return Response($qrcode)->header('Content-type', 'image/png');
}
public function getQrcodeXp(Request $request)
{
if (static::isCallableWithAtSign($callback) || $defaultMethod) {
return static::callClass($container, $callback, $parameters, $defaultMethod);
}
return static::callBoundMethod($container, $callback, function () use ($container, $callback, $parameters) {
return $callback(...array_values(static::getMethodDependencies($container, $callback, $parameters)));
});
}
/**
* Call a string reference to a class using Class@method syntax.
* @param mixed $value
* @return mixed
*/
public static function unwrapIfClosure($value)
{
return $value instanceof Closure ? $value() : $value;
}
/**
* Get the class name of the given parameter's type, if possible.
*
if ($container->hasMethodBinding($method)) {
return $container->callMethodBinding($method, $callback[0]);
}
return Util::unwrapIfClosure($default);
}
/**
* Normalize the given callback into a Class@method string.
*
return static::callClass($container, $callback, $parameters, $defaultMethod);
}
return static::callBoundMethod($container, $callback, function () use ($container, $callback, $parameters) {
return $callback(...array_values(static::getMethodDependencies($container, $callback, $parameters)));
});
}
/**
* Call a string reference to a class using Class@method syntax.
*
*
* @throws \InvalidArgumentException
*/
public function call($callback, array $parameters = [], $defaultMethod = null)
{
return BoundMethod::call($this, $callback, $parameters, $defaultMethod);
}
/**
* Get a closure to resolve the given type from the container.
*
*/
protected function callControllerCallable(callable $callable, array $parameters = [])
{
try {
return $this->prepareResponse(
$this->call($callable, $parameters)
);
} catch (HttpResponseException $e) {
return $e->getResponse();
}
}
return $this->callLumenControllerWithMiddleware(
$instance, $method, $routeInfo, $middleware
);
} else {
return $this->callControllerCallable(
[$instance, $method], $routeInfo[2]
);
}
}
/**
if (! method_exists($instance = $this->make($controller), $method)) {
throw new NotFoundHttpException;
}
if ($instance instanceof LumenController) {
return $this->callLumenController($instance, $method, $routeInfo);
} else {
return $this->callControllerCallable(
[$instance, $method], $routeInfo[2]
);
}
protected function callActionOnArrayBasedRoute($routeInfo)
{
$action = $routeInfo[1];
if (isset($action['uses'])) {
return $this->prepareResponse($this->callControllerAction($routeInfo));
}
foreach ($action as $value) {
if ($value instanceof Closure) {
$callable = $value->bindTo(new RoutingClosure);
return $this->callActionOnArrayBasedRoute($this['request']->route());
}));
}
return $this->prepareResponse(
$this->callActionOnArrayBasedRoute($routeInfo)
);
}
/**
* Call the Closure or invokable on the array based route.
return $this->sendThroughPipeline($this->middleware, function ($request) use ($method, $pathInfo) {
$this->instance(Request::class, $request);
if (isset($this->router->getRoutes()[$method.$pathInfo])) {
return $this->handleFoundRoute([true, $this->router->getRoutes()[$method.$pathInfo]['action'], []]);
}
return $this->handleDispatcherResponse(
$this->createDispatcher()->dispatch($method, $pathInfo)
);
->send($this->make('request'))
->through($middleware)
->then($then);
}
return $then($this->make('request'));
}
/**
* Prepare the response for sending.
*
}
return $this->handleDispatcherResponse(
$this->createDispatcher()->dispatch($method, $pathInfo)
);
});
} catch (Throwable $e) {
return $this->prepareResponse($this->sendExceptionToHandler($e));
}
}
}
}
public function directDispatch($request = null)
{
return parent::dispatch($request);
}
}
try {
$this->boot();
$response = $dingoRequest->handle($this['request'], function($request) {
// 当api路由找不到时
return $this->directDispatch($request);
});
// 统一http响应状态码
$statusCode = $response->getStatusCode();
if ($statusCode != 200 && $statusCode != 401) {
$response->setStatusCode(200);
$this->exception->report($exception);
return $this->exception->handle($exception);
}
return $next($request);
}
/**
* Send the request through the Dingo router.
*
try {
$this->boot();
$response = $dingoRequest->handle($this['request'], function($request) {
// 当api路由找不到时
return $this->directDispatch($request);
});
// 统一http响应状态码
$statusCode = $response->getStatusCode();
if ($statusCode != 200 && $statusCode != 401) {
$response->setStatusCode(200);
}
* @param \Symfony\Component\HttpFoundation\Request|null $request
* @return void
*/
public function run($request = null)
{
$response = $this->dispatch($request);
if ($response instanceof SymfonyResponse) {
$response->send();
} else {
echo (string) $response;
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
$app->run();
// 结束分析
# $xhprof_data = xhprof_disable();
# $XHPROF_ROOT = realpath(dirname(__FILE__) .'/..');
# include_once $XHPROF_ROOT . "/xhprof/xhprof_lib/utils/xhprof_lib.php";
HttpException
|
---|
EasyWeChat\Kernel\Exceptions\HttpException: Request access_token fail: {"errcode":40164,"errmsg":"invalid ip 113.219.240.134 ipv6 ::ffff:113.219.240.134, not in whitelist rid: 6740fcfe-2a234ca2-6cbd4fa8"} at /data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/Kernel/AccessToken.php:186 at EasyWeChat\Kernel\AccessToken->requestToken(array('grant_type' => 'client_credential', 'appid' => 'wxb9a69be6d8017b9a', 'secret' => '29e17f308924da997e708c1b0252b47a'), true) (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/Kernel/AccessToken.php:118) at EasyWeChat\Kernel\AccessToken->getToken() (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/Kernel/AccessToken.php:253) at EasyWeChat\Kernel\AccessToken->getQuery() (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/Kernel/AccessToken.php:208) at EasyWeChat\Kernel\AccessToken->applyToRequest(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false, 'retries' => 0)) (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/Kernel/BaseClient.php:233) at EasyWeChat\Kernel\BaseClient->EasyWeChat\Kernel\{closure}(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false, 'retries' => 0)) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php:68) at GuzzleHttp\RetryMiddleware->__invoke(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false, 'retries' => 0)) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php:64) at GuzzleHttp\PrepareBodyMiddleware->__invoke(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false)) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/Middleware.php:31) at GuzzleHttp\Middleware::GuzzleHttp\{closure}(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false)) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php:71) at GuzzleHttp\RedirectMiddleware->__invoke(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false)) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/Middleware.php:66) at GuzzleHttp\Middleware::GuzzleHttp\{closure}(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false)) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/HandlerStack.php:75) at GuzzleHttp\HandlerStack->__invoke(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false)) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/Client.php:333) at GuzzleHttp\Client->transfer(object(Request), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false)) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/Client.php:169) at GuzzleHttp\Client->requestAsync('POST', object(Uri), array('curl' => array(1), 'handler' => object(HandlerStack), 'synchronous' => true, 'timeout' => 20.0, 'base_uri' => object(Uri), 'max_retries' => 1, 'retry_delay' => 500, 'allow_redirects' => array('max' => 5, 'protocols' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, 'idn_conversion' => false, '_conditional' => array('User-Agent' => 'GuzzleHttp/7'))) (/data/httpd/ecshopx-api/vendor/guzzlehttp/guzzle/src/Client.php:189) at GuzzleHttp\Client->request('POST', 'wxa/getwxacodeunlimit', array('curl' => array(1), 'handler' => object(HandlerStack), 'headers' => array('Content-Type' => 'application/json'), 'body' => '{"scene":"share_id=6740fcfe1c98b-0","page":"pages\\/item\\/espier-detail","width":430,"auto_color":true,"line_color":null}', 'synchronous' => true)) (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/Kernel/Traits/HasHttpRequests.php:156) at EasyWeChat\Kernel\BaseClient->performRequest('wxa/getwxacodeunlimit', 'POST', array('curl' => array(1), 'handler' => object(HandlerStack), 'headers' => array('Content-Type' => 'application/json'), 'body' => '{"scene":"share_id=6740fcfe1c98b-0","page":"pages\\/item\\/espier-detail","width":430,"auto_color":true,"line_color":null}')) (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/Kernel/BaseClient.php:188) at EasyWeChat\Kernel\BaseClient->request('wxa/getwxacodeunlimit', 'POST', array('json' => array('scene' => 'share_id=6740fcfe1c98b-0', 'page' => 'pages/item/espier-detail', 'width' => 430, 'auto_color' => true, 'line_color' => null)), true) (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/Kernel/BaseClient.php:207) at EasyWeChat\Kernel\BaseClient->requestRaw('wxa/getwxacodeunlimit', 'POST', array('json' => array('scene' => 'share_id=6740fcfe1c98b-0', 'page' => 'pages/item/espier-detail', 'width' => 430, 'auto_color' => true, 'line_color' => null))) (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/MiniProgram/AppCode/Client.php:84) at EasyWeChat\MiniProgram\AppCode\Client->getStream('wxa/getwxacodeunlimit', array('scene' => 'share_id=6740fcfe1c98b-0', 'page' => 'pages/item/espier-detail', 'width' => 430, 'auto_color' => true, 'line_color' => null)) (/data/httpd/ecshopx-api/vendor/w7corp/easywechat/src/MiniProgram/AppCode/Client.php:55) at EasyWeChat\MiniProgram\AppCode\Client->getUnlimit('share_id=6740fcfe1c98b-0', array('page' => 'pages/item/espier-detail', 'width' => 430, 'auto_color' => true, 'line_color' => null)) (/data/httpd/ecshopx-api/src/WechatBundle/Services/WeappService.php:460) at WechatBundle\Services\WeappService->createWxaCodeUnlimit('share_id=6740fcfe1c98b-0', 'pages/item/espier-detail') (/data/httpd/ecshopx-api/src/WechatBundle/Http/Controllers/Qrcode.php:63) at WechatBundle\Http\Controllers\Qrcode->getQrcode(object(Request)) (/data/httpd/ecshopx-api/vendor/illuminate/container/BoundMethod.php:36) at Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() (/data/httpd/ecshopx-api/vendor/illuminate/container/Util.php:40) at Illuminate\Container\Util::unwrapIfClosure(object(Closure)) (/data/httpd/ecshopx-api/vendor/illuminate/container/BoundMethod.php:93) at Illuminate\Container\BoundMethod::callBoundMethod(object(AppKernel), array(object(Qrcode), 'getQrcode'), object(Closure)) (/data/httpd/ecshopx-api/vendor/illuminate/container/BoundMethod.php:37) at Illuminate\Container\BoundMethod::call(object(AppKernel), array(object(Qrcode), 'getQrcode'), array(), null) (/data/httpd/ecshopx-api/vendor/illuminate/container/Container.php:653) at Illuminate\Container\Container->call(array(object(Qrcode), 'getQrcode'), array()) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:389) at Laravel\Lumen\Application->callControllerCallable(array(object(Qrcode), 'getQrcode'), array()) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:355) at Laravel\Lumen\Application->callLumenController(object(Qrcode), 'getQrcode', array(true, array('as' => 'front.wxapp.qrcode', 'uses' => 'WechatBundle\\Http\\Controllers\\Qrcode@getQrcode'), array())) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:329) at Laravel\Lumen\Application->callControllerAction(array(true, array('as' => 'front.wxapp.qrcode', 'uses' => 'WechatBundle\\Http\\Controllers\\Qrcode@getQrcode'), array())) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:282) at Laravel\Lumen\Application->callActionOnArrayBasedRoute(array(true, array('as' => 'front.wxapp.qrcode', 'uses' => 'WechatBundle\\Http\\Controllers\\Qrcode@getQrcode'), array())) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:267) at Laravel\Lumen\Application->handleFoundRoute(array(true, array('as' => 'front.wxapp.qrcode', 'uses' => 'WechatBundle\\Http\\Controllers\\Qrcode@getQrcode'), array())) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:169) at Laravel\Lumen\Application->Laravel\Lumen\Concerns\{closure}(object(Request)) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:429) at Laravel\Lumen\Application->sendThroughPipeline(array(), object(Closure)) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:175) at Laravel\Lumen\Application->dispatch(object(Request)) (/data/httpd/ecshopx-api/app/AppKernel.php:73) at AppKernel->directDispatch(object(Request)) (/data/httpd/ecshopx-api/app/AppKernel.php:55) at AppKernel->{closure}(object(Request)) (/data/httpd/ecshopx-api/vendor/dingo/api/src/Http/Middleware/Request.php:111) at Dingo\Api\Http\Middleware\Request->handle(object(Request), object(Closure)) (/data/httpd/ecshopx-api/app/AppKernel.php:56) at AppKernel->dispatch(null) (/data/httpd/ecshopx-api/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php:112) at Laravel\Lumen\Application->run() (/data/httpd/ecshopx-api/public/index.php:31) |