您的位置:首页 > 移动开发 > 微信开发

[原创][下载]Senparc.Weixin.MP-微信公众平台SDK(C#) - 已支持微信6.x API

2015-06-11 16:40 896 查看
/article/4837501.html

[原创][下载]Senparc.Weixin.MP-微信公众平台SDK(C#) - 已支持微信6.x API

因为正在计划做一个微信机器人,需要用ASP.NET,找了一下只有PHP的SDK,没有C#的,于是动手写了一个,已经全面支持微信6.x所有接口,包括多客服、卡券、微信支付等。

微信公众平台地址:http://mp.weixin.qq.com

Senparc.Weixin.MP官网地址:http://weixin.senparc.com

所有源代码(SDK+示例): https://github.com/JeffreySu/WeiXinMPSDK(新版本已发布,可以在github中查看最新的代码和教程)

微信技术交流社区:http://www.weiweihi.com/QA

目前已经支持微信6.x所有API(主要是自定义菜单),并且我为大家准备了两个非常好用的在线工具(都已在源代码中开源):

在线菜单编辑工具:http://weixin.senparc.com/Menu 可视化编辑微信菜单

在线模拟请求测试工具:http://weixin.senparc.com/SimulateTool 已经支持并发及异步测试功能

技术交流QQ群:

1群:300313885



2群:293958349 (已满)

3群:342319110 (已满)

4群:372212092 (已满)

5群:377815480 (已满)

6群:425898825 (已满)

用微信扫描下面二维码,添加测试账号为好友(添加后发送文本、位置、图片信息,测试反馈效果):



注意:开始开发之前需要到上面申请一个公众账号,并开启“关键词自动回复 => 公众平台消息接口”,根据提示设置token等信息。

Senparc.Weixin.MP所有项目文件如下:



(项目已更新,具体文件请到https://github.com/JeffreySu/WeiXinMPSDK查看或同步最新代码)

Senparc.Weixin.MP几个关键类介绍如下:

Entities/Request*.cs 用于接收微信平台自动发送到服务器的实体(发送过来的是XML),包括文本、位置、图片三类

Entities/Response*.cs 用于反馈给发送人的信息实体(最终会转成XML),包括文本、新闻(图文)两类

Helpers/EntityHelper.cs 用于实体和XML之间的转换(由于其中有许多需要特殊处理的字段和类型,这里不能简单用XML序列化)

Helpers/MsgTypeHelper.cs 用于获取消息类型

CheckSignature.cs 验证请求合法性类

Enums.cs 各种枚举

RequestMessageFactory.cs 用于自动生成不同Request类型的实体,并作必要的数据填充

Senparc.Weixin.MP几个关键类及重要方法(按一般使用过程排序,注意很多地方已经升级到更简洁的方法,请参考最新的代码:https://github.com/JeffreySu/WeiXinMPSDK

生成验证字符串:Senparc.Weixin.MP.CheckSignature.GetSignature(string timestamp, string nonce, string token = null),返回根据微信平台提供的数据,SHA1加密后的验证字符串(注意token必须跟公众平台的设置一直)

验证请求:Senparc.Weixin.MP.CheckSignature.Check(string signature, string timestamp, string nonce, string token = null),验证请求是否合法

获取请求实体:var requestMessage = Senparc.Weixin.MP.RequestMessageFactory.GetRequestEntity(XDocument doc); 根据不同请求的类型,自动生成可用于操作的实体(doc只需要用XDocument.Parse(xmlString)就能生成),requestMessage.MsgType就是请求枚举类型。

进行判断及各类操作。

根据需要,创建响应类型的实体,如:var responseMessage = ResponseMessageBase.CreateFromRequestMessage(requestMessage, ResponseMsgType.Text) as ResponseMessageText; 即可返回文本类型信息。
注:v0.6版本以后,此方法可以简写为:var responseMessage = CreateResponseMessage<ResponseMessageText>();

由于目前微信只接受XML的返回数据,所以在返回之前还需要做一次转换:XDocument responseDoc = Senparc.Weixin.MP.Helpers.EntityHelper.ConvertEntityToXml(responseMessage); var xmlString = responseDoc.ToString();

至此整个微信公众账号的自动响应过程结束。

所有Senparc.Weixin.MP源代码及示例代码已开源(示例是ASP.NET MVC 4,.NET 4.0,为了提高兼容性,Senparc.Weixin.MP源代码使用.NET 3.5):

https://github.com/JeffreySu/WeiXinMPSDK


(包含三个文件夹:Senparc.Weixin.MP、Senparc.Weixin.MP.BuildOutPut、Senparc.Weixin.MP.Sample,分别对应[b]Senparc.Weixin.MP.dll源代码项目、[b]Senparc.Weixin.MP.dll输出目录、Web示例,Web示例建议放到公网测试,让公众平台自动发送[/b])[/b]

目前SDK还在测试中,欢迎大家提出宝贵意见!

补充:

关于直接使用Senparc.Weixin.MP.Sample部署到服务器上进行测试的朋友,有几点需要注意一下:

进入微信公众账号后台后,依次进入 高级功能 > 开发模式 > 成为开发者 ,编辑接口配置信息,其中Url中需要填写默认端口(80)的Url,如http://weixin.senparc.com/weixin (注意后面的/weixin一定要加,这是用于验证的一个Controller地址)

为了确保安全,在上述接口配置信息中的Token最好输入一个复杂一些的字符串,并且在Senparc.Weixin.MP.Sample/Controllers/WeixinController.cs中修改Token使之匹配,如:



关于Senparc.Weixin.MP.Test单元测试项目所有Senparc.Weixin.MP核心代码都已通过单元测试。没有外网部署条件的朋友也可以使用Senparc.Weixin.MP.Test项目提供的单元测试进行测试,这些测试同样适用于微信还没有正式发布、无法实际测试的功能,如消息推送:



截图对应测试版本:v0.3.1

升级记录:https://github.com/JeffreySu/WeiXinMPSDK/blob/master/Senparc.Weixin.MP.BuildOutPut/readme.md

微信开发教程(Senparc.Weixin.MP SDK): /article/4837502.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: