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.捐助
如果这个项目对您有用,我们欢迎各方任何形式的捐助,也包括参与到项目代码更新或意见反馈中来。谢谢!资金捐助:
Senparc.Weixin SDK 微信公众号 .NET 开发教程 索引 Senparc.WeixinSDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持。 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享。也欢迎大家的补充! 1、开源项目:https://github.com/JeffreySu/WeiXinMPSDK 2、微信技术交流
微信端HTML页面下单事件: [javascript] view plain copy print ? document.getElementById('btn-wxpay')addEventListener('tap', function (e) { //创建订单 $.post('/Orders/Create', orderdata, function(result){
原文地址:http://www.cnblogs.com/artech/archive/2012/04/10/how-mvc-works.html?ADUIN=7783008&ADSESSION=1414992522&ADTAG=CLIENT.QQ.5359_.0&ADPUBNO=26397 一、ASP.NET + MVC IIS与ASP.NET管道 MVC、MVP以及Model2[上篇] M
简介 Senparc.Weixin SDK 是目前使用率最高的微信 .NET SDK,也是国内最受欢迎的 .NET 开源项目之一。 使用 Senparc.Weixin,您可以方便快速地开发微信全平台的应用(包括微信公众号、小程序、小游戏、企业号、开放平台、微信支付、JS-SDK、微信硬件/蓝牙,等等)。 目前 Senparc.Weixin 已经支持几乎所有微信平台模块和接口,并同时兼容 .NET
本文向大家介绍Java微信公众平台开发(1) 接入微信公众平台,包括了Java微信公众平台开发(1) 接入微信公众平台的使用技巧和注意事项,需要的朋友参考一下 前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当
本文向大家介绍PHP技术开发微信公众平台,包括了PHP技术开发微信公众平台的使用技巧和注意事项,需要的朋友参考一下 下面通过图文并茂的方式介绍微信公众平台开发过程,具体内容如下: 微信公众平台有两种模式:编辑模式 和 开发模式。 普通的功能可以通过编辑模式来搞定。开发模式具有更多的功能。让我们来使用开发模式开发helloword吧 步骤如下: 第一步:先注册一个公众号(https://mp.wei
本文向大家介绍node.js微信公众平台开发教程,包括了node.js微信公众平台开发教程的使用技巧和注意事项,需要的朋友参考一下 用nodejs怎样来实现对微信公众平台的开发呢? 别的就不多说了,先来简单介绍微信公众平台的基本原理。 微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求至微信服务器,微信服务器,然后将请求转发给自定义服务(这里就是我们的具体实现)。服务处理完毕
本文向大家介绍PHP版微信公众平台红包API,包括了PHP版微信公众平台红包API的使用技巧和注意事项,需要的朋友参考一下 重写了一下PHP下面的微信API接口, 微信红包支持,JSAPI的动态参数接口支持 http://git.oschina.net/youkuiyuan/yky_test/blob/master/class/wxapi.class.php 微信API类 - 增加红包支持 后期还
本文向大家介绍php微信公众平台开发类实例,包括了php微信公众平台开发类实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php微信公众平台开发类。分享给大家供大家参考。具体分析如下: ThinkWechat.php类文件如下: 希望本文所述对大家的php程序设计有所帮助。
本文向大家介绍Java微信公众平台之素材管理,包括了Java微信公众平台之素材管理的使用技巧和注意事项,需要的朋友参考一下 微信素材管理和群发这块文档对Java很不友好。本文只对新增临时素材,新增永久素材做介绍,其余获取、删除、修改自行补充 公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。
本文向大家介绍微信公众平台开发 数据库操作,包括了微信公众平台开发 数据库操作的使用技巧和注意事项,需要的朋友参考一下 一、简介 前面讲解的功能开发都是简单的调用API 完成的,没有对数据库进行操作。在接下来的高级功能开发中,需要使用到数据库,所以在这一篇中,将对MySQL 数据库的操作做一下简单的介绍,以供读者参考。 二、思路分析 百度开发者中心提供了强大的云数据库(包括MySQL, Mongo
本文向大家介绍使用Go语言实现微信公众平台,包括了使用Go语言实现微信公众平台的使用技巧和注意事项,需要的朋友参考一下 这个不是全部的代码哦,只是一个演示可以验证跟接受post传过来的消息并且能返回消息,中间的回复逻辑就待需要各位同志们自己写了哈