# **接收消息与回复**
* * * * *
消息的监听再简单不过了,你不需要像其它 SDK 一样麻烦,这将会是前所未有的简单,你可以选择监听所有类型或者指定某种类型,以及作出相应的响应,比如回复一条应答消息。
在本 SDK 中,服务端的操作,例如:服务器认证,监听事件,接收用户消息等所有微信向我们自有服务器发起请求的,都交由 Overtrue\Wechat\Server 来处理。
## **获取服务端实例**
* * * * *
~~~
use Overtrue\Wechat\Server;
$appId = 'wx3cf0f39249eb0e60';
$token = 'hellotest';
$encodingAESKey = 'EJThPazwzO4k1cyXJnwQtL60zBdhWvFaHb4emv0dLVN'; // 可选
// $encodingAESKey 可以为空
$server = new Server($appId, $token, $encodingAESKey);
~~~
## **接收消息**
~~~
$wechat->on('message', callable $callback); // 全部类型
// or
$wechat->on('message', string $messageType, callable $callback); // 只监听指定类型
~~~
##**参数说明:**
* * * * *
>[warning]1. $messageType string, 指定要处理的消息类型,ex:image
>2. $callback callable, 回调函数,closure 匿名函数,或者一切可调用的方法或者函数
>3. $callback 接收一个参数:$message为用户发送的消息对象,你可以访问请求消息的所有属性,比如:$message->FromUserName 得到发送消息的人的 openid,$message->MsgType 获取消息的类型如 text 或者 image 等.(消息如果不做return回复,会执行下一个符合条件的监听事件)
**案例**
~~~
use Overtrue\Wechat\Server;
use Overtrue\Wechat\Message;
$appId = 'wx3cf0f39249eb0e60';
$secret = 'f1c242f4f28f735d4687abb469072a29';
$token = 'hellotest';
$encodingAESKey = 'EJThPazwzO4k1cyXJnwQtL60zBdhWvFaHb4emv0dLVN';
$server = new Server($appId, $token, $encodingAESKey);
// 监听所有类型
$server->on('message', function($message) {
return Message::make('text')->content('您好!');
});
// 监听指定类型
$server->on('message', 'image', function($message) {
return Message::make('text')->content('我们已经收到您发送的图片!');
});
$result = $server->serve();
echo $result;
~~~