**目錄 (Table of Contents)**
[TOC]
## 創建微信菜單
```PHP
// 我們現在添加3個微信一級菜單,每個一級菜單下添加兩個二級菜單
// 菜單結構如下
// --- 團購 click
// | -------- 團購簡介 click 事件推送
// | -------- 團購預約 view 跳轉
// --- 我的 click
// | ------- 我的錢包 view 跳轉
// | ------- 我的訂單 view 跳轉
// --- 購票 click
// | ------ 預約購票 view 跳轉
// | ------ 票務說明 view 跳轉
$wxConfigure = new WechatConfig();
$wxConfigure->setParameter("appid",YoursAppId );
$wxConfigure->setParameter("appsecret",YoursSecret);
$wxConfigure->setParameter("access_token",ACCESS_TOKEN);
$menuApi = new MenuApi($wxConfigure);
// 添加 團購一級菜單
$fristMenu = new ClickMenu("團購");
// 添加 團購簡介 和 團購預約 二級菜單
$fristMenu->addChild(new ClickMenu("團購簡介","groupbuy info"))
->addChild(new ViewMenu("團購預約","https://github.com/DarthAhsoka/Endor-Wechat"));
// 添加 我的一級菜單
$secondMenu = new ClickMenu("我的");
$secondMenu->addChild(new ViewMenu("我的錢包","https://github.com/DarthAhsoka/Endor-Wechat"))
->addChild(new ViewMenu("我的訂單","https://github.com/DarthAhsoka/Endor-Wechat"));
// 添加 購票一級菜單
$thirdMenu = new ClickMenu("購票");
// 也可以不使用連貫操作
$markTicket = new ViewMenu("預約購票");
$markTicket->setUrl("https://github.com/DarthAhsoka/Endor-Wechat");
$thirdMenu->addChild($markTicket);
$ticketInfo = new ViewMenu("票務說明");
$ticketInfo->setUrl("https://github.com/DarthAhsoka/Endor-Wechat");
$thirdMenu->addChild($ticketInfo);
$menuApi = new MenuApi($wxConfigure);
$menuApi->addMenuItem($fristMenu);
$menuApi->addMenuItem($secondMenu);
$menuApi->addMenuItem($thirdMenu);
// 創建菜單,調用函數后,將修改微信公眾號上的菜單
try {
$menuApi->create();
}
catch(WechatException $e)
{
echo $e->errorMessage();
}
```
## 從微信公眾號服務器上獲取菜單,并遍歷,識別菜單類型和名字
```PHP
$wxConfigure = new WechatConfig();
$wxConfigure->setParameter("appid",YoursAppId );
$wxConfigure->setParameter("appsecret",YoursSecret);
$wxConfigure->setParameter("access_token",ACCESS_TOKEN);
$menuApi = new MenuApi($wxConfigure);
try
{
$ret = $menuApi->get();
if($ret)
{
foreach ($menuArr as $v)
{
// 這里獲取一級菜單,getName獲取到菜單名字,getType可獲取菜單類型
echo $v->getName() . " (" .$v->getType() . " )" ;
echo "\r\n";
$children = $v->getChildren();
foreach($children as $n)
{
// 這里獲取二級菜單,
echo "\t\t".$n->getName() . " (" .$n->getType() . " )" ;
echo "\r\n";
}
}
}
}
catch(WechatException $e)
{
echo $e->errorMessage();
}
```
## 刪除所有微信菜單
```PHP
$wxConfigure = new WechatConfig();
$wxConfigure->setParameter("appid",YoursAppId );
$wxConfigure->setParameter("appsecret",YoursSecret);
$wxConfigure->setParameter("access_token",ACCESS_TOKEN);
$menuApi = new MenuApi($wxConfigure);
$menuApi->delete();
```
- 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、模板消息發送