| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- /*
- * This file is part of the overtrue/wechat.
- *
- * (c) overtrue <i@overtrue.me>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- /**
- * Menu.php.
- *
- * @author overtrue <i@overtrue.me>
- * @copyright 2015 overtrue <i@overtrue.me>
- *
- * @see https://github.com/overtrue
- * @see http://overtrue.me
- */
- namespace EasyWeChat\Menu;
- use EasyWeChat\Core\AbstractAPI;
- /**
- * Class Menu.
- */
- class Menu extends AbstractAPI
- {
- const API_CREATE = 'https://api.weixin.qq.com/cgi-bin/menu/create';
- const API_GET = 'https://api.weixin.qq.com/cgi-bin/menu/get';
- const API_DELETE = 'https://api.weixin.qq.com/cgi-bin/menu/delete';
- const API_QUERY = 'https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info';
- const API_CONDITIONAL_CREATE = 'https://api.weixin.qq.com/cgi-bin/menu/addconditional';
- const API_CONDITIONAL_DELETE = 'https://api.weixin.qq.com/cgi-bin/menu/delconditional';
- const API_CONDITIONAL_TEST = 'https://api.weixin.qq.com/cgi-bin/menu/trymatch';
- /**
- * Get all menus.
- *
- * @return \EasyWeChat\Support\Collection
- */
- public function all()
- {
- return $this->parseJSON('get', [self::API_GET]);
- }
- /**
- * Get current menus.
- *
- * @return \EasyWeChat\Support\Collection
- */
- public function current()
- {
- return $this->parseJSON('get', [self::API_QUERY]);
- }
- /**
- * Add menu.
- *
- * @param array $buttons
- * @param array $matchRule
- *
- * @return \EasyWeChat\Support\Collection
- */
- public function add(array $buttons, array $matchRule = [])
- {
- if (!empty($matchRule)) {
- return $this->parseJSON('json', [self::API_CONDITIONAL_CREATE, [
- 'button' => $buttons,
- 'matchrule' => $matchRule,
- ]]);
- }
- return $this->parseJSON('json', [self::API_CREATE, ['button' => $buttons]]);
- }
- /**
- * Destroy menu.
- *
- * @param int $menuId
- *
- * @return \EasyWeChat\Support\Collection
- */
- public function destroy($menuId = null)
- {
- if (null !== $menuId) {
- return $this->parseJSON('json', [self::API_CONDITIONAL_DELETE, ['menuid' => $menuId]]);
- }
- return $this->parseJSON('get', [self::API_DELETE]);
- }
- /**
- * Test conditional menu.
- *
- * @param string $userId
- *
- * @return \EasyWeChat\Support\Collection
- */
- public function test($userId)
- {
- return $this->parseJSON('json', [self::API_CONDITIONAL_TEST, ['user_id' => $userId]]);
- }
- }
|