All Projects → Wlitsoft → Weixinsdk

Wlitsoft / Weixinsdk

Licence: apache-2.0
Wlitsoft 框架 - 微信公众号开发工具包(C# 版)

Projects that are alternatives of or similar to Weixinsdk

Applicationinsights Dotnet Server
Microsoft Application Insights for .NET Web Applications
Stars: ✭ 130 (+27.45%)
Mutual labels:  asp-net, sdk
Sdk3rd
第三方SDK集成库,授权/分享/支付
Stars: ✭ 249 (+144.12%)
Mutual labels:  sdk, weixin
Wechat
weixin/wechat/微信公众平台/微信企业号/微信商户平台/微信支付 go/golang sdk
Stars: ✭ 2,330 (+2184.31%)
Mutual labels:  sdk, weixin
Weixin Python
微信SDK - 包括微信支付,微信公众号,微信登陆,微信消息处理等
Stars: ✭ 1,191 (+1067.65%)
Mutual labels:  sdk, weixin
Weixinmpsdk
微信全平台 SDK Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 6.0。已支持微信公众号、小程序、小游戏、企业号、企业微信、开放平台、微信支付、JSSDK、微信周边等全平台。 WeChat SDK for C#.
Stars: ✭ 7,098 (+6858.82%)
Mutual labels:  sdk, weixin
Wechatpy
WeChat SDK for Python
Stars: ✭ 3,016 (+2856.86%)
Mutual labels:  sdk, weixin
Wechat
WeChat SDK for Go (微信SDK:简单、易用)
Stars: ✭ 3,144 (+2982.35%)
Mutual labels:  sdk, weixin
Werobot
WeRoBot 是一个微信公众号开发框架
Stars: ✭ 3,973 (+3795.1%)
Mutual labels:  sdk, weixin
Wxjava
Wechat-Group/WxJava的备份,有问题请到对应项目下讨论
Stars: ✭ 56 (-45.1%)
Mutual labels:  sdk, weixin
Wxpay
微信支付 wxpay SDK for Go, 集成简单,功能完善,持续更新。
Stars: ✭ 99 (-2.94%)
Mutual labels:  sdk, weixin
Go Tfe
Terraform Cloud/Enterprise API Client/SDK in Golang
Stars: ✭ 98 (-3.92%)
Mutual labels:  sdk
Wechat Mall
清欢美味食光机,也是我做的第一个小程序,功能比较简单,后台基于API工厂
Stars: ✭ 98 (-3.92%)
Mutual labels:  weixin
Ios Print Sdk
iOS Print SDK. Easily add print on demand functionality to your app within minutes! Print Postcards, Magnets, Photo Prints, Posters, Stickers, T-Shirts, PhotoBooks, etc.
Stars: ✭ 99 (-2.94%)
Mutual labels:  sdk
Wechat Mp Hack
微信公众平台模拟登录自动群发图文消息
Stars: ✭ 101 (-0.98%)
Mutual labels:  weixin
Opentok Ruby Sdk
OpenTok Server SDK for Ruby
Stars: ✭ 97 (-4.9%)
Mutual labels:  sdk
Easywechat
📦 一个 PHP 微信 SDK
Stars: ✭ 9,676 (+9386.27%)
Mutual labels:  sdk
Netcorecli Fsc
[DEPRECATED] F# and .NET Core SDK working together
Stars: ✭ 97 (-4.9%)
Mutual labels:  sdk
Nim ios uikit
网易云信 iOS UI 组件,提供聊天界面,文本消息,图片消息,语音消息,视频消息,地理位置消息,自定义消息(阅后即焚)等消息示例。#推荐客户得比特币,首次推荐得0.02BTC,连续推荐得0.03BTC/单,上不封顶。点击参与https://yunxin.163.com/promotion/recommend
Stars: ✭ 1,326 (+1200%)
Mutual labels:  sdk
Go Sdk
Stars: ✭ 94 (-7.84%)
Mutual labels:  sdk
Leaf
一个开发友好、功能完备的开源微信商城框架
Stars: ✭ 102 (+0%)
Mutual labels:  weixin

Wlitsoft.Framework.WeixinSDK

Build status

Wlitsoft 框架 - 微信公众号开发工具包

NuGet

包名称 当前版本
Wlitsoft.Framework.WeixinSDK NuGet
Wlitsoft.Framework.WeixinSDK.Config NuGet
Wlitsoft.Framework.WeixinSDK.TokenService.Distributed NuGet

关于项目

​ 该项目的背景是现在微信公众号、微信服务号乃至微信小程序开发非常普遍了已经,以上种种开发均需要和微信打交道,但是微信官方没有提供原始的 .Net 版的 SDK 供我们使用,并且官方提供的示例亦 Bug 连连,所以决定成立该开源项目。

      现在已经有些非常优秀的 .Net 版的 WeixinSDK ,并且功能非常的全面、扩展性亦非常的好,那么大家要问了 为什么还要重复造轮子呢,这个问道点上了,我所有的开源项目第一是为了项目使用,再一个原因是为了大家学习,所有所有的项目每个类均有完整的代码注释,每个类亦有对应的单元测试。并且代码易于理解,接口或抽象亦于扩展。

项目依赖

该项目依赖了一些基本的组件,这些组件也是几个开源项目:

  • Wlitsoft.Framework.Common 【公共类库】
  • Wlitsoft.Framework.Common.Serializer.JsonNet 【基于 Json.Net 的序列化实现】
  • Wlitsoft.Framework.Common.Logger.Log4Net 【基于 log4net 的日志记录者】
  • Wlitsoft.Framework.Caching.Redis 【分布式缓存 Redis 实现】

基本 API

  • 微信令牌、js 令牌获取;
  • 微信模板消息;
  • OAuth2 授权相关接口;
  • 用户管理相关接口。

令牌服务

  • TokenServiceBase 令牌服务基类,提供所有令牌服务的基本实现以及抽象。
  • GeneralTokenService 基本的令牌服务,使用本地缓存加定时器实现的基本令牌服务,如果是单机单站点的应用可以使用此令牌服务。
  • DebugTokenService 调试令牌服务,该令牌服务主要应用于调试场景,直接指定一个 Token 即可调用 WeixinSDK 中的接口。
  • DistributedTokenService 分布式令牌服务,使用分布式缓存实现的令牌服务,主要应用于多机多站点的场景。

配置令牌服务

需要在应用程序启动代码里面执行一次即可

​ GeneralTokenService tokenService = new GeneralTokenService();

​ App.Builder.SetWeixinTokenService(tokenService);

微信消息处理

微信给我们开放了一些开发能力,比如接收微信的一些事件(关注事件、取消关注事件、按钮点击事件等)消息、接收普通文本消息、语音消息等功能。

该 SDK 中针对微信消息处理模块开发了一个简单的消息处理框架,只需要按照指定的写法写一些实现类即可。

  • WeixinSDK/src/WeixinSDK/Message/Request/ 请求消息相关实体。
  • WeixinSDK/src/WeixinSDK/Message/Response/ 响应消息相关实体。
  • WeixinSDK/src/WeixinSDK/Message/Process/ 微信消息处理逻辑。

配置消息处理

  1. 硬编码方式配置

    MessageProcessConfiguration pc = new MessageProcessConfiguration();
    pc.MessageList.Add(new MessageConfiguration<RequestTextMessageProcessFake>(RequestMsgType.Text));
    
    App.Builder.SetWeixinMessageConfig(pc);
    
  2. 配置文件方式配置

{
  "Messages": [
    {
      "MsgType": "Text",
      "Type": "WeixinSDK.Config.Test.Fake.MessageProcessDemo01,WeixinSDK.Config.Test"
    }
  ],
  "EventMessages": [
    {
      "EventType": "Subscribe",
      "EventKey": "Key01",
      "Type": "WeixinSDK.Config.Test.Fake.EventMessageProcessDemo01,WeixinSDK.Config.Test"
    }
  ]
}

App.Builder.SmtWeixinMessageProcessConfigByJsonFile("./xxxx.json");

微信消息处理示例类

using Wlitsoft.Framework.WeixinSDK.Core;
using Wlitsoft.Framework.WeixinSDK.Message.Request.Event;
using Wlitsoft.Framework.WeixinSDK.Message.Response;

namespace WeixinSDK.Test.Fake
{
    /// <summary>
    /// 订阅事件消息 Key_001 请求处理。
    /// </summary>
    public class RequestSubscribeEventMessageKey_001ProcessFake : WeixinMessageProcessBase
    {
        #region WeixinMessageProcessBase 成员

        /// <summary>
        /// 执行处理。
        /// </summary>
        public override void Process()
        {
            RequestSubscribeEventMessage requestMessage = base.GetRequestMessage<RequestSubscribeEventMessage>();

            ResponseTextMessage responseMessage = new ResponseTextMessage()
            {
                Content = requestMessage.EventKey
            };

            base.ResponseMessage = responseMessage;
        }

        #endregion
    }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].