# 消息接收器 Receiver
**目錄 (Table of Contents)**
[TOC]
## 類基本信息
**類簡要描述:**
>[info] 消息接收器用于接收微信公眾號客戶端發送給服務器的消息或觸發的事件,并將消息轉換為特定類型消息的格式
**類名字空間:**
- endor/wechat/message
**類成員變量說明:**
|成員變量|類型|訪問修飾|說明
|:---- |:---|:----- |----- |
|$_eventArr| string數組 | protected | 微信監聽事件標識數組 |
**事件常量描述:**
| 常量標識 | 對應微信事件字符串 | 描述 |
| --- | --- |--- |
| TEXT| 無 | 除事件外的所有消息 |
| EVENT_SCAN | scan | |
| EVENT_LOCATION | LOCATION | |
| EVENT_SUBSCRIBE | subscribe | |
| EVENT_UNSUBSCRIBE | unsubscribe | |
| EVENT_CLICK | click| |
| EVENT_ENTER | ENTER | |
| EVENT_TEMPLATE_SENDJOBFINISH| TEMPLATESENDJOBFINISH| |
**類繼承關系:**
Reciever -> WechatCommon
## 類成員函數/方法
### __construct($configure)
+ 參數列表:
|參數名|類型|必填項|說明
|:---- |:---|:----- |----- |
|$configure| object (WechatConfig) | 是 | 微信配置參數對象 |
+ 返回值:
`無`
+ 函數說明:
`構造函數`
### addEventListener($eventName,$eventCallback)
+ 參數列表:
|參數名|類型|必填項|說明
|:---- |:---|:----- |----- |
|$eventName| string | 是 | 需要關注(監聽)的微信消息事件 |
|$eventCallback| closure | 是 | 閉包,用于處理對應的微信事件 |
+ 返回值:
`無`
+ 函數說明:
`添加關注的消息,當消息到達時,會調用執行eventCallback中的內容`
### removeEventListener($eventName)
+ 參數列表:
|參數名|類型|必填項|說明
|:---- |:---|:----- |----- |
|$eventName| string | 是 | 需要取消關注(監聽)的微信消息事件 |
+ 返回值:
`無`
+ 函數說明:
`從監聽數組中把 $eventName 相應事件移除`
### receiver()
+ 參數列表:
`無`
+ 返回值:
`無`
+ 函數說明:
`開始接收消息`
>[danger]特別注意:: receiver函數必須在所有需要關注的事件都被設置之后才能調用,否則在receiver之后在注冊任何事件都是無效的。
## 消息示例程序
```PHP
$receiverHandler = new Receiver();
$receiverHandler->addEventListener(Receiver::EVENT_SUBSCRIBE, function($msg) {
// 關注公眾號時觸發
$focus = "歡迎關注我們的公眾號";
$textMessage = new TextMessage(msg->getPlateForm(),$msg->getUser(),time(),null,$foucsMsg);
$textMessage->response();
} );
$receiverHandler->receiver();
// 在receiver調用后,在執行任何addEventListener都將不會生效
```
- 1、序言
- 1.1、更新說明
- 1.2、更新計劃
- 2、開始使用 Endor
- 3、目錄結構
- 4、類說明
- 4.1、WechatConfig
- 4.2、WechatValid
- 4.3、WechatCommon
- 4.4、WechatException
- 4.5、基礎接口
- 4.5.1、ShortUrl
- 4.5.2、WechatServerApi
- 4.6、菜單接口
- 4.6.1、菜單類設計
- 4.6.2、Menu
- 4.6.3、ClickMenu
- 4.6.4、ViewMenu
- 4.6.5、MiniProgramMenu
- 4.6.6、MenuApi
- 4.7、消息接口
- 4.7.1、Receiver
- 4.7.2、Message
- 4.7.3、EventMessage
- 4.7.4、TextMessage
- 4.7.5、ClickEventMessage
- 4.7.6、SubscribeEventMessage
- 4.7.7、UnSubscribeEventMessage
- 4.7.8、LocationEventMessage
- 4.7.9、ImageMessage
- 4.7.10、LinkMessage
- 4.7.11、NewsMessage
- 4.7.12、NewsContext
- 4.8、OAuth2.0權限驗證
- 4.8.1、WechatUser
- 4.8.2、OAuthApi
- 4.9、微信支付接口
- 4.9.1、微信支付類設計
- 4.9.2、PayApi
- 4.9.3、RequestPay
- 4.9.4、ResponsePay
- 4.9.5、UnifiedOrder
- 4.9.6、JsPay
- 4.9.7、Refund
- 4.9.8、Query
- 4.9.9、Bill
- 4.9.10、NotifyData
- 4.9.11、Notify
- 4.10、模板消息接口
- 4.10.1、TemplateContext
- 4.10.2、TemplateMessageApi
- 5、使用場景
- 5.1、微信接入服務器驗證
- 5.2、獲取微信API令牌(access_token)
- 5.3、獲取JS API
- 5.4、OAuth2.0靜默登錄
- 5.5、微信菜單
- 5.6、微信消息
- 5.7、微信支付
- 5.7.1、微信公眾號內JsApi支付
- 5.7.2、Native 模式二 掃碼支付
- 5.8、模板消息發送