推送事件处理及回复
--
* 服务端处理代码,就算没有消息回复,也要输出 success 字符串内容;
* 如果不想实时回复内容,也可以选择发送客服消息给微信端,发送多条消息或业务处理比较慢时可以选择这样做(异步发送);
* 具体的数据格式可以参与微信官方的文件,有些接口需要传入数组,具体请查看接口参数类型。
* 如果是内存框架,请使用 `$GLOBALS['HTTP_RAW_POST_DATA']` 传递每次请求的 `php://input` 内容。
```php
try {
// 实例接口,同时实现接口配置验证与解密处理
$api = new \WeChat\Receive($config);
// 第二种方法实例接口
// $api = \We::WeChatReceive($config);
// 获取当前推送接口类型 ( text,image,loction,event... )
$msgType = $api->getMsgType();
// 获取当前推送来源用户的openid
$openid = $api->getOpenid();
// 获取当前推送的所有数据
$data = $api->getReceive();
var_export($data);
// 回复文本消息
$api->text($content)->reply();
// 回复图文消息(高级图文或普通图文,数组)
$api->news($news)->reply();
// 回复图片消息(需先上传到微信服务器生成 media_id)
$api->image($media_id)->reply();
// 回复语音消息(需先上传到微信服务器生成 media_id)
$api->voice($media_id)->reply();
// 回复视频消息(需先上传到微信服务器生成 media_id)
$api->video($media_id,$title,$desc)->reply();
// 回复音乐消息
$api->music($title,$desc,$musicUrl,$hgMusicUrl,$thumbe)->reply();
// 将消息转发给多客服务
$api->transferCustomerService($account)->reply();
} catch (\Exception $e) {
// 处理异常
echo $e->getMessage();
}
```
> 更多功能需要根据消息类型及配置进行处理。