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

OSCHINA-MIRROR/midaye-WeiXinMPSDK

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.en.md

Как работать с WeChat Official Account?

  • Как работать с WeChat Mini Program (включая Mini Game)?
  • Как расширить функциональность проекта ASP.NET MVC?
  • Как работать с WeChat Corporate Account?
  • Как работать с Corporate Wechat?
  • Как работать с Wechat Open Platform?
  • Как использовать распределённый кэш?

Как разработать 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]

Ресурсы:

  1. Официальный сайт Senparc.Weixin SDK: https://weixin.senparc.com/.
  2. Сайт онлайн-демо: https://sdk.weixin.senparc.com/.
  3. Учебное пособие в блоге: https://www.cnblogs.com/szw/archive/2013/05/14/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.wexin.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. Видеокурс: https://github.com/JeffreySu/WechatVideoCourse.

Техническая коммуникация 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.

Следуйте официальному аккаунту Demo (SenparcRobot):

Senparc Helper Official Account Senparc Helper Mini-Program BookHelper

Разработка с .Net Core

Текущая ветвь включает коды .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.

  1. Форк.
  2. Создайте свою собственную ветку (git checkout -b my-new-feature).
  3. Отправьте изменения (git commit -am'Добавлена некоторая функция').
  4. Отправьте записи об изменениях в удалённый репозиторий (git push origin git my-new-function).
  5. Затем перейдите к ветке my-new-function на сайте GitHub, запустите запрос на вытягивание (Pull Request) (обратитесь к ветке Developer, а не отправляйте напрямую в основную ветку master).

Описание папки проекта (в папке src)

Папка Описание
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, исходный код

Описание папки с примерами (в папке Samples)

Папка Описание Ссылка на библиотеку 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

Senparc.Weixin.MP.Sample Key Code

Примечание: это проект MVC, соответствующий файл в проекте WebForm можно изучить.

/Controllers/WeixinController.cs

Следующие токены необходимо синхронизировать с токенами синхронизации в фоновых настройках официального аккаунта 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!");
    }
    ...
}

Как обрабатывать запросы официального аккаунта WeChat?

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).

PM> Install-Package Senparc.Weixin.Work

Как работать с открытой платформой WeChat?

Senparc.Weixin.Open.dll инкапсулирует все API открытой платформы. Процесс обработки сообщений остаётся таким же, как в случае с WeChat Official Account SDK (Senparc.Weixin.MP). Для некоторых специальных процессов обработки сообщений рекомендуется ознакомиться с официальным документом, а затем сравнить демо в проекте Senparc.Weixin.MP.Sample.

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 )

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

Введение

Оригинал github: https://github.com/JeffreySu/WeiXinMPSDK Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/midaye-WeiXinMPSDK.git
git@api.gitlife.ru:oschina-mirror/midaye-WeiXinMPSDK.git
oschina-mirror
midaye-WeiXinMPSDK
midaye-WeiXinMPSDK
master