1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hm-tools-hm-tools-wxmp-adapter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 02:13 02021a7

hm-tools-wxmp-adapter

[![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)
[![Maven Central](https://img.shields.io/maven-central/v/top.hmtools/hm-tools-wxmp-adapter.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22top.hmtools%22%20AND%20a:%22hm-tools-wxmp-adapter%22)

前言

Взаимодействие с сервером WeChat осуществляется по протоколу HTTP. В целом, это активный запрос данных обратной связи от сервера WeChat, пассивное получение и обработка данных, отправленных сервером WeChat, и последующая отправка данных обратной связи на сервер WeChat. То есть:

  • Активный запрос к серверу WeChat:
    • Метод GET:
      • Тип полученных данных — JSON.
      • Тип полученных данных — поток байтов (например, интерфейс управления материалами для получения изображений).
    • Метод POST:
      • Тип параметра запроса — JSON, тип полученных данных — JSON.
      • Тип параметра запроса — форма, тип полученных данных — JSON (например, управление материалами для загрузки изображений).
  • Пассивное получение запросов от сервера WeChat. Все полученные данные имеют тип XML.

Анализ типов данных обмена данными с сервером WeChat можно найти в анализе интерфейса общедоступного номера WeChat.xlsx.

Введение

Это пакет инструментов, который инкапсулирует API-интерфейсы общедоступного номера WeChat. Официальный адрес документа API: https://mp.weixin.qq.com/wiki. Инкапсуляция API WeChat очень трудоёмка, потому что документы Tencent всегда неясны и непонятны, а служба поддержки всегда недоступна! Этот набор инструментов использует некоторые идеи проектирования MyBatis и Spring MVC, поэтому он будет выглядеть знакомым при использовании.

Архитектура

  • /hm-tools-wxmp-adapter/wxmp-core — ядро этого пакета инструментов. Он в основном реализует получение, управление, кэширование и расширение accessToken (пользовательские распределённые решения и т. д.), отправляет запросы на сервер WeChat через HTTP, базовые типы данных и инструменты взаимного преобразования Javabean и XML.
  • /hm-tools-wxmp-adapter/wxmp-menu — API-интерфейс, связанный с пользовательским меню, структура запроса/ответа данных и структура уведомления о событии. Соответствует разделу «Пользовательское меню» документа разработки общедоступного номера WeChat [https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1434698695].
  • /hm-tools-wxmp-adapter/wxmp-message — управление сообщениями, связанные API-интерфейсы, структуры запроса/ответа данных и структуры уведомления о событиях. Соответствует документу разработки общедоступного номера WeChat «Управление сообщениями» [https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages.html].
  • /hm-tools-wxmp-adapter/wxmp-webpage — разработка веб-страниц WeChat, соответствующие интерфейсы. Соответствует документу разработки общедоступных номеров WeChat «Разработка веб-страниц WeChat» [https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/iOS_WKWebview.html].
  • /hm-tools-wxmp-adapter/wxmp-material — управление материалами, связанные API-интерфейсы, структуры запроса/ответа данных. Соответствует документу управления материалами общедоступного номера WeChat [https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html].
  • /hm-tools-wxmp-adapter/wxmp-comment — управление комментариями к картинкам, связанные API-интерфейсы, структуры запроса/ответа данных. Соответствует документу управления комментариями к картинкам общедоступного номера WeChat [https://developers.weixin.qq.com/doc/offiaccount/Comments_management/Image_Comments_Management_Interface.html].
  • /hm-tools-wxmp-adapter/wxmp-user — управление пользователями, связанные API-интерфейсы, структуры запроса/ответа данных. Соответствует документу управления пользователями общедоступного номера WeChat [https://developers.weixin.qq.com/doc/offiaccount/User_Management/User_Tag_Management.html].
  • /hm-tools-wxmp-adapter/wxmp-account — управление учётными записями, связанные API-интерфейсы, структуры запроса/ответа данных. Соответствует документу управления учётными записями общедоступного номера WeChat [https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html].

Ход инкапсуляции

См. ход инкапсуляции.

Использование

Родительский элемент maven
<parent>
    <groupId>top.hmtools</groupId>
    <artifactId>hm-tools-wxmp-adapter</artifactId>
    <version>1.0.0</version>
</parent>
Самый базовый способ использования

//Пример получения пользовательского меню

//Ссылка на необходимые jar-файлы (этот набор инструментов полностью соответствует классификации документов общедоступного номера WeChat и может ссылаться на jar-файл по мере необходимости)

<dependency>
  <groupId>top.hmtools</groupId>
  <artifactId>wxmp-menu</artifactId>
  <version>1.0.0</version>
</dependency>
//Инициализируем глобальный экземпляр объекта конфигурации
WxmpConfiguration configuration = new WxmpConfiguration();
        
//Создаём коробку для хранения пары appid и appsecret
AppIdSecretBox appIdSecretBox = new AppIdSecretBox() {
    
    @Override
    public AppIdSecretPair getAppIdSecretPair() {
        AppIdSecretPair appIdSecretPair = new AppIdSecretPair();
        appIdSecretPair.setAppid("Ваш appid общедоступного номера WeChat");
        appIdSecretPair.setAppsecret("Секрет вашего общедоступного номера WeChаt");
        return appIdSecretPair;
    }
};

//Устанавливаем промежуточное ПО для доступа к токену
DefaultAccessTokenHandle accessTokenHandle = new DefaultAccessTokenHandle(appIdSecretBox);
configuration.setAccessTokenHandle(accessTokenHandle);

//Получаем фабрику создания сеанса
WxmpSessionFactory factory = WxmpSessionFactoryBuilder.build(configuration);

//Открываем сеанс
WxmpSession wxmpSession = factory.openSession();

//Получаем проксированный api mapper
IMenuApi menuApi = wxmpSession.getMapper(IMenuApi.class);   

//Выполняем запрос, получаем обратную связь и выводим результат
MenuWapperBean menu = menuApi.getMenu();
System.out.println(JSON.toJSONString(menu));

Вывод:

{
    "menu": {
        "button": [
            {
                "name": "哈哈",
                "sub_button": [
                    {
                        "name": "官网",
                        "sub_button": [],
                        "type": "view",
                        "url":
``` ```
{
    "url": "http://m.hybo.net/main/index/index.html",
},
{
    "name": "Динамик",
    "sub_button": [],
    "type": "view",
    "url": "http://hm.hn.cn/main/news/index.html"
},
{
    "name": "Видео",
    "sub_button": [],
    "type": "view",
    "url": "http://hm.hn.cn/main/news/video.html"
}
]
}

Использование более элегантным способом TODO

Интеграция Spring Boot См.: wxmp-server-demo

Описание использования различных компонентов

  • Основной пакет: wxmp-core/readme.md.
  • Настраиваемое меню: wxmp-menu/readme.md.
  • Управление сообщениями: wxmp-message/readme.md.
  • Разработка веб-страницы WeChat: wxmp-webpage/readme.md.
  • Управление материалами: wxmp-material/readme.md.
  • Управление комментариями и сообщениями на веб-странице WeChat: wxmp-comment/readme.md.
  • Управление пользователями: wxmp-user/readme.md.
  • Управление аккаунтами: wxmp-account/readme.md.

Как использовать моментальный снимок этого компонента

  1. Создайте моментальный снимок прокси-репозитория на вашем частном сервере. https://oss.sonatype.org/content/repositories/snapshots/
  2. Включите созданный снимок в публичный репозиторий.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hm-tools-hm-tools-wxmp-adapter.git
git@api.gitlife.ru:oschina-mirror/hm-tools-hm-tools-wxmp-adapter.git
oschina-mirror
hm-tools-hm-tools-wxmp-adapter
hm-tools-hm-tools-wxmp-adapter
master