微信公众平台C# SDK:Senparc.Weixin.MP.dll
=================
已经支持所有微信4.5 API,支持语音接收及返回音乐格式。
已经支持关注(订阅)事件推送(尚未发布的消息推送功能可以通过项目中的单元测试进行开发,如自定义菜单)。
已经支持用户会话上下文(解决服务器无法使用Session处理用户信息的问题)。
目前官方的API都已完美集成,除非有特殊说明,所有升级都会尽量确保向下兼容,所以已经发布的版本请放心使用或直接升级(覆盖)最新的[Senparc.Weixin.MP.dll](https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.BuildOutPut)。
微信公众平台SDK:Senparc.Weixin.MP beta
资源
----------------
官网地址:http://weixin.senparc.com/
源代码及最新更新:https://github.com/JeffreySu/WeiXinMPSDK
Q&A:https://github.com/JeffreySu/WeiXinMPSDK/wiki/QA
SDK技术交流QQ群:300313885
业务联系QQ:498977166
新浪微博:[@苏震巍](http://weibo.com/jeffreysu1984)
如果这个项目对您有用,我们欢迎各方任何形式的捐助,也包括参与到项目代码更新或意见反馈中来。谢谢!
资金捐助:https://me.alipay.com/jeffreysu
###关注测试账号(SenparcRobot):
[![image]](http://weixin.senparc.com/)
[image]: http://weixin.senparc.com/Images/qrcode.jpg
微信公众平台开发系列教程:http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html
项目文件夹说明
--------------
> Senparc.Weixin.MP.BuildOutPut:最新版本Senparc.Weixin.MP.dll及Senparc.Weixin.MP.MvcExtension.dll发布文件夹
> Senparc.Weixin.MP.MvcExtension:Senparc.Weixin.MP.MvcExtension.dll源码,为MVC4.0项目提供的扩展包。
> Senparc.Weixin.MP.P2P:用户点对点及无限制群发的扩展功能包,同时具备侦探fakeid和OpenId的功能。
> 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源代码
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(string signature, string timestamp, string nonce, string echostr)
{
if (CheckSignature.Check(signature, timestamp, nonce, Token))
{
return Content(echostr);//返回随机字符串则表示验证通过
}
else
{
return Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token));
}
}
```
下面这个Action(Post)用于接收来自微信服务器的Post请求(通常由用户发起),这里的if必不可少,之前的Get只提供微信后台保存Url时的验证,每次Post必须重新验证,否则很容易伪造请求。
```C#
/// <summary>
/// 用户发送消息后,微信平台自动Post一个请求到这里,并等待响应XML
/// </summary>
[HttpPost]
[ActionName("Index")]
public ActionResult Post(string signature, string timestamp, string nonce, string echostr)
{
if (!CheckSignature.Check(signature, timestamp, 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(string signature, string timestamp, string nonce, string echostr)
{
if (!CheckSignature.Check(signature, timestamp, nonce, Token))
{
return Content("参数错误!");
}
var messageHandler = new CustomMessageHandler(Request.InputStream);//接收消息
messageHandler.Execute();//执行微信处理过程
//return Content(messageHandler.ResponseDocument.ToString());//v0.7-
return new WeixinResult(messageHandler);//v0.8+ with MvcExtension
}
```
整个消息的接收、处理、返回分别只需要一行代码。
上述代码中的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 CustomMessageHandler(Stream inputStream)
: base(inputStream)
{
}
public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
{
throw new NotImplementedException();
}
public override IResponseMessageBase OnVoiceRequest(RequestMessageVoice requestMessage)
{
throw new NotImplementedException();
}
....
}
}
```
其中OnTextRequest、OnVoiceRequest等分别对应了接收文字、语音等不同的请求类型。
比如我们需要对文字类型请求做出回应,只需要完善OnTextRequest方法:
```C#
public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
{
//TODO:这里的逻辑可以交给Service处理具体信息,参考OnLocationRequest方法或/Service/LocationSercice.cs
var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);//v0.3版本之前的非泛型方法仍然有效
responseMessage.Content =
string.Format(
"您刚才发送了文字信息:{0}",
requestMessage.Content);
return responseMessage;
}
```
这样CustomMessageHandler在执行messageHandler.Execute()的时候,如果发现请求信息的类型是文本,会自动调用以上代码,并返回代码中的responseMessage作为返回信息。responseMessage可以是IResponseMessageBase接口下的任何类型(包括文字、新闻、多媒体等格式)。
从v0.4.0开始,MessageHandler增加了对用户会话上下文的支持,用于解决服务器上无法使用Session管理用户会话的缺陷。详见:[用户上下文WeixinContext和MessageContext](https://github.com/JeffreySu/WeiXinMPSDK/wiki/%E7%94%A8%E6%88%B7%E4%B8%8A%E4%B8%8B%E6%96%87WeixinContext%E5%92%8CMessageContext)
捐助
--------------
如果这个项目对您有用,我们欢迎各方任何形式的捐助,也包括参与到项目代码更新或意见反馈中来。谢谢!
资金捐助:https://me.alipay.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
ASP.NET/c#微信公众平台开发SDK (489个子文件)
_._ 3B
Global.asax 118B
Default.aspx 4KB
Weixin.aspx 411B
DesignTimeResolveAssemblyReferences.cache 205KB
Moq.chm 529KB
Web.config 7KB
Web.config 5KB
packages.config 3KB
Web.config 3KB
packages.config 2KB
Web.Release.config 1KB
Web.Release.config 1KB
Web.Debug.config 1KB
Web.Debug.config 1KB
Redirect.VS11.config 735B
Redirect.config 487B
App.config 286B
repositories.config 214B
MessageHandler.cs 12KB
EntityHelper.cs 10KB
RequestMessageFactoryTest.cs 8KB
MessageHandlersTest.cs 8KB
CustomMessageHandler.cs 8KB
WeixinContext.cs 8KB
WeixinController_OldPost.cs 7KB
ResponseMessageFactoryTest.cs 6KB
EntityHelperTest.cs 6KB
RequestUtility.cs 6KB
MvcMockHelpers.cs 6KB
WeixinController.cs 5KB
Weixin.aspx.cs 5KB
RequestMessageFactory.cs 5KB
ResponseMessageBase.cs 4KB
Enums.cs 4KB
CommonApi.cs 4KB
MessageHandlers_CancelTest.cs 4KB
WeixinControllerTest.cs 3KB
Post.cs 3KB
EventService.cs 3KB
FilterTestControllerTest.cs 3KB
CustomMessageHandler_Events.cs 3KB
ResponseMessageFactory.cs 3KB
ResponseMessageBaseTest.cs 3KB
RequestUtilityTest.cs 2KB
CommonApiTest.cs 2KB
BundleConfig.cs 2KB
LocationService.cs 2KB
MessageContext.cs 2KB
CheckSignature.cs 2KB
ValuesControllerTest.cs 2KB
WeixinResult.cs 2KB
PostTest.cs 2KB
BaseTest.cs 2KB
GoogleMapHelper.cs 2KB
GpsHelper.cs 1KB
MsgTypeHelper.cs 1KB
WeixinServiceController.cs 1KB
TestUploadMediaFileController.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
GoogleMapHelperTest.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
CheckSignatureTest.cs 1KB
DateTimeHelper.cs 1KB
WeixinInternalRequestAttribute.cs 1KB
Markers.cs 1KB
Get.cs 1KB
WeixinExceptionTest.cs 1KB
GetTest.cs 1KB
DateTimeHelperTest.cs 1022B
ResponseMessageNews.cs 1017B
HomeController.cs 1009B
RequestMessageEventBase.cs 996B
MsgTypeHelperTest.cs 970B
WeixinUserInfoResult.cs 968B
BaseButton.cs 946B
GpsHelperTest.cs 902B
AssemblyInfo.cs 892B
RequestMessageEvent_Location.cs 890B
WxJsonResult.cs 884B
FilterTestController.cs 835B
Global.asax.cs 806B
Weixin.aspx.designer.cs 794B
ValuesController.cs 790B
WebApiConfig.cs 749B
FileHelper.cs 691B
RequestMessageLocation.cs 672B
RequestMessageBase.cs 639B
Default.aspx.cs 637B
RouteConfig.cs 593B
ErrorJsonResultException.cs 587B
MessageBase.cs 573B
AccessTokenResult.cs 524B
RequestMessageEvent_Unsubscribe.cs 483B
ResponseMessageMusic.cs 477B
共 489 条
- 1
- 2
- 3
- 4
- 5
十年小白菜
- 粉丝: 59
- 资源: 44
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java的在线宠物用品交易网站设计与实现源码
- 毕业设计-仿生六足机器人的制作全教程源码+电子元器件+程序代码+线路组件图+安装教程+搭建视频教程
- 基于ROS和webots的xrobot机械臂仿真初探C++源码
- 基于ROS的点焊机器人仿真与控制python源码+文档说明+使用说明+详细注释
- 基于vue实现的细粒度交通时空大数据分析系统+源代码+文档说明
- 安卓大作业-基于Electron的交通时空大数据分析挖掘系统客户端(Android)+源代码+文档说明+界面截图
- 基于Java的朱氏集团客户关系管理系统设计源码
- 基于C++的作业提交与批改系统设计源码
- 基于Vue2的移动端电影资讯网站设计源码
- 高分课程设计作业-基于QT的模仿宝石迷阵游戏C++源码+文档说明+界面截图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页