- 授权协议: GPL
- 开发语言: C#
- 操作系统: 跨平台
- 软件首页: https://github.com/night-king/weixinSDK
- 软件文档: https://github.com/night-king/weixinSDK
软件介绍
weixinSDK.net 是一个超级轻量级的,像 Python 一样自由书写代码的微信公众平台 SDK( .net 版本)。
1.使用对象
本API目前只针对微信公众平台开发者文档所有API进行包装:http://mp.weixin.qq.com/wiki/home/index.html
也就是微信服务号和订阅号的开发,不支持微信企业号和移动端API。
但是不排除企业号和移动端API共有部分的调用,对于这部分本SDK不保证其能调用成功。
2.API包装的核心思想
运用Dynamic(.net 4.0以及以上版本支持)在程序中传递微信所需的结构化(xml,json)对象,减少大量代码,实现轻量级。 让您可以像Python一样书写代码。
3.SDK优势
(1)轻量级,摒弃了大量对微信API调用过程中的传递对象的包装,代码至少减少1/2,和同级.net版本的微信SDK相比是最轻量级的。
(2)结构清晰,和官方API列表一一对应,便于开发者快速定位。
(3)简单灵活,只包装官方最底层的,最原始的API,便于开发者自由发挥。
4.API目录说明
(1)AcceptMessageAPI.cs 对应微信API的 "接收消息" 注意:验证消息真实性在BasicAPI的CheckSignature中. 接收消息文字、图片、视频、音频、位置、链接和事件消息都包装在AcceptMessageAPI.Parse(string message)方法中, 因为他们都可以归为消息,所以只需要提供一个统一的解析方法即可。当然,这个方法返回的是一个动态对象。 接受语音识别消息,只是在返回的语音消息xml数据中多了Recognition(注:需要公众号有接收语音识别结果的权限)
(2)AdvanceMassReplayMessageAPI.cs 对应微信API的 "发送消息”=》"高级群发消息接口"
(3)BasicAPI.cs 对应微信API的 "基础支持"
(4)CustomMenuAPI.cs 对应微信API的 "自定义菜单管理"
(5)InterfaceStatisticsAPI.cs 对应微信API的 "数据统计接口" =>"接口分析数据接口"
(6)MessageStatisticsAPI.cs 对应微信API的 "数据统计接口" =>"消息分析数据接口"
(7)MutliServiceAPI.cs 对应微信API的 "多客服功能"
(8)NewsStatisticsAPI.cs 对应微信API的 "数据统计接口" =>"图文分析数据接口"
(9)PromotionAPI.cs 对应微信API的 "帐号管理"
(10)ReplayActiveMessageAPI.cs 对应微信API的 "发送消息”=》"客服接口"=>"发送(主动)客服消息"
(11)ReplayPassiveMessageAPI.cs 对应微信API的 "发送消息”=》"被动回复消息"
(12)ServiceAdminAPI.cs 对应微信API的 "多客服功能"=>"客服管理"
(13)SmartAPI.cs 对应微信API的 "智能接口"
(14)TemplateMessageAPI.cs 对应微信API的 "发送消息”=》"模板消息接口"
(15)UserAdminAPI.cs 对应微信API的 "用户管理"
注意:获取用户地理位置在接受Location事件时获取,解析地址位置数据包在AcceptMessageAPI.Parse(string message)方法中,详细见:(2)AcceptMessageAPI.cs 。 网页授权获取用户基本信息和获取用户网络状态(JS)接口暂时不包含在本SDK中。
(16)UserStatisticsAPI.cs 对应微信API的 "数据统计接口" =>"用户分析数据接口"
(17)JSSDK/JSAPI.cs 对应微信API的 "微信JS接口" =>"微信JS-SDK说明文档" =>"附录1-JS-SDK使用权限签名算法"
(18)微信支付
Pay/WxPayAPI.cs 对应微信支付API =>公共API Pay/WxMicroPayAP.cs 对应微信支付API =>被扫支付 Pay/WxBizPayAP.cs 对应微信支付API =>扫码原生支付 官方文档:http://pay.weixin.qq.com/wiki/doc/api/index.php
其中微信内网页支付 Demo已经在SDK中实现,具体请参考:
Deepleo.Web/Controllers/WXPayController.cs
Deepleo.Web/Controllers/JSSDKController.cs/Pay
Deepleo.Web/Views/JSSDK/Pay.cshtml
(19)OAuth2API.cs 对应微信API的 用户管理=》 "网页授权获取用户基本信息”
(20)微信卡券
Card/CreateCardAPI.cs 创建卡券接口 Card/SendCardAPI.cs 卡券投放接口 Card/UseCardAPI.cs 卡券核销接口 Card/ManageCardAPI.cs 卡券管理接口 Card/Special 特殊卡票接口 Card/TestWhiteAPI.cs 设置测试用户白名单
(21) 微信小店(微信商铺API手册V1.15)
Merchant/ProductAPI.cs 商品管理接口 Merchant/ExpressAPI.cs 邮费模板管理接口 Merchant/StockAPI.cs 库存管理接口 Merchant/GroupAPI.cs 分组管理接口 Merchant/ShelfAPI.cs 货架管理接口 Merchant/OrderAPI.cs 订单管理接口 Merchant/CommonAPI.cs 功能接口
设备功能接口暂未开发。
5.demo Deepleo.Web项目,请编译后发布到服务器,并修改web.config(appid,appsecrect,Token,EncodingAESKey), 在后台将服务地址改为:[域名]/weixin。demo在线演示请关注微信公众号:
(3) http://weixinsdk.deepleo.com/jssdk (js-sdk演示,需要在微信中打开, 由于本公众号只是未认证订阅号,故请对照后台权限测试)
6.问题帮助
1)API返回的Dynamic对象应该如何使用?
答:如果您调用API,return的是 a.由DynamicJson.Parse转换而来,您可以用.[属性名称] 访问到该属性的值; 譬如 BasicAPI.cs中GetAccessToken: var token = DynamicJson.Parse(result.Content.ReadAsStringAsync().Result); 那么调用时:string newToken = BasicAPI.GetAccessToken(AppId, AppSecrect).access_token; b.如果是DynamicXml转换而来的,您可以用.[属性名称].Value 访问到该属性的值; 譬如 AcceptMessageAPI.cs中Parse: msg.Body = new DynamicXml(message); string msgType = msg.Body.MsgType.Value;
2) demo项目发布之前如何配置?
答:需要修改web.config里appSettings节点下关于网站配置和微信相关配置,如果不需要的功能不用填写。 读取这些配置的类在App_start/WeixinConfig.cs中,您可以根据自己的业务逻辑更改实现方式。 譬如,如果您一个网站需要管理多个微信公众号的情况。
7.注意事项
1)由于本SDK只是简单包装了官方API,API调用有诸多限制(譬如权限限制,次数限制),所以开发者还是需要仔细阅读官方文档。
2)微信现在还不是很成熟,如果遇到调用失败的问题,请查看官方公告或者多试几次。
3)微信公众平台可以申请测试号,如果您的产品已经上线,但是发布新功能还没有在生产环境中验证过,申请测试号是不错的选择。
4)微信自带开发者问答系统,上面都是前车之鉴,有一定参考价值。
8.源代码托管:https://github.com/night-king/weixinSDK
9.郑重申明
本SDK不收费,坚持开源,没有未公开的api,项目中的代码是我自己开发过的项目积累。
10.捐助
如果这个项目对您有用,我们欢迎各方任何形式的捐助,也包括参与到项目代码更新或意见反馈中来。谢谢!资金捐助:
Chinese Authoritarianism in the Information Age
Routledge / 2018-2-13 / GBP 115.00
This book examines information and public opinion control by the authoritarian state in response to popular access to information and upgraded political communication channels among the citizens in co......一起来看看 《Chinese Authoritarianism in the Information Age》 这本书的介绍吧!
