[ | https://sdk.weixin.senparc.com/Docs/TenPayV3/ |
Платежи WeChat V2 (не рекомендовано) | https://sdk.weixin.senparc.com/Docs/TenPayV2/ |
[!NOTE]
- В вышеуказанных примерах модулей содержатся как документация, так и готовые шаблоны кода, которые можно сразу использовать (необходимо только настроить параметры WeChat, без необходимости изменения кода).
- Конфигурация, регистрация и вызовы API в примерах одинаковы для всех модулей. Изучение одного модуля позволяет применять эти знания ко всем остальным.
- В каталоге /docs представлены более полные руководства по разработке, предназначенные для продвинутых разработчиков, посмотреть здесь.
- Для различных платформ WeChat, Senparc.Weixin SDK предоставляет отдельные модули, но для удобства можно использовать Senparc.Weixin.All, который автоматически включает все модули.
[!NOTE]
- Ниже приведенный исходный код расположен в папке
/Samples/MP/Senparc.Weixin.Sample.MP
. Этот пример использует официальный аккаунт WeChat. Учеба работы с официальными аккаунтами позволит вам легко применить эти знания к другим модулям (мини-приложения, корпоративные аккаунты, платежи WeChat и т.д.), так как основные принципы одинаковы.
- Если вы хотите просмотреть примеры других модулей или интеграций, вы можете найти их в папках
/Samples/
и/Samples/All/
.
builder.Build()
в файле Program.cs
: builder.Services.AddSenparcWeixinServices(builder.Configuration);
Если вы используете старый формат файла
Startup.cs
, то данная строка должна быть добавлена в методConfigureServices()
внутриStartup.cs
.
builder.Build()
активируйте конфигурацию:var registerService = app.UseSenparcWeixin(app.Environment, null, null, register => { },
(register, weixinSetting) =>
{
//Регистрируйте информацию о публичном аккаунте (можете выполнить несколько раз, чтобы зарегистрировать несколько аккаунтов)
register.RegisterMpAccount(weixinSetting, "【盛派网络小助手】公众号");
});
- Если вы используете старый формат файла Startup.cs, то вышеуказанная часть кода соответствует методу Configure() в файле Startup.cs.
- Если вы хотите автоматически регистрировать все настроенные аккаунты, просто добавьте параметр
autoRegisterAllPlatforms: true
в конце указанной строки (необходимо использовать библиотекуSenparc.Weixin.All
) :var registerService = app.UseSenparcWeixin(app.Environment, null, null, register => { }, (register, weixinSetting) => { /* Нет необходимости выполнять регистрацию вручную */ }, autoRegisterAllPlatforms: true /* Автоматическая регистрация всех платформ */ );
Вы можете вызвать интерфейсы в любом месте программы (в качестве примера используется клиентский интерфейс):
await CustomApi.SendTextAsync("AppId", "OpenId", "Привет, мир!");
[!TIP]
- Библиотека SDK
Senparc.Weixin
автоматически управляет жизненным цикломAccessToken
, поэтому вам достаточно указыватьAppId
во время разработки, не беспокоясь о том, чтоAccessToken
истекает.
- Информация регистрации, такая как
AppId
, может быть автоматически получена изSenparc.Weixin.Config.SenparcWeixinSetting
. Соответствующие параметры настраиваются в файлеappsettings.json
.
- Все методы также поддерживают синхронные вызовы:
Senparc.Weixin.MP.AdvancedAPIs.CustomApi.SendText()
.
- Все пространства имён интерфейсов основаны на официальных путях API, а названия параметров максимально приближены к документации (особенно входящим и выходящим параметрам), чтобы облегчить поиск и понимание кода разработчиками.
[!TIP] Теперь вы уже можете применять эти принципы для вызова любых интерфейсов WeChat!
Публичный аккаунт предоставляет возможность отправки различных типов сообщений, таких как текст, изображение, голосовое сообщение и т.д., для взаимодействия с пользователями.
Далее приведен пример, который применим и для корпоративного WeChat и WeChat Mini Programs.
using Senparc.NeuChar.Entities;
using Senparc.Weixin.MP.Entities;
using Senparc.Weixin.MP.Entities.Request;
using Senparc.Weixin.MP.MessageContexts;
using Senparc.Weixin.MP.MessageHandlers;
namespace Senparc.Weixin.Sample.MP
{
/// <summary>
/// Пользовательский MessageHandler
/// Расширяем базовый класс MessageHandler, переопределяя методы обработки запросов
/// </summary>
public partial class CustomMessageHandler : MessageHandler<DefaultMpMessageContext>
{
public CustomMessageHandler(Stream inputStream, PostModel postModel, int maxRecordCount = 0,
bool onlyAllowEncryptMessage = false, IServiceProvider serviceProvider = null)
: base(inputStream, postModel, maxRecordCount, onlyAllowEncryptMessage, null, serviceProvider)
{
}
/// <summary>
/// Обработка всех необработанных типов сообщений
/// </summary>
/// <returns></returns>
public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage)
{
//Ответ можно заменить на другой тип, например News
var responseMessage = this.CreateResponseMessage<ResponseMessageText>();
responseMessage.Content = $"Вы отправили сообщение, но программа не имеет специального процесса для его обработки.";
return responseMessage;
}
public override Task<IResponseMessageBase> OnImageRequestAsync(RequestMessageImage requestMessage)
{
//Обработка запроса на изображение...
}
public override Task<IResponseMessageBase> OnLocationRequestAsync(RequestMessageLocation requestMessage)
{
//Обработка запроса на местоположение...
}
}
}
Мы предлагаем два способа запуска CustomMessageHandler — через middleware (рекомендовано) и через Controller (или WebApi). Вы можете выбрать любой из этих вариантов. Пример использования middleware:```C# app.UseMessageHandlerForMp("/WeixinAsync", (stream, postModel, maxRecordCount, serviceProvider) => new CustomMessageHandler(stream, postModel, maxRecordCount, false, serviceProvider), options => { options.AccountSettingFunc = context => Senparc.Weixin.Config.SenparcWeixinSetting; });
Теперь вы можете настроить серверный адрес (URL) в разделе «Настройки и разработка» > «Базовая конфигурация» в административной панели WeChat, используя следующий URL: [https://YourDomain/WeixinAsync](https://sdk.weixin.senparc.com/WeixinAsync).
Кроме того, вы можете использовать метод запуска через **контроллер (или WebApi)** для более детального контроля над всеми этапами обработки сообщений (или если вы работаете в среде .NET Framework), [подробнее здесь](https://github.com/JeffreySu/WeiXinMPSDK/wiki/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8MessageHandler%E7%AE%80%E5%8C%96%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86%E6%B5%81%E7%A8%8B).
Таким образом, вы уже освоили основные навыки работы с различными платформами WeChat. Для получения дополнительной информации продолжите чтение ниже:
<img src="https://sdk.weixin.senparc.com/images/SenparcRobotsnapshoot.jpg" width="300" align="right">
## 📇 Дополнительная информация
* [🏹 Разделы модулей библиотек](#-разделы-модулей-библиотек)
* [💾 Описание проекта (src)](#-описание-проекта-src)
* [🖥️ Описание каталога Samples](#%EF%B8%8F-samples-%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3-Demo)
* [🎨 Ресурсы](#-ресурсы)
* [📖 Официальные учебники от Senparc](#-официальные-учебники-от-senparc)
* [🖥️ Официальные видео-курсы от Senparc](#-официальные-видео-курсы-от-senparc)
* [🧪 Подпишитесь на тестовый аккаунт (SenparcRobot)](#-подпишитесь-на-тестовый-аккаунт-senparcrobot)
* [✋ Внесите свой вклад в проект](#-внесите-свой-вклад-в-проект)
* [👩🏫 Как использовать .NET Core для разработки](#-как-использовать-dotnet-core-для-разработки)
* [↕️ Установка через NuGet](#-установка-через-nuget)
* [emplace Разверните проект](#-разверните-проект)
* [🍴 Описание важных веток](#-описание-важных-веток)
* [🍟 Благодарность за вклад](#-благодарность-за-вклад)
* [💰 Донат](#-донат)
* [⭐ Количество звезд на GitHub](#-количество-звезд-на-github)
* [📎 Лицензия](#-лицензия)
Эта библиотека включает исходный код для нескольких версий .NET Framework/.NET Standard 2.0+/ .NET Core 3.1/.NET 6/.NET 7/.NET 8 (логика работы одинакова для всех):
* Откройте демо (.NET 8.0) в Visual Studio 2022: [.NET 8.0 - Senparc.Weixin.Sample.Net8.sln](https://github.com/JeffreySu/WeiXinMPSDK/tree/Developer/Samples/All/net8-mvc) (включает рекомендации по использованию исходного кода)
* Откройте демо .NET Framework в Visual Studio 2019 или новее: [Senparc.Weixin.MP.Sample.Net45.sln](https://github.com/JeffreySu/WeiXinMPSDK/tree/Developer/Samples/All/net45-mvc/) (не включает исходный код, только ссылки на библиотеки)
* Откройте демо командной строки Console (.NET Core) в Visual Studio 2019 или новее: [Senparc.Weixin.MP.Sample.Consoles.vs2019.sln](https://github.com/JeffreySu/WeiXinMPSDK/tree/Developer/Samples/All/console)
| # | Функционал модуля | DLL | NuGet | Поддерживаемые версии .NET |
|---|--------------------------------------------------------|-------------------------------------------------|---------------------------------------|--------------------------------------|
| 1 | Базовая библиотека | Senparc.Weixin.dll | [![Senparc.Weixin][1.1]][1.2]<br>[![Senparc.Weixin][nuget-img-base]][nuget-url-base] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 2 | WeChat Official Account /<br>JSSDK / Shaking Nearby / и т.д.| Senparc.Weixin.MP.dll | [![MP][2.1]][2.2]<br>[![MP][nuget-img-mp]][nuget-url-mp] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 3 | [WeChat Mini Programs<br>(Поддержка мини-игр)<br>(Отдельный проект)](https://github.com/JeffreySu/WxOpen)| Senparc.Weixin.WxOpen.dll | [![WxOpen][9.1]][9.2]<br>[![WxOpen][nuget-img-wxopen]][nuget-url-wxopen] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 4 | Оплата WeChat | Senparc.Weixin.TenPay.dll | [![TenPay][12.1]][12.2]<br>[![TenPay][nuget-img-tenpay]][nuget-url-tenpay] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 5 | Версия 3 оплаты WeChat | Senparc.Weixin.TenPayV3.dll | [![TenPayV3][13.1]][13.2]<br>[![TenPay][nuget-img-tenpayv3]][nuget-url-tenpayv3] | ![.NET 4.5][net46N] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 6 | Расширение ASP.NET MVC | Senparc.Weixin.MP.MVC.dll | [![MP.MVC][3.1]][3.2]<br>[![Mvc][nuget-img-mvc]][nuget-url-mvc] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 7 | WeChat Enterprise Account<br>(Официально прекращено поддержку) | Senparc.Weixin.QY.dll | [![QY][4.1]][4.2]<br>[![QY][nuget-img-qy]][nuget-url-qy] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 9 | Корпоративный WeChat | Senparc.Weixin.Work.dll | [![Work][5.1]][5.2]<br>[![Work][nuget-img-work]][nuget-url-work] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 9 | Открытая платформа WeChat | Senparc.Weixin.Open.dll | [![Open][6.1]][6.2]<br>[![Open][nuget-img-open]][nuget-url-open]| ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 10| Распределенная кэширование Redis | Senparc.Weixin.Cache.<br>Redis.dll | [![Cache.Redis][7.1]][7.2]<br>[![Redis][nuget-img-redis]][nuget-url-redis] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 11| Распределенная кэширование Memcached | Senparc.Weixin.Cache.<br>Memcached.dll | [![Cache.Memcached][8.1]][8.2]<br>[![MC][nuget-img-mc]][nuget-url-mc] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 12|[WebSocket <br>(Отдельный проект)](https://github.com/JeffreySu/Senparc.WebSocket) | Senparc.WebSocket.dll | [![Senparc.WebSocket][10.1]][10.2]<br>[![WebSocket][nuget-img-ws]][nuget-url-ws] | ![.NET 4.5][net46Y] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
| 13| Все в одном интеграционная библиотека | Senparc.Weixin.All.dll | [![Senparc.Weixin.All][14.1]][14.2]<br>[![Senparc.Weixin.All][nuget-img-base]][nuget-url-base] | ![.NET 4.5][net46N] ![.NET Standard 2.0/2.1][core20Y] ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
#### Ключевые моменты
| ![.NET 4.6][net46Y] | ![.NET Standard 2.x][core20Y] | ![.NET 5.0 / 6.0 / 7.0 / 8.0][net8] |
|--|--|--|
| .NET Framework 4.6.2+ | .NET Standard 2.0 / 2.1 | .NET 8.0, обратная совместимость с .NET 5.0-7.0> [!WARNING]
> 1. С 1 мая 2019 года .NET Framework 3.5 и 4.0 больше не поддерживаются. Последняя стабильная версия .NET Framework 3.5 + 4.0 доступна [здесь](https://github.com/JeffreySu/WeiXinMPSDK/releases/tag/v16.6.15).
> 2. С 3 апреля 2022 года .NET Framework 4.5 был обновлен до 4.6.2. Последняя стабильная версия .NET Framework 4.5 доступна [здесь](https://github.com/JeffreySu/WeiXinMPSDK/releases/tag/v16.17.9).
> 3. Если вы используете .NET Framework, рекомендуется обновиться до .NET Framework 4.8+ до 12 января 2027 года, когда официальная поддержка .NET Framework 4.6.2 будет прекращена ([подробнее](https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-framework)).
> 4. Используйте `Senparc.Weixin.All` для автоматической загрузки всех модулей.
[1.1]: https://img.shields.io/nuget/v/Senparc.Weixin.svg?style=flat
[1.2]: https://www.nuget.org/packages/Senparc.Weixin
[2.1]: https://img.shields.io/nuget/v/Senparc.Weixin.MP.svg?style=flat
[2.2]: https://www.nuget.org/packages/Senparc.Weixin.MP
[3.1]: https://img.shields.io/nuget/v/Senparc.Weixin.MP.MVC.svg?style=flat
[3.2]: https://www.nuget.org/packages/Senparc.Weixin.MP.MVC
[4.1]: https://img.shields.io/nuget/v/Senparc.Weixin.QY.svg?style=flat
[4.2]: https://www.nuget.org/packages/Senparc.Weixin.QY
[5.1]: https://img.shields.io/nuget/v/Senparc.Weixin.Work.svg?style=flat
[5.2]: https://www.nuget.org/packages/Senparc.Weixin.Work
[6.1]: https://img.shields.io/nuget/v/Senparc.Weixin.Open.svg?style=flat
[6.2]: https://www.nuget.org/packages/Senparc.Weixin.Open
[7.1]: https://img.shields.io/nuget/v/Senparc.Weixin.Cache.Redis.svg?style=flat
[7.2]: https://www.nuget.org/packages/Senparc.Weixin.Cache.Redis
[8.1]: https://img.shields.io/nuget/v/Senparc.Weixin.Cache.Memcached.svg?style=flat
[8.2]: https://www.nuget.org/packages/Senparc.Weixin.Cache.Memcached
[9.1]: https://img.shields.io/nuget/v/Senparc.Weixin.WxOpen.svg?style=flat
[9.2]: https://www.nuget.org/packages/Senparc.Weixin.WxOpen
[10.1]: https://img.shields.io/nuget/v/Senparc.WebSocket.svg?style=flat
[10.2]: https://www.nuget.org/packages/Senparc.WebSocket
[11.1]: https://img.shields.io/nuget/v/Senparc.Weixin.MP.CoreMVC.svg?style=flat
[11.2]: https://www.nuget.org/packages/Senparc.Weixin.MP.CoreMVC
[12.1]: https://img.shields.io/nuget/v/Senparc.Weixin.TenPay.svg?style=flat
[12.2]: https://www.nuget.org/packages/Senparc.Weixin.TenPay
[13.1]: https://img.shields.io/nuget/v/Senparc.Weixin.TenPayV3.svg?style=flat
[13.2]: https://www.nuget.org/packages/Senparc.Weixin.TenPayV3
[14.1]: https://img.shields.io/nuget/v/Senparc.Weixin.All.svg?style=flat
[14.2]: https://www.nuget.org/packages/Senparc.Weixin.All
[net46Y]: https://img.shields.io/badge/.NET%20Framework%204.6+-Y-brightgreen.svg
[net46N]: https://img.shields.io/badge/.NET%20Framework%204.6+-N-lightgrey.svg
[net46N-]: https://img.shields.io/badge/.NET%20Framework%204.6+----lightgrey.svg
[core20Y]: https://img.shields.io/badge/.NET%20Standard2.x-Y-brightgreen.svg
[net8]: https://img.shields.io/badge/.NET%208.0-Y-brightgreen.svg
[nuget-img-base]: https://img.shields.io/nuget/dt/Senparc.Weixin.svg
[nuget-url-base]: https://www.nuget.org/packages/Senparc.Weixin
[nuget-img-mp]: https://img.shields.io/nuget/dt/Senparc.Weixin.MP.svg
[nuget-url-mp]: https://www.nuget.org/packages/Senparc.Weixin.MP
[nuget-img-mvc]: https://img.shields.io/nuget/dt/Senparc.Weixin.MP.Mvc.svg
[nuget-url-mvc]: https://www.nuget.org/packages/Senparc.Weixin.MP.Mvc
[nuget-img-tenpay]: https://img.shields.io/nuget/dt/Senparc.Weixin.TenPay.svg
[nuget-url-tenpay]: https://www.nuget.org/packages/Senparc.Weixin.TenPay
[nuget-img-tenpayv3]: https://img.shields.io/nuget/dt/Senparc.Weixin.TenPayV3.svg
[nuget-url-tenpayv3]: https://www.nuget.org/packages/Senparc.Weixin.TenPayV3
[nuget-img-qy]: https://img.shields.io/nuget/dt/Senparc.Weixin.QY.svg
[nuget-url-qy]: https://www.nuget.org/packages/Senparc.Weixin.QY
[nuget-img-work]: https://img.shields.io/nuget/dt/Senparc.Weixin.Work.svg
[nuget-url-work]: https://www.nuget.org/packages/Senparc.Weixin.Work
[nuget-img-open]: https://img.shields.io/nuget/dt/Senparc.Weixin.Open.svg
[nuget-url-open]: https://www.nuget.org/packages/Senparc.Weixin.Open
[nuget-img-redis]: https://img.shields.io/nuget/dt/Senparc.Weixin.Cache.Redis.svg
[nuget-url-redis]: https://www.nuget.org/packages/Senparc.Weixin.Cache.Redis
[nuget-img-mc]: https://img.shields.io/nuget/dt/Senparc.Weixin.Cache.Memcached.svg
[nuget-url-mc]: https://www.nuget.org/packages/Senparc.Weixin.Cache.Memcached
[nuget-img-wxopen]: https://img.shields.io/nuget/dt/Senparc.Weixin.WxOpen.svg
[nuget-url-wxopen]: https://www.nuget.org/packages/Senparc.Weixin.WxOpen
[nuget-img-ws]: https://img.shields.io/nuget/dt/Senparc.WebSocket.svg
[nuget-url-ws]: https://www.nuget.org/packages/Senparc.WebSocket
## Поддерживаемые функции
* Поддерживаются большинство API WeChat 8.x, включая оплату, меню, шаблоны сообщений, загрузку материалов, массовое рассылание, многофункциональные службы, платежи, магазины, карты и чеки.
* Поддерживаются все модули WeChat, включая официальные аккаунты, мини-приложения, корпоративные аккаунты, открытую платформу и оплату.
* Поддерживаются пользовательские сессии и контексты (решает проблему отсутствия возможности использования сессий для хранения информации пользователя).
* Полностью поддерживаются последние API для официальных аккаунтов, мини-приложений, корпоративных аккаунтов, оплаты V2/V3 и открытой платформы.
* Поддерживаются распределенные кэши и стратегии кэширования (по умолчанию поддерживаются локальный кэш, Redis и Memcached, могут быть легко расширены), при этом разработчики не должны беспокоиться о типах кэша, который они используют, так как это можно настроить в конфигурационных файлах или во время выполнения программы.
> 1. Официальные API полностью интегрированы, все обновления стараются обеспечивать обратную совместимость, если это не указано в противном случае. Поэтому используйте уже выпущенные версии с уверенностью или просто обновите до последней версии DLL (включая замену существующих файлов). Рекомендуется использовать [NuGet](https://www.nuget.org/) для обновлений.
> 2. Вы также можете самостоятельно модифицировать и скомпилировать код, открыв решение [Senparc.Weixin.Sample.Net8.sln](/Samples/All/net8-mvc/), чтобы просмотреть все исходные коды. При режиме сборки Release будет автоматически создан локальный пакет NuGet (по умолчанию он создается в директории /src/BuildOutput/).
## 💾 Описание папок проекта (папка src)
<details>
<summary>Развернуть</summary>| Папка | Описание |
|-------|----------|
|[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)|Исходный код расширения для MVC проектов Senparc.Weixin.MP.MvcExtension.dll|
|[Senparc.Weixin.MP](src/Senparc.Weixin.MP)|Исходный код SDK для WeChat Official Accounts Senparc.Weixin.MP.dll|
|[Senparc.Weixin.MP.Middleware](src/Senparc.Weixin.MP.Middleware)|Исходный код промежуточного слоя для сообщений WeChat Official Accounts Senparc.Weixin.MP.Middleware.dll|
|[Senparc.Weixin.Open](src/Senparc.Weixin.Open)|Исходный код SDK для открытых платформ третьих сторон Senparc.Weixin.Open.dll|
|[Senparc.Weixin.TenPay](src/Senparc.Weixin.TenPay)|Исходный код для платежей WeChat [V2](https://github.com/JeffreySu/WeiXinMPSDK/tree/Developer/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay) и [V3](https://github.com/JeffreySu/WeiXinMPSDK/tree/Developer/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3) Senparc.Weixin.TenPay.dll и Senparc.Weixin.TenPayV3.dll|
|[Senparc.Weixin.Work](src/Senparc.Weixin.Work)|Исходный код SDK для корпоративного WeChat Senparc.Weixin.Work.dll|
|[Senparc.Weixin.Work.Middleware](src/Senparc.Weixin.Work.Middleware)|Исходный код промежуточного слоя для сообщений корпоративного WeChat Senparc.Weixin.Work.Middleware.dll|
|[Senparc.Weixin.WxOpen](src/Senparc.Weixin.WxOpen)|Исходный код SDK для WeChat Mini Programs, включая игры Senparc.Weixin.WxOpen.dll|
|[Senparc.Weixin.WxOpen.Middleware](src/Senparc.Weixin.WxOpen.Middleware)|Исходный код промежуточного слоя для сообщений WeChat Mini Programs, включая игры Senparc.Weixin.WxOpen.Middleware.dll|
|[Senparc.Weixin](src/Senparc.Weixin)|Исходный код всех базовых библиотек Senparc.Weixin.[x].dll|
---
</details>
[Перейти к папке](/src/)
## 🖥️ Описание папки Samples (папка Samples)
Все модули Senparc.Weixin SDK используются одинаковым образом, включая процесс конфигурации, управление AccessToken, обработку сообщений, сервисные сообщения, вызовы API и т.д. Вам достаточно изучить использование любого одного модуля (рекомендовано начать с "Official Account" или "Mini Program"), чтобы понять остальные.
Вы можете узнать способы конфигурации и использования каждого отдельного модуля, открыв соответствующий .sln файл решения внутри каждой папки. В папке All содержится больше демонстраций продвинутых функциональностей.
| Папка | Описание | Способ установки SDK |
|-------|----------|---------------------|
|[MP](/Samples/MP/)|Официальный аккаунт|Пакет NuGet|
|[TenPayV2](/Samples/TenPayV2/)|Платёж WeChat V1 и V2|Пакет NuGet|
|[TenPayV3](/Samples/TenPayV3/)|Платёж WeChat V3 (API TenPay v3)|Пакет NuGet|
|[Work](/Samples/Work/)|Корпоративный WeChat|Пакет NuGet|
|[WxOpen](/Samples/WxOpen/)|Mini Program WeChat|Пакет NuGet|
|[Shared](/Samples/Shared)|Общие файлы для всех образцов|
|[All](/Samples/All/)|Демонстрация всех возможностей официального аккаунта, mini program, платежей WeChat и корпоративного WeChat, рекомендована для интеграции нескольких платформ или продвинутого развития.||
| ┃ [All/console](/Samples/All/console)|Пример консольного приложения (.NET Core)|Пакет NuGet|
| ┃ [All/net45-mvc](/Samples/All/net45-mvc)|Пример приложения, которое можно запустить (.NET Framework bk 4.5 + ASP.NET MVC)|Пакет NuGet|
| ┃ [All/net8-mvc](/Samples/All/net8-mvc)|Пример приложения, которое можно запустить (.NET 8.0), совместимое с .NET 5.0, 6.0, 7.0 и .NET Core| Исходный код (последняя версия)|
[Перейти к папке Samples](/Samples/)
## 🎨 Ресурсы
1. Официальный сайт: <https://weixin.senparc.com/>
2. Онлайн демо (.NET 8.0, совместимое с .NET 6.0, 7.0 и .NET Core): <https://sdk.weixin.senparc.com/>
3. Серия руководств по разработке WeChat: <https://www.cnblogs.com/szw/p/weixin-course-index.html>
4. Общение по технологии WeChat: <https://weixin.senparc.com/QA>
5. Инструмент онлайн редактирования меню: <https://sdk.weixin.senparc.com/Menu>
6. Онлайн тестовый инструмент сообщений: <https://sdk.weixin.senparc.com/SimulateTool>
7. Инструмент тестирования кэширования: <https://sdk.weixin.senparc.com/Cache/Test>
8. Скачивание CHM справочника: <https://sdk.weixin.senparc.com/Document>
9. Исходный код и последние обновления: <https://github.com/JeffreySu/WeiXinMPSDK>
10. Коллекция ресурсов разработки WeChat: <https://github.com/JeffreySu/WeixinResource>
11. Читательская система для книги "Глубинное понимание разработки WeChat": <https://book.weixin.senparc.com>
12. Купить книгу "Глубинное понимание разработки WeChat": <https://item.jd.com/12220004.html>
13. Видеокурс "Быстрый старт разработки WeChat Official Account и Mini Program": <https://github.com/JeffreySu/WechatVideoCourse>
* Группы для технического общения:
> 1 группа (официальный аккаунт): 300313885
> 14 группа (ученики видео курса): 588231256
> 10 группа (распределенный кэш): 246860933
> 12 группа (mini program): 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 (полна)
* Контакты по бизнес вопросам: QQ 498977166
Если этот проект был вам полезен, мы будем рады любым формам помощи, в том числе участие в обновлении кода или предоставлении отзывов. Спасибо!
Финансовая помощь: [Перейти](http://sdk.weixin.senparc.com#donate)
## 📖 Официальные учебники Senparc
<img src="https://sdk.weixin.senparc.com/images/book-cover-front-small-3d.png" width="400" align="right">
> Мы, команда Senparc, потратили два года на создание учебника по разработке WeChat, название которого "Глубинное понимание разработки WeChat: секреты эффективной разработки официальных аккаунтов и мини-программ". Полный комплект ассистентских материалов для чтения доступен здесь: [BookHelper](http://book.weixin.senparc.com).
> Приобретайте официальную версию книги: [Приобрести официальную версию](https://book.weixin.senparc.com/book/link?code=github-homepage)
> Версия кода, использованная при выпуске книги, находится в ветке [BookVersion1](https://github.com/JeffreySu/WeiXinMPSDK/tree/BookVersion1).
## 💻 Официальные видеокурсы Senparc> Для того чтобы помочь вам более наглядно понять детали разработки WeChat, а также использовать учебник "Глубинное понимание разработки WeChat", мы создали группу "Senparc Classroom", которая предлагает видеокурсы по разработке WeChat. Это поможет вам изучить разработку WeChat и .NET с различных углов.<br>
> Видеокурсы состоят из двух частей:<br>
> 1. Основные навыки разработки WeChat<br>
> 2. Примеры реальных случаев использования официальных аккаунтов и мини-программ<br>
>
> Всего 60 занятий, включая дополнительные материалы.<br>
> Видеокурсы уже доступны на NetEase Cloud Classroom, где они были выбраны как "А"-классные курсы за качество производства и содержание материала, [смотреть видео](https://book.weixin.senparc.com/book/videolinknetease?code=github-homepage), [получить код и презентацию курса](https://github.com/JeffreySu/WechatVideoCourse).
## 🧪 Подпишитесь на тестовые аккаунты для проверки функций (SenparcRobot):
| Аккаунт Senparc Network Assistant | Mini Program Senparc Network Assistant | BookHelper |
| --- | --- | --- |
| <img src="https://sdk.weixin.senparc.com/Images/qrcode.jpg" width="258" /> | <img src="https://sdk.weixin.senparc.com/Images/SenparcRobot_MiniProgram.jpg" width="258" /> | <img src="https://sdk.weixin.senparc.com/Images/qrcode-bookhelper.jpg" width="258" /> |
## ✋ Участвовать в разработке кода
> Если вы хотите использовать или изменить исходный код этого проекта, рекомендуется сначала сделать fork. Также приветствуем pull request вашего общего изменения.
1. Fork
2. Создайте вашу ветку с новыми функциями (`git checkout -b my-new-feature`)
3. Сохраните ваши изменения (`git commit -am 'Добавил новую функцию'`)
4. Отправьте ваши изменения в удалённый репозиторий Git (`git push origin my-new-feature`)
5. Затем отправьте pull request на странице этого удалённого репозитория Git в ветке `my-new-feature`
(Пожалуйста, отправляйте pull request в ветку Developer, а не в master).
## 👩🏫 Как использовать .NET Core для разработки
> В текущей ветке содержится полный набор кода для .NET Framework 4.6.2+ и .NET 6.0/7.0/8.0 (неактивные версии можно найти в разделе [release](https://github.com/JeffreySu/WeiXinMPSDK/releases)).<br>
> Код для .NET Framework расположен в директории `/src/Samples/All/net45-mvc`,<br>
> [Рекомендовано] код для .NET 8.0 (совместим с .NET 5.0, 6.0, 7.0 и .NET Core 3.1) находится в директории `/Samples/All/net8-mvc`.
## ↕️ Установка SDK через Nuget
Установка различных модулей SDK через Nuget подробно описана здесь: «[Использование Nuget для установки SDK в проекте](https://github.com/JeffreySu/WeiXinMPSDK/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-Senparc.Weixin.SDK-%D0%B2-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B5-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8F-Nuget)».
## 🏬 Как развернуть
### 1) Развертывание на Azure App Service
Azure App Service — это сервис для веб-приложений от Microsoft Azure, который хорошо поддерживает .NET. Подробные шаги размещены здесь: «[Размещение WeChat сайта на Azure](https://github.com/JeffreySu/WeiXinMPSDK/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%82-%D0%B2%D0%B5%D0%B1%D1%81%D1%82%D0%B2%D0%B0-%D0%B2-Azure-%D0%B2%D0%B5%D0%B1%D1%81%D1%82%D0%B2%D0%B5-%D0%B2-WeChat)».
### 2) Развертывание на любом сервере через FTP
Установите FTP-сервер на ваш веб-сервер (рекомендуется использовать [FileZilla Server](https://filezilla-project.org/download.php?type=server)), затем используйте FTP для загрузки уже скомпилированного локального кода (в данном проекте Samples соответствует [Senparc.Weixin.Sample.Net8](https://github.com/JeffreySu/WeiXinMPSDK/tree/Developer/Samples/All/net8-mvc), после компиляции его можно сразу использовать без необходимости изменения кода). Если вы используете Azure App Service или другую облачную службу, FTP обычно уже активирован.| Ветка | Описание |
|-------|----------|
| master | Основная ветка с официально выпущенным кодом, обычно стабильная и предназначена для использования в продакшне. |
| Developer | 1. Ветка разработки, где новые версии создаются как бета-версии перед выпуском стабильной версии в основную ветку. Если вы хотите первым протестировать новую функциональность, используйте эту ветку.<br> 2. Эта ветка совместима с .NET 4.5 / .NET Core / .NET Core 2.0, рекомендуется отправлять pull requests именно в эту ветку, а не в основную. |
| BookVersion1 | Ветка с кодом, соответствующим состоянию проекта во время публикации книги "[Глубокое понимание WeChat Development: секреты эффективного создания WeChat Official Accounts и Mini Programs](https://book.weixin.senparc.com/book/link?code=github-homepage2)". |
| DotNET-Core_MySQL | Ветка демонстрации интеграции с Pomelo.EntityFrameworkCore.MySql в среде .NET Core. |
| NET4.0 | Ветка, поддерживающая только .NET 4.0, прекращено обновление в 2017 году. Последний код доступен в ветках master и Developer. |
| NET3.5 | Ветка, поддерживающая только .NET 3.5, прекращено обновление в 2015 году. Последний код доступен в ветках master и Developer. |
| Developer-Senparc.SDK | Внутренняя тестовая ветка команды Senparc, можно проигнорировать. |
## 🍟 Благодарности за вклад
Благодарим всех разработчиков, сделавших вклад в этот проект. Вы не только улучшили его, но и способствовали развитию отечественного open-source движения. Спасибо вам всем! Список участников [здесь](https://github.com/JeffreySu/WeiXinMPSDK/blob/master/Contributors.md).
<a href="https://github.com/JeffreySu/WeiXinMPSDK/graphs/contributors">
<img src="https://contrib.rocks/image?repo=JeffreySu/WeiXinMPSDK&max=200"/>
</a>
## 💰 Донат
Если данный проект полезен вам, мы рады любому виду помощи — будь то финансовый донат или участие в обновлении кода или предоставление отзывов. Спасибо!
Финансовый донат:
[](http://sdk.weixin.senparc.com#donate)
## ⭐ Статистика количества звёзд
[](https://starchart.cc/JeffreySu/WeiXinMPSDK)
## 📎 Лицензия
Apache License Version 2.0
```plaintext
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 WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Подробнее: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
[!TIP] 100% открытый исходный код, поддерживается для коммерческого использования.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )