Senparc.Weixin — WeChat .NET SDK
С помощью Senparc.Weixin вы можете легко и быстро разрабатывать приложения для платформы Wechat, включая официальные аккаунты Wechat, мини-программы, мини-игры, корпоративные аккаунты, открытые платформы, Wechat Pay, JS-SDK, оборудование Wechat/Bluetooth и многое другое. Демоверсия доступна на сайте.
Примечание: в запросе присутствуют ссылки на внешние ресурсы, которые не были переведены. Данный проект также подходит для начинающих изучать программирование на .NET.
В настоящее время Senparc.Weixin поддерживает почти все модули и интерфейсы платформы WeChat, а также множество фреймворков, таких как .NET 3.5 / 4.0 / 4.5 / .NET Standard 2.x / .NET Core 2.x / .NET Core 3.x / .NET 6.0 / .NET 7.0 / .NET 8.0. Он совместим со всеми средами, включая MVC, Razor, WebApi, Console (командная строка), настольные приложения (.exe), Blazor, MAUI и фоновые службы, и полностью отделён от внешних фреймворков.
Senparc.Weixin SDK в настоящее время является наиболее широко используемым Wechat .NET SDK и одним из самых популярных проектов с открытым исходным кодом .NET в Китае.
С момента своего создания в 2013 году мы постоянно обновляем проект и без ограничений делимся полным исходным кодом и идеями дизайна, надеясь, что больше людей смогут извлечь из этого пользу, понять и распространить дух открытого исходного кода, а также помочь делу открытого исходного кода в Китае! Мы благодарны всем друзьям, которые помогали нам на этом пути!
Если вам нравится этот проект и вы хотите, чтобы мы продолжали его улучшать, пожалуйста, поставьте нам ★ Звезду :)
🔥 Интеграция чат-бота AI с Wechat доступна онлайн! нажмите здесь, чтобы посмотреть 📺
На глобальном саммите Microsoft MVP в 2024 году я имел честь взять интервью у Скотта Хансельмана и обсудить ряд тем, связанных с ИИ. Мы продолжим наш разговор 13 апреля 2024 года во время мероприятия «Senparc 3.14 Technology Open Day», где мы более подробно рассмотрим влияние ИИ и агентов на будущее индустрии программного обеспечения и программного обеспечения с открытым исходным кодом. Приглашаем всех присоединиться! Смотрите видео. ⚡ Образец теперь поддерживает .NET 8.0 (обратно совместимый), нажмите здесь, чтобы просмотреть. 🔒 Модуль Wechat Pay V3 (V1.0) [https://github.com/JeffreySu/WeiXinMPSDK/tree/master/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3] теперь доступен онлайн! Nuget 🎠 Полностью поддерживает автоматическую сегментацию и отправку длинных текстовых сообщений, подробнее: «Автоматическое ответное сообщение на длинные текстовые сообщения для адаптации к приложениям AIGC».
Модуль | Ссылка |
---|---|
Официальный аккаунт | https://sdk.weixin.senparc.com/Docs/MP/ |
Мини-программа | https://sdk.weixin.senparc.com/Docs/WxOpen/ |
Корпоративный Wechat | https://sdk.weixin.senparc.com/Docs/Work/ |
Wechat Pay V3 (рекомендуется) | https://sdk.weixin.senparc.com/Docs/TenPayV3/ |
Wechat Pay V2 (не рекомендуется) | https://sdk.wexin.senparc.com/Docs/TenPayV2/ |
Примечание:
- Приведённые выше примеры модулей включают как документацию, так и исполняемые шаблоны кода (нужно только настроить параметры Wechat без изменения какого-либо кода).
- Методы настройки, регистрации и вызова интерфейса в примерах совпадают. Как только вы научитесь разрабатывать один модуль, вы сможете применить те же знания к другим модулям. В примере Hello World ниже используется официальный аккаунт в качестве примера, но его можно расширить и на другие модули.
- Более полная документация по разработке представлена в каталоге /docs, нажмите здесь для просмотра.
Примечание:
- Следующий исходный код находится в По умолчанию сообщение для всех необработанных типов
/// Default message for all unhandled types
/// </summary>
/// <returns></returns>
public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage)
{
//ResponseMessageText can also be News or other types
var responseMessage = this.CreateResponseMessage<ResponseMessageText>();
responseMessage.Content = "Вы отправили сообщение, но программа не указала процедуру обработки";
return responseMessage;
}
public override Task<IResponseMessageBase> OnImageRequestAsync(RequestMessageImage requestMessage)
{
//Handle image requests...
}
public override Task<IResponseMessageBase> OnLocationRequestAsync(RequestMessageLocation requestMessage)
{
//Handle location requests...
}
}
Шаг 2: Запрос CustomMessageHandler:
Мы предоставляем два способа запроса CustomMessageHandler: Middleware (рекомендуется) и Controller (или WebApi). Вы можете выбрать любой из них. На примере Middleware после включения конфигурации в Program.cs добавьте следующий код для регистрации MessageHandler:
app.UseMessageHandlerForMp("/WeixinAsync",
(stream, postModel, maxRecordCount, serviceProvider)
=> new CustomMessageHandler(stream, postModel, maxRecordCount, false, serviceProvider),
options
=>
{
options.AccountSettingFunc = context => Senparc.Weixin.Config.SenparcWeixinSetting;
});
На этом этапе вы можете использовать https://YourDomain/WeixinAsync для настройки в бэкэнде официального аккаунта WeChat [Настройки и разработка] > [Базовая конфигурация]>Адрес сервера (URL), а соответствующий токен установлен в appsettings.json (также применимо к Enterprise Wechat и Mini Program, см. соответствующий образец).
Кроме того, вы также можете использовать метод Controller (или WebApi), чтобы иметь более точный контроль над всем процессом обработки сообщений (или использовать его в .NET Framework), нажмите здесь, чтобы посмотреть.
Теперь вы освоили основные навыки, необходимые для разработки платформ WeChat. Продолжайте читать для получения дополнительной информации:
Этот репозиторий содержит исходный код для нескольких версий, включая .NET Framework/.NET Standard 2.0+/.NET Core 3.1/.NET 6/.NET 7/.NET 8:
Используйте Visual Studio 2022 для открытия демонстрации (поддерживает все версии): .NET 8.0 — Senparc.Weixin.Sample.Net7.sln. Используйте Visual Studio 2019 или более позднюю версию, чтобы открыть демо .NET Framework: Senparc.Weixin.MP.Sample.Net45.sln (не включает исходный код, только ссылки на библиотеки).
Используйте Visual Studio 2019 или более позднюю версию, чтобы открыть демонстрацию командной строки Console (.NET Core): Senparc.Weixin.MP.Sample.Consoles.vs2019.sln.
.NET 4.6 | .NET Standard 2.x | .NET 8.0, обратно совместимый с .NET 5.0–7.0 |
---|---|---|
.NET Framework 4.6.2+ | .NET Standard 2.0 / 2.1 | .NET 8.0, обратно совместим с .NET 5.0-7.0 |
Совет:
[net8]: https://img.shields.io/badge/.NET%208.0-Y-brightgreen.svg Поддержка функций
- Официальные API идеально интегрированы, и все обновления будут пытаться обеспечить обратную совместимость, если не указано иное. Таким образом, вы можете безопасно использовать или напрямую обновлять (перезаписывать) последние библиотеки DLL. Для обновлений рекомендуется использовать NuGet (https://www.nuget.org/).
- Вы также можете модифицировать и компилировать код самостоятельно. Откройте решение Senparc.Weixin.Sample.Net8.sln (/Samples/All/net8-mvc/), чтобы увидеть весь исходный код. Когда режим компиляции — «Release», автоматически создаётся локальный пакет NuGet (по умолчанию генерируется в папке /src/BuildOutPut/).
Объяснение папок проекта исходного кода (в папке src)
Папка | Описание |
---|---|
Senparc.WebSocket (src/Senparc.WebSocket/) | Модуль WebSocket |
Senparc.Weixin.Cache (src/Senparc.Weixin.Cache) | Senparc.Weixin.Cache.Memcached.dll, Senparc.Weixin.Cache.Redis.dll и другие решения для расширения распределённого кеша |
Senparc.Weixin.AspNet (src/Senparc.Weixin.AspNet) | Senparc.Weixin.AspNet.dll, библиотека классов специально для поддержки веб |
Senparc.Weixin.MP.MvcExtension (src/Senparc.Weixin.MP.MvcExtension) | Исходный код Senparc.Weixin.MP.MvcExtension.dll, пакет расширения для проектов MVC |
Senparc.Weixin.MP (src/Senparc.Weixin.MP) | Исходный код SDK WeChat Official Account Senparc.Weixin.MP.dll |
Senparc.Weixin.MP.Middleware (src/Senparc.Weixin.MP.Middleware) | Исходный код промежуточного программного обеспечения сообщений WeChat Official Account Senparc.Weixin.MP.Middleware.dll |
Senparc.Weixin.TenPay | Senparc.Weinx.TenPay.dll и Senparc.Weixin.TenPayV3.dll — исходный код для WeChat Pay V2 и V3. |
Senparc.Weixin.Work | Senparc.Weixin.Work.dll — исходный код корпоративного WeChat SDK. |
Senparc.Weixin.Work.Middleware | Senparc.Weixin.Work.Middleware.dll — исходный код промежуточного программного обеспечения корпоративных сообщений WeChat. |
Senparc.Weixin.WxOpen | Senparc.Weixin.WxOpen.dll — исходный код WeChat Mini Program SDK, включая мини-игры. |
Senparc.Weixin.WxOpen.Middleware | Senparc.Weixin.WxOpen.Middleware.dll — исходный код промежуточного ПО для обработки сообщений WeChat Mini Programs, включая мини-игры. |
Senparc.Weixin | Исходный код всех базовых библиотек Senparc.Weixin[x].dll. |
Объяснение папки Samples (в папке Samples)
Использование всех модулей в Senparc.Weixin SDK очень согласованно, включая процесс настройки, управление AccessToken, обработку сообщений, служебные сообщения, вызовы API и т. д. Вам нужно только обратиться к использованию любого модуля (рекомендуется начать с Official Accounts или Mini Programs), и вы можете применить те же принципы к другим модулям.
Из следующих примеров вы можете узнать о настройке и использовании каждого независимого модуля. Просто откройте файл решения .sln в соответствующей папке, чтобы просмотреть исходный код и запустить его, чтобы увидеть документацию. Папка All содержит более комплексные и продвинутые демонстрации функций.
Папка | Описание | Метод ссылки на SDK |
---|---|---|
MP | Официальные аккаунты | Пакет NuGet |
TenPayV2 | WeChat Pay V1 и V2 | Пакет NuGet |
TenPayV3 | WeChat Pay V3 (TenPay APIv3) | Пакет NuGet |
Work | Корпоративные аккаунты | Пакет NuGet |
WxOpen | Мини-программы | Пакет NuGet |
Shared | Общие файлы, необходимые для всех образцов | |
All | Смешанная демонстрация сценариев, включающая все функции официальных аккаунтов WeChat, мини-программ, WeChat Pay, корпоративных аккаунтов и т.д., рекомендуется для проектов, которые интегрируют несколько платформ или требуют глубокой разработки (продвинутая версия) | |
┣ All/console | Демонстрация командной строки (.NET Core) | Пакет NuGet |
┣ All/net45-mvc | Демо, которое можно напрямую опубликовать и использовать (.NET Framework 4.5 + ASP.NET MVC) | Пакет NuGet |
┗ All/net8-mvc | Демо, которое можно напрямую публиковать и использовать (.NET 8.0), совместимое с .NET 5.0, 6.0, 7.0 и .NET Core | Исходный код |
Настройка проекта WeChat по своему вкусу
Веб-версия: Нажмите здесь для получения инструкций.
Версия для настольных ПК: войдите на сайт https://weixin.senparc.com/User, чтобы загрузить инструмент WeChatSampleBuilder и ознакомиться с инструкциями. WeChatSampleBuilder инструмент предназначен только для упрощения кода примеров для тестирования и обучения. Он не поможет вам создать полноценные рабочие проекты с бизнес-логикой. Для создания рабочего проекта обратитесь к полным демонстрационным примерам или другим учебным пособиям. Рекомендуется использовать существующие системные фреймворки для построения проекта, такие как NeuCharFramework.
Группа 1 (Официальные аккаунты): 300313885
Группа 14 (Студенты видеокурса): 588231256
Группа 10 (Распределённый кэш): 246860933
Группа 12 (Мини-программы): 108830388
Группа 16 (Открытая платформа): 860626938
Следующие группы заполнены:
Группа 2: 293958349 (Заполнена), Группа 3: 342319110 (Заполнена)
Группа 4: 372212092 (Заполнена), Группа 5: 377815480 (Заполнена), Группа 6: 425898825 (Заполнена)
Группа 7: 482942254 (Заполнена), Группа 8: 106230270 (Заполнена), Группа 9: 539061281 (Заполнена)
Группа 11: 553198593 (Заполнена), Группа 13: 183424136 (Открытая платформа, заполнена), Группа 15: 289181996 (Заполнена)
Если этот проект будет полезен для вас, мы приветствуем любую форму пожертвования или участия в обновлении кода и обратной связи. Спасибо!
Пожертвование: Введите
Книга по разработке Wechat, под названием «Глубокий анализ разработки Wechat: Эффективные секреты разработки для официальных аккаунтов и мини-программ», была завершена Джеффри Су и командой Senparc после двух лет усилий и опубликована. Книга поставляется с вспомогательной системой чтения: BookHelper.
Добро пожаловать на покупку подлинной книги: 【Купить подлинную】
Снимок кода версии книги находится в ветке BookVersion1.
Чтобы помочь всем более интуитивно понять детали разработки Wechat и изучить разработку Wechat и различные приёмы в процессе разработки .NET, мы создали группу «Senparc Classroom» и запустили видеокурсы по разработке Wechat, которые охватывают следующие две части:
- Основные навыки разработки Wechat
- Пример разработки официальных аккаунтов и мини-программ
Общая продолжительность курса составляет 60 уроков с дополнительными эпизодами.
В настоящее время видео доступны на NetEase Cloud Classroom с хорошо подготовленным контентом и обильными материалами. Курс был выбран в качестве 👩🏫 Как разрабатывать с .NET Core
Начиная с версии v0.4.0, MessageHandler добавляет поддержку контекста пользовательского сеанса для решения проблемы невозможности управления пользовательскими сеансами на сервере. Смотрите: Пользовательский контекст WeixinContext и MessageContext.
Текущая ветка включает полную версию .NET Framework 4.6.2+ и код .NET 6.0/7.0/8.0 (снимок версий, которые больше не обновляются, можно найти в релизе).
Демонстрация для .NET Framework находится в каталоге /src/Samples/All/net45-mvc
, а рекомендуемая демонстрация для .NET 8.0 (совместимая с .NET 5.0, 6.0, 7.0 и .NET Core 3.1 и более низкими версиями) — в каталоге /Samples/All/net8-mvc
.
Обратите внимание: в приведённых выше примерах в примере net8-mvc
непосредственно ссылаются на исходный код каждого модуля и могут генерировать библиотеку Senaprc.Weixin SDK, совместимую с различными версиями после компиляции с Release
.
↕️ Установка через Nuget в проект
Методы установки Nuget для каждого модуля: Установка SDK в проект с помощью Nuget.
🏬 Руководство по развёртыванию
Развёртывание в Azure App Service Azure App Service — это веб-служба, запущенная Microsoft Azure, которая хорошо поддерживает .NET. Подробные шаги развёртывания приведены в разделе Развертывание сайта Wechat в Azure.
Развёртывание на любом сервере через FTP Установите службу FTP (рекомендуется FileZilla Server) на веб-сервере и напрямую загрузите скомпилированный код с локального компьютера (соответствующий код в образцах Senparc.Weixin.Sample.Net8. После компиляции вы можете использовать его напрямую без изменения кода. Если вы используете Azure App Service или другие облачные сервисы, FTP обычно также включён. Приложения корпоративного аккаунта
- Получать сообщения и события
- Отправлять сообщения
- Пользовательское меню
- Интерфейс аутентификации личности
- JSSDK
- Авторизация в сторонних приложениях
- Протокол обратного вызова стороннего приложения
- Отправка события с кодом авторизации
- Уведомление об изменении адресной книги
- Вход в корпоративный аккаунт WeChat
- Платёж через корпоративный аккаунт WeChat
- Сервис корпоративной сессии
- Обратный вызов корпоративной сессии
- Корпоративное встряхивание
- Сервис корпоративных купонов
- Push-уведомление о событии купона
- Служба клиентской поддержки
- Callback-сообщение ответа службы клиентской поддержки
- Интерфейсное расширение стратегии
- Локальный кэш
- Пакет расширения Redis
- Пакет расширения Memcached
Добро пожаловать, разработчики! Вы можете отправлять Pull Requests для незавершённых или дополняемых модулей!
Ветвь | Описание |
---|---|
master | Основная ветка для официальных релизов. Эта ветка обычно более стабильна и может использоваться в производственных средах. |
Developer | 1. Ветка разработки. Это бета-версия, и новые версии разрабатываются в этой ветке перед отправкой в основную ветку. Если вы хотите узнать о новых функциях, вы можете использовать эту ветку. 2. Эта ветка совместима с версиями .NET 4.5 / .NET Core / .NET Core 2.0 одновременно. Рекомендуется отправлять запросы на вытягивание кода в эту ветку вместо основной. |
BookVersion1 | Эта ветка является снимком кода книги «Глубокий анализ разработки WeChat: секреты эффективной разработки для официальных аккаунтов и мини-программ» (https://book.weixin.senparc.com/book/link?code=github-homepage2). |
DotNET-Core_MySQL | Эта ветка — демонстрационная ветка для интеграции фреймворка Pomelo.EntityFrameworkCore.MySql в среде .NET Core. |
NET4.0 | Ветвь, которая поддерживает только .NET 4.0. Разработка этой ветки была остановлена в 2017 году. Последний код для .NET 4.0 синхронизирован с ветками master / Developer. |
NET3.5 | Ветвь, поддерживающая только .NET 3.5. Разработка этой ветки была остановлена в 2015 году. Последний код для .NET 3.5 синхронизирован с ветками master / Developer. |
Developer-Senparc.SDK | Эту ветку использует только команда Senparc для внутреннего тестирования, её можно игнорировать. |
Спасибо разработчикам, которые внесли свой вклад в этот проект. Вы не только улучшили этот проект, но и внесли свой вклад в китайское сообщество открытого исходного кода. Спасибо! Список можно найти здесь (https://github.com/JeffreySu/WeiXinMPSDK/blob/master/Contributors.md).
Если этот проект полезен для вас, мы приветствуем любые формы пожертвований, включая участие в обновлении кода проекта или предоставление обратной связи. Спасибо!
Пожертвовать:
Apache License Version 2.0
Copyright 2024 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT
``` ГАРАНТИИ ИЛИ УСЛОВИЯ ЛЮБОГО РОДА,
явные или подразумеваемые. См. Лицензию для конкретного языка, регулирующего разрешения
и ограничения по Лицензии.
Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )