微信C# SDK
=================
微信公众号:Senparc.Weixin.MP.dll
-----------------
微信企业号:Senparc.Weixin.QY.dl
-----------------
微信开放平台:Senparc.Weixin.Open.dll
-----------------
已经支持所有微信6 API,包括自定义菜单、模板信息接口、素材上传接口、群发接口、多客服接口、支付接口、微小店接口、卡券接口等。
(同时由于易信的API目前与微信保持一致,此SDK也可以直接用于易信,如需使用易信的自定义菜单,通用接口改成易信的通讯地址即可)
已经支持用户会话上下文(解决服务器无法使用Session处理用户信息的问题)。
已经全面支持微信公众号、企业号、开放平台的最新API。
目前官方的API都已完美集成,除非有特殊说明,所有升级都会尽量确保向下兼容,所以已经发布的版本请放心使用或直接升级(覆盖)最新的[Senparc.Weixin.MP.dll](https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.BuildOutPut)、[Senparc.Weixin.QY.dll](https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.BuildOutPut) 、[Senparc.Weixin.Open.dll](https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.BuildOutPut) 或 [Senparc.Weixin.dll](https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.BuildOutPut) 。
如果需要使用或修改此项目的源代码,建议先Fork。也欢迎将您修改的通用版本Pull Request过来。
资源
----------------
官网地址:http://weixin.senparc.com/
系列教程:http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html
微信技术交流社区:http://www.weiweihi.com/QA
自定义菜单在线编辑工具:http://weixin.senparc.com/Menu
在线消息测试工具:http://weixin.senparc.com/SimulateTool
源代码及最新更新:https://github.com/JeffreySu/WeiXinMPSDK
技术交流QQ群:
1群:300313885(已满)
2群:293958349(已满) 3群:342319110(已满) 4群:372212092(已满) 5群:377815480(已满)6群:425898825
业务联系QQ:498977166
新浪微博:[@苏震巍](http://weibo.com/jeffreysu1984)
如果这个项目对您有用,我们欢迎各方任何形式的捐助,也包括参与到项目代码更新或意见反馈中来。谢谢!
资金捐助: [进入主页](http://weixin.senparc.com)
###关注测试账号(SenparcRobot):
[![qrcode]](http://weixin.senparc.com/)
[qrcode]: http://weixin.senparc.com/Images/qrcode.jpg
微信公众平台开发系列教程:http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html
项目文件夹说明
--------------
> Senparc.Weixin.MP.BuildOutPut:所有最新版本DLL发布文件夹
> Senparc.Weixin.MP.MvcExtension:Senparc.Weixin.MP.MvcExtension.dll源码,为MVC4.0项目提供的扩展包。
> Senparc.Weixin.MP.Sample:可以直接发布使用的Demo(ASP.NET MVC 4.0,需要.NET 4.0)
> Senparc.Weixin.MP.Sample.WebForms:可以直接发布使用的Demo(ASP.NET WebForms,需要.NET 3.5)
> Senparc.Weixin.MP:Senparc.Weixin.MP.dll 微信公众账号SDK源代码
> Senparc.Weixin.QY:Senparc.Weixin.QY.dll 微信企业号SDK源代码
> Senparc.Weixin.Open:Senparc.Weixin.Open.dll 第三方开放平台SDK源代码
> Senparc.Wiexin:所有Senparc.Weixin.[x].dll 基础类库源代码
Senparc.Weixin.MP.Sample中的关键代码说明(这是MVC项目,WebForms项目见Weixin.aspx)
--------------
###/Controllers/WeixinController.cs
下面的Token需要和微信公众平台后台设置的Token同步,如果经常更换建议写入Web.config等配置文件(实际使用过程中两列建议使用数字+英文大小写改写Token,Token一旦被破解,微信请求将很容易被伪造!):
```C#
public readonly string Token = "weixin";
```
下面这个Action(Get)用于接收并返回微信后台Url的验证结果,无需改动。地址如:http://domain/Weixin或http://domain/Weixin/Index
```C#
/// <summary>
/// 微信后台验证地址(使用Get),微信后台的“接口配置信息”的Url填写如: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,请注意保持Token一致。");
}
}
```
上述方法中的PostModel是一个包括了了Signature、Timestamp、Nonce(由微信服务器通过请求时的Url参数传入),以及AppId、Token、EncodingAESKey等一系列内部敏感的信息(需要自行传入)的实体类,同时也会在后面用到。
下面这个Action(Post)用于接收来自微信服务器的Post请求(通常由用户发起),这里的if必不可少,之前的Get只提供微信后台保存Url时的验证,每次Post必须重新验证,否则很容易伪造请求。
```C#
/// <summary>
/// 用户发送消息后,微信平台自动Post一个请求到这里,并等待响应XML
/// </summary>
[HttpPost]
[ActionName("Index")]
public ActionResult Post(PostModel postModel)
{
if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
{
return Content("参数错误!");
}
...
}
```
###如何处理微信公众账号请求?
Senparc.Weixin.MP提供了2中处理请求的方式,[传统方法](https://github.com/JeffreySu/WeiXinMPSDK/wiki/处理微信信息的常规方法)及使用[MessageHandler](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)处理方法(推荐)。上面两个方法在wiki中已经有比较详细的说明,这里简单举例MessageHandler的处理方法。
MessageHandler的处理流程非常简单:
``` C#
[HttpPost]
[ActionName("Index")]
public ActionResult Post(PostModel postModel)
{
if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token))
{
return Content("参数错误!");
}
postModel.Token = Token;
postModel.EncodingAESKey = EncodingAESKey;//根据自己后台的设置保持一致
postModel.AppId = AppId;//根据自己后台的设置保持一致
var messageHandler = new CustomMessageHandler(Request.InputStream, postModel);//接收消息
messageHandler.Execute();//执行微信处理过程
//return Content(messageHandler.ResponseDocument.ToString());//v0.7-
//return new WeixinResult(messageHandler);//v0.8+ with MvcExtension
return new FixWeixinBugWeixinResult(messageHandler);//为了解决官方微信5.0以后软件换行bug暂时添加的方法,平时用上面一个方法即可
}
```
整个消息除了postModel的赋值以外,接收、处理、返回分别只需要一行代码。
上述代码中的CustomMessageHandler是一个自定义的类,继承自Senparc.Weixin.MP.MessageHandler.cs。MessageHandler是一个抽象类,包含了执行各种不同请求类型的抽象方法(如文字,语音,位置、图片等等),我们只需要在自己创建的CustomMessageHandler中逐个实现这些方法就可以了。刚建好的CustomMessageHandler.cs如下:
```C#
using System;
using System.IO;
using Senparc.Weixin.MP.MessageHandlers;
using Senparc.Weixin.MP.Entities;
namespace Senparc.Weixin.MP.Sample.CustomerMessageHandler
{
public class CustomMessageHandler : MessageHandler<MessageContext>
{
public public CustomMessageHandler(Stream inputStr
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
C#微信接口调用示例 (1486个子文件)
_._ 3B
Global.asax 118B
Global.asax 91B
OpenAuthProviders.ascx 1KB
Default.aspx 11KB
jsapi.aspx 9KB
Manage.aspx 8KB
Register.aspx 4KB
Login.aspx 3KB
Default.aspx 2KB
RegisterExternalLogin.aspx 2KB
Contact.aspx 2KB
About.aspx 1KB
native.aspx 669B
feedback.aspx 438B
payNotifyUrl.aspx 437B
index.aspx 426B
Weixin.aspx 411B
Qy.aspx 403B
nativecall.aspx 106B
DesignTimeResolveAssemblyReferences.cache 226KB
DesignTimeResolveAssemblyReferencesInput.cache 29KB
DesignTimeResolveAssemblyReferencesInput.cache 24KB
DesignTimeResolveAssemblyReferencesInput.cache 10KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
Moq.chm 529KB
Web.config 9KB
Web.config 3KB
packages.config 3KB
Web.config 3KB
packages.config 2KB
packages.config 2KB
Web.Release.config 1KB
Web.config 1KB
Web.Release.config 1KB
Web.Release.config 1KB
Web.Debug.config 1KB
Web.Debug.config 1KB
Web.Debug.config 1KB
Bundle.config 1KB
Redirect.VS11.config 752B
Redirect.VS11.config 735B
Redirect.config 500B
Redirect.config 487B
App.config 382B
app.config 268B
Web.config 224B
repositories.config 214B
test.bak.config 201B
repositories.config 126B
CardAPI.cs 37KB
TenPayV3Controller.cs 35KB
MessageHandler.cs 33KB
RequestMessageFactoryTest.cs 31KB
AnalysisAPI.cs 24KB
QyMessageHandler.cs 22KB
ShakeAroundApi.cs 22KB
GroupMessageAPI.cs 21KB
MailListApi.cs 20KB
TenPayController.cs 20KB
CommonApi.Menu.cs 20KB
CommonApi.Menu.cs 19KB
RequestUtility.cs 18KB
RequestMessageFactoryTest.cs 18KB
CustomMessageHandler.cs 18KB
EntityHelper.cs 18KB
SimulateToolController.cs 17KB
CustomMessageHandler_Events.cs 17KB
MessageHandlersTest.cs 16KB
CustomServiceAPI.cs 15KB
MediaAPI.cs 15KB
Enums.cs 15KB
MassApi.cs 14KB
EntityHelper.cs 13KB
Enums.cs 12KB
RequestMessageFactory.cs 11KB
AsynchronousApi.cs 11KB
WeixinContext.cs 10KB
WXBizMsgCrypt.cs 10KB
RequestMessageFactory.cs 10KB
WeixinController.cs 10KB
Enums.cs 10KB
ResponseMessageBaseTest.cs 10KB
MessageAgent.cs 10KB
CardCreateData.cs 10KB
ChatApi.cs 10KB
ArticleAnalysisItemJson.cs 10KB
ProductResult.cs 9KB
WeixinControllerTest.cs 9KB
MediaApi.cs 9KB
WiFiApi.cs 9KB
WXBizMsgCrypt.cs 9KB
PoiApi.cs 9KB
Cryptography.cs 8KB
Cryptography.cs 8KB
MessageHandler.cs 8KB
共 1486 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
资源评论
- 赵庆明老师2019-03-15微信公众号用的,Senparc.Weixin
- 谭谢峰2017-01-09很有帮助,谢谢
- kaicn_zou2018-05-16个人感觉还行,有点用
- fuyankuncn2017-04-16一直在找,不错的东西。
半曲恋江南
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功