Как работать с WeChat Official Account?
Как разработать Mini Program?
[Уже реализованы функции.]
Описание ветки
Благодарности участникам
Пожертвования
Звёзды со временем
Лицензия
Библиотека содержит исходный код (основная логика точно такая же), который включает .Net 3.5/4.0/4.5/.NET Standard 2.0/.NET Core/.NET 6/.NET 7.
Используйте Visual Studio 2022 для открытия демоверсии (поддерживает все версии .NET): .NET 7.0 — Senparc.Weixin.Sample.Net7.sln (рекомендуется).
Используйте другие версии Visual Studio для открытия демоверсии (поддерживается только .net 4.5): Senparc.Weixin.MP.Sample.sln.
Откройте демоверсию Console с помощью Visual Studio 2019 (.NET Core): Senparc.Weixin.MP.Sample.Consoles.vs2019.sln.
# | Модули SDK | DLL | Nuget | Поддержка версий .NET |
---|---|---|---|---|
1 | Базовая библиотека | Senparc.Weixin.dll | [![Senparc.Weixin][1.1]][1.2] [![Senparc.Weixin][nuget-img-base]][nuget-url-base] |
![.NET 4.5][net45Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET Core][netcore] ![.NET 5.0 / 6.0][net6] |
2 | Официальный аккаунт / JSSDK и т. д. |
Senparc.Weixin.MP.dll | [![MP][2.1]][2.2] [![MP][nuget-img-mp]][nuget-url-mp] |
![.NET 4.5][net45Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET Core][netcore] ![.NET 5.0 / 6.0][net6] |
3 | Mini Program (в том числе Mini Game) (независимый проект) |
Senparc.Weixin.WxOpen.dll | [![WxOpen][9.1]][9.2] [![WxOpen][nuget-img-wxopen]][nuget-url-wxopen] |
![.NET 4.5][net45Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET Core][netcore] ![.NET 5.0 / 6.0][net6] |
4 | Tencent Pay(TenPay) | Senparc.Weixin.TenPay.dll | [![TenPay][12.1]][12.2] [![TenPay][nuget-img-tenpay]][nuget-url-tenpay] |
![.NET 4.5][net45Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET Core][netcore] ![.NET 5.0 / 6.0][net6] |
5 | Tencent Pay(TenPay) V3 | Senparc.Weixin.TenPayV3.dll | [![TenPayV3][13.1]][13.2] [![TenPay][nuget-img-tenpayv3]][nuget-url-tenpayv3] |
![.NET 4.5][net45N] ![.NET Standard 2.0/2.1][core20Y] ![.NET Core][netcore] ![.NET 5.0 / 6.0][net6] |
6 | Расширение ASP.NET MVC | Senparc.Weixin.MP.MVC.dll | [![MP.MVC][3.1]][3.2] [![Mvc][nuget-img-mvc]][nuget-url-mvc] |
![.NET 4.5][net45Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET Core][netcore] ![.NET 5.0 / 6.0][net6] |
7 | Корпоративный аккаунт | Senparc.Weixin.QY.dll | [![QY][4.1]][4.2] [![QY][nuget-img-qy]][nuget-url-qy] |
![.NET 4.5][net45Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET Core][netcore] ![.NET 5.0 / 6.0][net6] |
8 | Корпоративный Wechat | Senparc.Weixin.Work.dll | [![Work][5.1]][5.2] [![Work][nuget-img-work]][nuget-url-work] |
![.NET 4.5][net45Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET Core][netcore] |
Ресурсы:
Техническая коммуникация QQ группа:
5-я группа (официальный аккаунт): 377815480; 14-я группа (группа студентов видеокурса): 588231256; официальный аккаунт: 289181996; 10-я группа (распределённый кэш): 246860933; 12-я группа (мини-программа): 108830388; 16-я группа (открытая платформа): 860626938;
- следующие группы заполнены:*
- 1-я группа: 300313885 (полная), 2-я группа: 293958349 (полная), 3-я группа: 342319110 (полная);*
- 4-я группа: 372212092 (полная), 6-я группа: 425898825 (полная);*
- 7-я группа: 482942254 (полная), 8-я группа: 106230270 (полная), 9-я группа: 539061281 (полная);*
- 11-я группа: 553198593 (полная), 13-я группа: 183424136 (полная), 15-я группа: 289181996 (полная).*
Бизнес-контакт QQ: 498977166.
Официальные учебные пособия Senparc:
Джеффри Су и команда Senparc потратили 2 года на разработку книги о WeChat, которая была опубликована. Полное название книги: «Глубокий анализ развития WeChat: эффективное развитие официального аккаунта и мини-программы». Вспомогательная система чтения доступна по ссылке: BookHelper (http://book.weixin.senparc.com). Добро пожаловать за покупкой оригинальных книг: 【Купить】. Ветвь с кодом моментального снимка опубликованной версии BookVersion1 находится по адресу: BookVersion1.
Senparc Helper Official Account | Senparc Helper Mini-Program | BookHelper |
---|---|---|
![]() |
![]() |
![]() |
Текущая ветвь включает коды .NET Framework 4.5 / 4.6.1 и .NET Core 2.0 + 2.1 / .NET 5.0 + 6.0 полной версии. Для сборки, обновление которой было остановлено, см. снимок выпуска release. .NET Framework 4.5 Demo находится в каталоге /src/Samples/All/net45-mvc. .NET 6.0 (обратная совместимость с.NET 5.0 и.NET Core 3.1 и Демоверсия находится в каталоге
/Samples/All/net6-mvc
.
Внимание: в приведённых примерах исходный код каждого модуля в папке net6-MVC можно скомпилировать с опцией Release, чтобы создать совместимую библиотеку SDK для различных версий Senparc.Weixin SDK.
Если вам нужно использовать или модифицировать исходный код программы, рекомендуется выполнить форк. Мы также приветствуем вас изменять общую версию с помощью Pull Request.
git checkout -b my-new-feature
).git commit -am'Добавлена некоторая функция'
).git push origin
git my-new-function
).my-new-function
на сайте GitHub, запустите запрос на вытягивание (Pull Request) (обратитесь к ветке Developer, а не отправляйте напрямую в основную ветку master).Папка | Описание |
---|---|
Senparc.WebSocket | Модуль WebSocket |
Senparc.Weixin.Cache | Senparc.Weixin.Cache.Memcached.dll и Senparc.Weixin.Cache.Redis.dll — решения для распределённого кэширования |
Senparc.Weixin.AspNet | Библиотека Senparc.Weixin.AspNet.dll для поддержки веб-проектов |
Senparc.Weixin.MP.MvcExtension | Исходный код Senparc.Weixin.MP.MvcExtension.dll, расширение для ASP.NET MVC |
Senparc.Weixin.MP | Senparc.Weixin.MP.dll, исходный код официального аккаунта SDK |
Senparc.Weixin.MP.Middleware | Senparc.Weixin.MP.Middleware.dll, промежуточное ПО для официального аккаунта, исходный код |
Senparc.Weixin.Open | Senparc.Wexin.Open.dll, исходный код SDK для открытой платформы 3rd |
Senparc.Weixin.QY | Senparc.Weixin.QY.dll, корпоративный аккаунт SDK, исходный код |
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, мини-программа SDK, исходный код. Включает мини-игру |
Senparc.Weixin.WxOpen.Middleware | Senparc.Weixin.WxOpen.Middleware.dll, промежуточное ПО мини-программы, исходный код |
Senparc.Weixin | Все базовые библиотеки Senparc.Weixin.[x].dll, исходный код |
Папка | Описание | Ссылка на библиотеку SDK |
---|---|---|
MP | Официальный аккаунт, пример | Исходный код |
TenPayV2 | Пример Tencent Payment V1 & V2 | Исходный код |
TenPayV3 | Пример Tencent Payment V3 (TenPay APIv3) | Исходный код |
Work | Корпоративный аккаунт, пример | Исходный код |
WxOpen | Мини-программа, пример | Исходный код |
Shared | Общие файлы всех примеров | |
All | Включая интеграцию всех подчинённых модулей: официальный аккаунт, мини-программу, корпоративный аккаунт, Tencent Payment (V2, V3 и APIv3). Рекомендуется для проектов со сложной интеграцией нескольких платформ (расширенные ссылки) | |
┣ All/net45-mvc | Демоверсия, можно выпустить напрямую (.NET Framework 4.5 + ASP.NET MVC) | Nuget пакеты |
┣ All/console | Консольная демоверсия (.NET Core) | Исходный код |
┗ All/net6-mvc | Демоверсия, можно выпустить напрямую (.NET 6.0) | **Совместимость с .NET 5.0 и .NET Core |
Примечание: это проект MVC, соответствующий файл в проекте WebForm можно изучить.
Следующие токены необходимо синхронизировать с токенами синхронизации в фоновых настройках официального аккаунта WeChat (https://mp.weixin.qq.com). Вы можете установить строку токена в базе данных или файле конфигурации, например, Web.cofing
. Настоятельно рекомендуется использовать сложную строку, поскольку запрос легко подделать, а токен взломать.
public readonly string Token = "weixin";
Следующее действие (Get) используется для получения и возврата результатов проверки URL-адреса фона WeChat без каких-либо изменений. Адрес, такой как http://domain/Weixin или http://domain/Weixin/Index
/// <summary>
/// WeChat background validation Url (Get request), such as http://weixin.senparc.com/weixin
/// </summary>
[HttpGet]
[ActionName("Index")]
public ActionResult Get(PostModel postModel, string echostr)
{
if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
{
return Content(echostr); //возвращает случайную строку, что означает успешную проверку
}
else
{
return Content("failed:" + postModel.Signature + ","
+ MP.CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, Token) + "。" +
"Если вы видите это сообщение в браузере, это означает, что этот адрес URL может быть использован в фоновой настройке официального аккаунта Wechat для проверки URL. Обратите внимание, что токен согласован.");
}
}
В вышеуказанных методах PostModel — это сущность, включающая Signature, Timestamp, Nonce (поступает от сервера WeChat через параметр входящего запроса Url), AppId и Token, EncodingAESKey и ряд внутренних конфиденциальных сведений (необходимо передать их) класс сущности. PostModel также используется в дальнейшем.
Следующее действие (Post) используется для приёма запроса Post от сервера WeChat (обычно инициируется пользователем), при необходимости здесь перед получением предоставляется только проверка сохранения URL-адреса WeChat, каждый Post должен пройти повторную проверку, иначе запрос легко подделать.
/// <summary>
/// После того, как пользователь отправит сообщение, платформа WeChat автоматически отправляет запрос сюда и ожидает ответа XML
/// </summary>
[HttpPost]
[ActionName("Index")]
public ActionResult Post(PostModel postModel)
{
if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
{
return Content("Parameter error!");
}
...
}
Senparc.Weixin.MP предоставляет два способа обработки запросов: традиционный метод и MessageHandler (рекомендуется).
Два вышеуказанных метода более подробно описаны в вики, которая представляет собой простой пример метода MessageHandler.
Процесс MessageHandler очень прост:
[HttpPost]
[ActionName("Index")]
public ActionResult Post(PostModel postModel)
{
if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
{
return Content("Parameter error!");
}
postModel.Token = Token;
postModel.EncodingAESKey = EncodingAESKey;//Согласовывается с вашими настройками в фоновом режиме
postModel.AppId = AppId;//Согласуется с вашими настройками в фоновом режиме
var messageHandler = new CustomMessageHandler(Request.InputStream, postModel);//Получение сообщений (первый шаг)
messageHandler.Execute();//Обработка (второй шаг)
return new FixWeixinBugWeixinResult(messageHandler);//Возврат (третий шаг)
}
Помимо назначения postModel получение (шаг 1), обработка (шаг 2) и возврат (шаг 3) потребуют всего одну строку кода.
CustomMessageHandler в коде выше — это пользовательский класс, который наследуется от Senparc.Weixin.MP.MessageHandler.cs. Как работать с корпоративным WeChat?
Senparc.Weixin.Work.dll для инкапсуляции соответствующих функций и процессов работы остаётся таким же, как и в случае с WeChat Official Account SDK (Senparc.Weixin.MP) и WeChat Corporate Account (Senparc.Weixin.QY.dll).
Nuget Address: https://www.nuget.org/packages/Senparc.Weixin.Work
Package Manager Command:
PM> Install-Package Senparc.Weixin.Work
Как работать с открытой платформой WeChat?
Senparc.Weixin.Open.dll инкапсулирует все API открытой платформы. Процесс обработки сообщений остаётся таким же, как в случае с WeChat Official Account SDK (Senparc.Weixin.MP). Для некоторых специальных процессов обработки сообщений рекомендуется ознакомиться с официальным документом, а затем сравнить демо в проекте Senparc.Weixin.MP.Sample.
Nuget Address: https://www.nuget.org/packages/Senparc.Weixin.Open
Package Manager Command:
PM> Install-Package Senparc.Weixin.Open
Как использовать распределённый кэш?
SDK Senparc. Weixin предоставляет идеальный интерфейс политики кэширования. Используйте реализацию собственного кэша по умолчанию, также доступны планы расширения Redis и Memcached. Вы также можете добавить свои собственные стратегии кэширования в соответствии с теми же правилами.
PM> Install-Package Senparc.Wexin.Senparc.Weixin.Cache.Redis
PM> Install-Package Senparc.Weixin.Senparc.Weixin.Cache.Memcached
Как разработать мини-программу?
Бэкенд-архитектура мини-программы очень похожа на архитектуру официального аккаунта. Используйте только установку Nuget Senparc.Weixin.WxOpen, чтобы начать разработку мини-программы.
В настоящее время Senparc.Weixin.WxOpen содержит всю информацию об обработке, управлении AccessToken, шаблонах сообщений, генерации QR-кодов и т. д.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )