weixinSDK.net微信公众平台 SDK

联合创作 · 2023-09-24 15:55

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在线演示请关注微信公众号:


(1) 鸣创软件(订阅号所有可以实现的功能演示,)


(2) 慢做菜(基于WeixinSDK实现的菜谱查询服务)


(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.捐助


如果这个项目对您有用,我们欢迎各方任何形式的捐助,也包括参与到项目代码更新或意见反馈中来。谢谢!资金捐助:


浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报