index.php
Для разработки используется тестовый номер WeChat, полученный мной. Чтобы самостоятельно протестировать, можно получить свой тестовый номер WeChat на странице тестового номера WeChat.
Проект находится в стадии разработки. При возникновении проблем обращайтесь ко мне.
|—— cache Кэш файлов
|—— lib Основные пакеты
| |—— cache Драйвер кэширования
| |—— core Ядро
| |—— http Драйвер HTTP запросов
| |—— Cache.php Класс кэширования
| |—— Config.php Класс получения конфигураций
| |—— Http.php Класс HTTP запросов
| |—— Wechat.php Основной класс
|—— vendor зависимости Composer
|—— config.php Конфигурационный файл
|—— index.php Пример методов
Установка:
composer require taurus12c/wechat
Настройте файл конфигурации config.php
, импортируйте класс Wechat
и завершите разработку WeChat.
use wechat\lib\Wechat;
Создайте объект
$wechat = new Wechat();
Метод проверки подписи сервера API. Обычно требуется один раз.
$wechat->checkSignature();
Получение глобального access_token WeChat, используемого при вызовах API от имени учетной записи WeChat.
$global_access_token = $wechat->getGlobalAccessToken();
Получение информации пользователя через авторизацию WeChat
$userInfo = $wechat->getUserInfo();
Получение уникального идентификатора пользователя (openid), который не требует перехода на страницу авторизации.
$openid = $wechat->getOpenId();
// Настройка меню учетной записи WeChat. Входящие данные $data
должны быть массивом, а выходные данные — булевым значением. См. правила создания меню WeChat.
$data = [
"button"=>[
[
"name" =>"Кнопка 1",
"type" =>"view",
"url" =>"http://www.baidu.com",
],
[
"name" =>"Кнопка 2",
"sub_button" =>[
[
"name" =>"Подменю 1",
"type" =>"view",
"url" =>"http://www.baidu.com"
]
]
]
]
];
$setMenu = $wechat->menu->setMenu($data);
Получение текущего настроенного меню
$getMenu = $wechat->menu->getMenuInfo();
Удаление настроенного меню
$delMenu = $wechat->menu->delMenu();
Настройка условного меню, $data
— стиль настройки меню, $matchrule
— правило соответствия условного меню, возвращает булевое значение, подробности см. в руководстве WeChat
$data = [
"button"=>[
[
"name" =>"Кнопка 1",
"type" =>"view",
"url" =>"http://www.baidu.com",
],
[
"name" =>"Кнопка 2",
"sub_button" =>[
[
"name" =>"Подменю 1",
"type" =>"view",
"url" =>"http://www.baidu.com"
]
]
]
],
];
$matchrule = [
"matchrule"=>[
"tag_id"=> "2",
"sex"=> "1",
"country"=> "Китай",
"province"=> "Гuangdong",
"city"=> "Guangzhou",
"client_platform_type"=> "2",
"language"=> "zh_CN"
]
];
$setMenuConditional = $wechat->menu->setMenuConditional($data,$matchrule);
Получение информации о условном меню
$getMenuConditionalInfo = $wechat->getMenuConditionalInfo();
Получение сообщений от пользователя, возвращаемый тип данных — массив, содержимое данных см. в руководстве разработки WeChat
$msg = $wechat->getMsg();
Ответ пользователю текстовым сообщением, параметры: openid
пользователя, openid
разработчика, текстовое сообщение.
$sendText = $wechat->sendText($msg['FromUserName'],$msg['ToUserName'],'Вы отправили следующее сообщение:'.$msg['Content']);
Ответ пользователю изображением, параметры: openid
пользователя, openid
разработчика, id материала изображения.
$sendImg = $wechat->sendImg($toUserName,$fromUserName,$mediaId);
Ответ пользователю голосовым сообщением, параметры: openid
пользователя, openid
разработчика, id материала голосового сообщения.
$sendVoice = $wechat->sendVoice($toUserName,$fromUserName,$mediaId);
Ответ пользователю видео, параметры: openid
пользователя, openid
разработчика, массив сформированного в соответствии со следующими примерами.
$content = [
'title' => '', //Заголовок
'desc' => '', //Описание
'mediaId' => '', //ID загруженного материала
];
$sendVideo = $wechat->sendVoice($toUserName,$fromUserName,$content);
Ответ пользователю музыкальным сообщением, параметры: openid
пользователя, openid
разработчика, массив сформированного в соответствии со следующими примерами.
$content = [
'title' => '', //Заголовок
'desc' => '', //Описание
'url' => '', //Ссылка на музыку
'Hurl' => '', //Ссылка на высококачественную музыку, воспроизводится при наличии Wi-Fi
'thumbMediaId' => '', //Идентификатор миниатюрного изображения, ID загруженного материала
];
$sendMusic = $wechat->sendVoice($toUserName,$fromUserName,$content);
Ответ пользователю новостями, параметры: openid
пользователя, openid
разработчика, массив сформированного в соответствии со следующими примерами.
$articles = [
'Первая статья' => [
'title' => '', //Заголовок
'desc' => '', //Описание
'picurl' => '', //URL миниатюрного изображения
'url' => '', //URL для перехода
],
'Вторая статья' => [],
'Третья статья' => [],
... //Можно отправить до 8 статей за раз, ограничения см. в руководстве разработки WeChat
];
$sendNews = $wechat->sendNews($toUserName,$fromUserName,$articles);
Предупреждение по загрузке материалов
Изображение (image): 2МБ, поддерживает PNG/JPEG/JPG/GIF форматы
Аудио (voice): 2МБ, продолжительность не более 60 секунд, поддерживает AMR/MP3 форматы
Видео (video): 10МБ, поддерживает MP4 формат
Миниатюра (thumb): 64КБ, поддерживает JPG формат
Загрузка временной медиа-материала изображения, параметр 1: путь к файлу. Возвращает JSON-строка, содержимое данных см. в руководстве разработки WeChat
$tempMedia = $wechat->media->addImgTempMedia($filepath);
Загрузка временной медиа-материала аудио, параметр 1: путь к файлу. Возвращает JSON-строка, содержимое данных см. в руководстве разработки WeChat
$tempMedia = $wechat->media->addVoiceTempMedia($filepath);
Загрузка временной медиа-материала видео, параметр 1: путь к файлу. Возвращает JSON-строка, содержимое данных см. в руководстве разработки WeChat
$tempMedia = $wechat->media->addVideoTempMedia($filepath);
Загрузка временной медиа-материала миниатюры, параметр 1: путь к файлу. Возвращает JSON-строка, содержимое данных см. в руководстве разработки WeChat
$tempMedia = $wechat->media->addThumbTempMedia($filepath);
Получение временной медиа-материала, параметр 1: media_id. Изображения возвращаются как строка файла, видео — как JSON-строка с URL адресом. Пример сохранения изображения в локальный файл:
$getTempMedia = $wechat->media->getTempMedia($media_id);
$file = fopen('test.jpg','w+');
fwrite($file,$getTempMedia);
fclose($file);
Получение медиа-материала JSSDK
$getJssdkMedia = $wechat->media->getJssdkMedia($media_id)
Загрузка постоянной медиа-материала изображения
$addImgMaterial = $wechat->media->addImgMaterial($file);
Загрузка постоянной медиа-материала аудио
$addVoiceMaterial = $wechat->media->addVoiceMaterial($file);
Загрузка постоянной медиа-материала видео, параметры: путь к файлу, название, описание
$addVideoMaterial = $wechat->media->addVideoMaterial($file,$title,$introduction);
Загрузка постоянной медиа-материала миниатюры
$addThumbMaterial = $wechat->media->addThumbMaterial($file);
---Загрузка постоянной медиа-материала новостей, параметры: массив контента, возвращает media_id
материала
$articles = [
[
"title" => 'Заголовок', // Заголовок
"thumb_media_id" => 'MEDIA_ID_THUMBNAIL', // ID миниатюрного изображения (должен быть permanent media ID)
"author" => 'Автор', // Автор
"digest" => 'Резюме', // Резюме новости, если это одиночная новость, то здесь будет первые 64 символа текста, если это серия новостей, то здесь будет пусто.
"show_cover_pic" => 'SHOW_COVER_PIC(0 / 1)', // Показывать ли миниатюру, 0 - нет, 1 - да
"content" => 'Контент', // Контент новости, поддерживается HTML, должно быть меньше 20000 символов, меньше 1МБ, JS будет удален, внешние ссылки на изображения будут удалены.
"content_source_url"=> 'SOURCE_URL', // URL источника новости
"need_open_comment" => '1', // Открыть ли комментарии, 0 - нет, 1 - да
"only_fans_can_comment"=> '1' // Только ли фанаты могут комментировать, 0 - все могут, 1 - только фанаты
],
[
// ...
],
// Максимальное количество новостей - 8
];
$addArticleMaterial = $wechat->media->addArticleMaterial($articles);
Загрузка изображения внутри новостей, возвращает URL изображения (поддерживаются форматы jpg/png, размер менее 1МБ)
$addArticleImgMaterial = $wechat->media->addArticleImgMaterial($file);
Получение постоянной медиа-материала, параметр 1: media_id
. Новости и видео возвращаются как JSON-строка, остальные — как двоичные файлы.
$getMaterial = $wechat->media->getMaterial($media_id);
Получение общего количества медиа-материалов, возвращает JSON-строка
$getMaterialCount = $wechat->media->getMaterialCount();
Получение списка медиа-материалов, параметры: тип материала (image/video/voice/news
), начальная позиция для выгрузки, количество записей для выгрузки. Возвращает JSON-строка.
$getMaterialList = $wechat->media->getMaterialList($type, $offset, $count);
Удаление постоянной медиа-материала
$delMaterial = $wechat->media->delMaterial($media_id);
Создание метки пользователя, параметр 1: имя метки
$tag = $wechat->user->createTag($name);
Получение созданных меток
$tagList = $wechat->user->tagList();
Обновление названия метки, параметры: ID метки, новое название метки
$upTag = $wechat->user->upTag($id, $name);
Удаление метки, параметр 1: ID метки
$delTag = $wechat->user->delTag($id);
Получение списка пользователей в метке, параметры: ID метки, начальная позиция для выгрузки
$tagUserList = $wechat->user->tagUserList($id, $offset);
Добавление метки к пользователям, параметры: список openid
, ID метки
$openid_list=[
// Список пользователей
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$tagUser = $wechat->user->tagUser($openid_list, $id);
Удаление метки у пользователей, параметры: список openid
, ID метки
$openid_list=[
// Список пользователей
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$tagUserDel = $wechat->user->tagUserDel($openid_list, $id);
Получение списка меток пользователя, параметр 1: openid
$userTag = $wechat->user->userTag($openid);
Установка заметки пользователя, параметры: openid
, заметка
$userRemark = $wechat->user->userRemark($openid, $remark);
Получение базовой информации пользователя (механизм UnionID
), параметры: openid
, язык версии (zh_CN
- китайский, zh_TW
- тайваньский, en
- английский, если не указано, то по умолчанию китайский)
$userBasicInfo = $wechat->user->userBasicInfo($openid, $language);
Получение списка подписчиков учетной записи WeChat, параметр 1: начальная позиция для выгрузки
$getUserList = $wechat->user->getUserList($next_openid);
Получение черного списка учетной записи WeChat
$getBlackList = $wechat->user->getBlackList();
Добавление пользователя в черный список, параметр 1: openid
пользователя, максимум 20 за раз
$openid_list=[
// список подписчиков
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$setBlackList = $wechat->user->setBlackList($openid_list);
Отмена добавления в черный список, параметр 1: openid
пользователя, который нужно добавить в черный список, одновременно можно добавить до 20 пользователей
$openid_list=[
// список подписчиков
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$delBlackList = $wechat->user->delBlackList($openid_list);
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )