\EasyWeChat\OpenPlatform\Authorizer\ServerGuard

Class Guard.

  1. url 里的 signature 只是将 token+nonce+timestamp 得到的签名,只是用于验证当前请求的,在公众号环境下一直有
  2. 企业号消息发送时是没有的,因为固定为完全模式,所以 url 里不会存在 signature, 只有 msg_signature 用于解密消息的

Summary

Methods
Properties
Constants
__construct()
serve()
validate()
forceValidate()
getMessage()
buildResponse()
push()
unshift()
observe()
on()
dispatch()
notify()
getHandlers()
No public properties found
SUCCESS_EMPTY_RESPONSE
MESSAGE_TYPE_MAPPING
resolve()
getToken()
handleRequest()
buildReply()
signature()
parseMessage()
isSafeMode()
shouldReturnRawResponse()
newClause()
callHandler()
makeClosure()
resolveHandlerAndCondition()
castResponseToType()
detectAndCastResponseToType()
$alwaysValidate
$app
$handlers
$clauses
N/A
No private methods found
No private properties found
N/A

Constants

SUCCESS_EMPTY_RESPONSE

SUCCESS_EMPTY_RESPONSE = 'success'

Empty string.

MESSAGE_TYPE_MAPPING

MESSAGE_TYPE_MAPPING = array('text' => \EasyWeChat\Kernel\Messages\Message::TEXT, 'image' => \EasyWeChat\Kernel\Messages\Message::IMAGE, 'voice' => \EasyWeChat\Kernel\Messages\Message::VOICE, 'video' => \EasyWeChat\Kernel\Messages\Message::VIDEO, 'shortvideo' => \EasyWeChat\Kernel\Messages\Message::SHORT_VIDEO, 'location' => \EasyWeChat\Kernel\Messages\Message::LOCATION, 'link' => \EasyWeChat\Kernel\Messages\Message::LINK, 'device_event' => \EasyWeChat\Kernel\Messages\Message::DEVICE_EVENT, 'device_text' => \EasyWeChat\Kernel\Messages\Message::DEVICE_TEXT, 'event' => \EasyWeChat\Kernel\Messages\Message::EVENT, 'file' => \EasyWeChat\Kernel\Messages\Message::FILE, 'miniprogrampage' => \EasyWeChat\Kernel\Messages\Message::MINIPROGRAM_PAGE) : array

Properties

$alwaysValidate

$alwaysValidate : boolean

Type

boolean

$handlers

$handlers : array

Type

array

$clauses

$clauses : array

Type

array

Methods

serve()

serve() : \Symfony\Component\HttpFoundation\Response

Handle and return response.

Throws

\EasyWeChat\Kernel\Exceptions\BadRequestException
\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
\EasyWeChat\Kernel\Exceptions\InvalidConfigException

Returns

\Symfony\Component\HttpFoundation\Response

validate()

validate() : $this

Throws

\EasyWeChat\Kernel\Exceptions\BadRequestException

Returns

$this

forceValidate()

forceValidate() : $this

Force validate request.

Returns

$this

getMessage()

getMessage() : array|\EasyWeChat\Kernel\Support\Collection|object|string

Get request message.

Throws

\EasyWeChat\Kernel\Exceptions\BadRequestException
\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
\EasyWeChat\Kernel\Exceptions\InvalidConfigException

Returns

array|\EasyWeChat\Kernel\Support\Collection|object|string

buildResponse()

buildResponse(string  $to, string  $from, \EasyWeChat\Kernel\Contracts\MessageInterface|string|integer  $message) : string

Parameters

string $to
string $from
\EasyWeChat\Kernel\Contracts\MessageInterface|string|integer $message

Throws

\EasyWeChat\Kernel\Exceptions\InvalidArgumentException

Returns

string

dispatch()

dispatch(string|integer  $event, mixed  ...$payload) : mixed|null

Parameters

string|integer $event
mixed $payload variadic

Returns

mixed|null

notify()

notify(string|integer  $event, mixed  ...$payload) : mixed|null

Parameters

string|integer $event
mixed $payload variadic

Returns

mixed|null

getHandlers()

getHandlers() : array

Returns

array

resolve()

resolve() : \Symfony\Component\HttpFoundation\Response

Resolve server request and return the response.

Throws

\EasyWeChat\Kernel\Exceptions\BadRequestException
\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
\EasyWeChat\Kernel\Exceptions\InvalidConfigException

Returns

\Symfony\Component\HttpFoundation\Response

getToken()

getToken() : string

Get token from OpenPlatform encryptor.

Returns

string

handleRequest()

handleRequest() : array

Handle request.

Throws

\EasyWeChat\Kernel\Exceptions\BadRequestException
\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
\EasyWeChat\Kernel\Exceptions\InvalidConfigException

Returns

array

buildReply()

buildReply(string  $to, string  $from, \EasyWeChat\Kernel\Contracts\MessageInterface  $message) : string

Build reply XML.

Parameters

string $to
string $from
\EasyWeChat\Kernel\Contracts\MessageInterface $message

Returns

string

signature()

signature(array  $params) : string

Parameters

array $params

Returns

string

parseMessage()

parseMessage(string  $content) : array

Parse message array from raw php input.

Parameters

string $content

Throws

\EasyWeChat\Kernel\Exceptions\BadRequestException

Returns

array

isSafeMode()

isSafeMode() : boolean

Check the request message safe mode.

Returns

boolean

shouldReturnRawResponse()

shouldReturnRawResponse() : boolean

Returns

boolean

callHandler()

callHandler(callable  $handler, mixed  $payload) : mixed

Parameters

callable $handler
mixed $payload

Returns

mixed

makeClosure()

makeClosure(  $handler) : \Closure

Parameters

$handler

Throws

\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
\ReflectionException

Returns

\Closure

resolveHandlerAndCondition()

resolveHandlerAndCondition(  $handler,   $condition) : array

Parameters

$handler
$condition

Throws

\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
\ReflectionException

Returns

array

castResponseToType()

castResponseToType(\Psr\Http\Message\ResponseInterface  $response, string|null  $type = null) : array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string

Parameters

\Psr\Http\Message\ResponseInterface $response
string|null $type

Throws

\EasyWeChat\Kernel\Exceptions\InvalidConfigException

Returns

array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string

detectAndCastResponseToType()

detectAndCastResponseToType(mixed  $response, string|null  $type = null) : array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string

Parameters

mixed $response
string|null $type

Throws

\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
\EasyWeChat\Kernel\Exceptions\InvalidConfigException

Returns

array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string