Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
meibuyu-rpc
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
without authentication
meibuyu-rpc
Commits
a827bac0
Commit
a827bac0
authored
Aug 25, 2020
by
王源
🎧
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'zero' into develop
parents
770ece9a
27f71ded
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
89 additions
and
3 deletions
+89
-3
ConfigProvider.php
src/ConfigProvider.php
+1
-0
MicroExceptionHandler.php
src/Exceptions/Handler/MicroExceptionHandler.php
+2
-2
PhpSpreadsheetExceptionHandler.php
src/Exceptions/Handler/PhpSpreadsheetExceptionHandler.php
+51
-0
QueryExceptionHandler.php
src/Exceptions/Handler/QueryExceptionHandler.php
+2
-1
CheckWebhookMiddleware.php
src/Middleware/CheckWebhookMiddleware.php
+33
-0
No files found.
src/ConfigProvider.php
View file @
a827bac0
...
...
@@ -19,6 +19,7 @@ class ConfigProvider
'http'
=>
[
\Meibuyu\Micro\Exceptions\Handler\MicroExceptionHandler
::
class
,
\Meibuyu\Micro\Exceptions\Handler\QueryExceptionHandler
::
class
,
\Meibuyu\Micro\Exceptions\Handler\PhpSpreadsheetExceptionHandler
::
class
,
\Meibuyu\Micro\Exceptions\Handler\AppExceptionHandler
::
class
,
],
],
...
...
src/Exceptions/Handler/MicroExceptionHandler.php
View file @
a827bac0
...
...
@@ -9,7 +9,6 @@
namespace
Meibuyu\Micro\Exceptions\Handler
;
use
Hyperf\ExceptionHandler\ExceptionHandler
;
use
Hyperf\HttpMessage\Stream\SwooleStream
;
use
Meibuyu\Micro\Exceptions\HttpResponseException
;
...
...
@@ -53,4 +52,5 @@ class MicroExceptionHandler extends ExceptionHandler
{
return
true
;
}
}
\ No newline at end of file
}
src/Exceptions/Handler/PhpSpreadsheetExceptionHandler.php
0 → 100644
View file @
a827bac0
<?php
/**
* Created by PhpStorm.
* User: Zero
* Date: 2020/8/24
* Time: 18:05
*/
namespace
Meibuyu\Micro\Exceptions\Handler
;
use
Hyperf\ExceptionHandler\ExceptionHandler
;
use
Hyperf\HttpMessage\Stream\SwooleStream
;
use
PhpOffice\PhpSpreadsheet\Exception
as
PhpSpreadsheetException
;
use
Psr\Http\Message\ResponseInterface
;
use
Throwable
;
class
PhpSpreadsheetExceptionHandler
extends
ExceptionHandler
{
public
function
handle
(
Throwable
$throwable
,
ResponseInterface
$response
)
{
$error
=
$throwable
->
getMessage
();
if
(
$throwable
instanceof
PhpSpreadsheetException
)
{
if
(
strpos
(
$error
,
'Formula Error'
)
!==
false
)
{
$msg
=
'表格公式错误, 请检查是否引用其它表格数据'
;
return
$this
->
jsonResponse
(
$msg
,
$response
);
}
}
else
if
(
strpos
(
$error
,
'PhpOffice\PhpSpreadsheet\Writer\Xls::writeSummaryProp()'
)
!==
false
)
{
$msg
=
'表格格式兼容错误,请上传 xlsx 结尾的excel'
;
return
$this
->
jsonResponse
(
$msg
,
$response
);
}
return
$response
;
}
public
function
jsonResponse
(
$msg
,
ResponseInterface
$response
)
{
// 阻止异常冒泡
$this
->
stopPropagation
();
// 格式化输出
$data
=
json_encode
([
'code'
=>
400
,
'msg'
=>
$msg
,
],
JSON_UNESCAPED_UNICODE
);
return
$response
->
withAddedHeader
(
'content-type'
,
'application/json'
)
->
withBody
(
new
SwooleStream
(
$data
));
}
public
function
isValid
(
Throwable
$throwable
)
:
bool
{
return
true
;
}
}
src/Exceptions/Handler/QueryExceptionHandler.php
View file @
a827bac0
...
...
@@ -42,4 +42,5 @@ class QueryExceptionHandler extends ExceptionHandler
{
return
$throwable
instanceof
QueryException
;
}
}
\ No newline at end of file
}
src/Middleware/CheckWebhookMiddleware.php
0 → 100644
View file @
a827bac0
<?php
/**
* Created by PhpStorm.
* User: Zero
* Date: 2020/8/24
* Time: 9:33
*/
namespace
Meibuyu\Micro\Middleware
;
use
Psr\Http\Message\ResponseInterface
;
use
Psr\Http\Message\ServerRequestInterface
;
use
Psr\Http\Server\MiddlewareInterface
;
use
Psr\Http\Server\RequestHandlerInterface
;
class
CheckWebhookMiddleware
implements
MiddlewareInterface
{
/**
* @inheritDoc
*/
public
function
process
(
ServerRequestInterface
$request
,
RequestHandlerInterface
$handler
)
:
ResponseInterface
{
$domain
=
$request
->
getHeader
(
'x-shopify-shop-domain'
)[
0
]
??
null
;
$topic
=
$request
->
getHeader
(
'x-shopify-topic'
)[
0
]
??
null
;
if
(
$domain
&&
$topic
)
{
return
$handler
->
handle
(
$request
);
}
else
{
return
response
()
->
withStatus
(
500
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment