如何使用C#开发微信
这篇文章主要介绍如何使用C#开发微信,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1.必须有微信公众账号 2.你也可以申请测试微信号,链接给你http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login然后,建立mvc,你只需要点几下vs就帮你搞定了。这不废话 接着,要创建一个一般处理程序,随便起个名字,测试通过才是重点,抓紧时间……
//////验证微信签名 /// //////*将token、timestamp、nonce三个参数进行字典序排序 ///*将三个参数字符串拼接成一个字符串进行sha1加密 ///*开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。 privateboolCheckSignature() { vartoken="token"; varsignature=HttpContext.Current.Request.QueryString["signature"]; vartimestamp=HttpContext.Current.Request.QueryString["timestamp"]; varnonce=HttpContext.Current.Request.QueryString["nonce"]; varechostr=HttpContext.Current.Request.QueryString["echostr"]; string[]ArrTmp={token,timestamp,nonce}; Array.Sort(ArrTmp);//字典排序 vartmpStr=string.Join("",ArrTmp); tmpStr=FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr,"SHA1");//加密方式 if(tmpStr.ToLower()==signature) { returntrue; } returnfalse; }
这代码相当于是跟微信公众号中【开发】--》【基本配置】里面你所写的Token 一个一对一令牌通信握手,只要互相通了,那么你就算是搞定了!
搞定是后话,还有工作没做完,接着写!怎么配置,这是问题,哎只能用花生壳给测试先,至少要知道玩了半天是不是通的!看下图:左边花生壳配置-----右边iis网站发布绑定
看到这图,你也明白下一步怎么玩了吧。本地iis配上了域名。这简直屌爆了………… 下面。我们加上代码。设置发送和自动回复测试,看看能不能玩
#region接收消息 //////接收微信发送的XML消息并且解析 /// privatevoidReceiveXml() { varrequestStream=HttpContext.Current.Request.InputStream; varrequestByte=newbyte[requestStream.Length]; requestStream.Read(requestByte,0,(int)requestStream.Length); varrequestStr=Encoding.UTF8.GetString(requestByte); if(!string.IsNullOrEmpty(requestStr)) { //封装请求类 varrequestDocXml=newXmlDocument(); requestDocXml.LoadXml(requestStr); varrootElement=requestDocXml.DocumentElement; if(rootElement==null)return; varwxXmlModel=newWxXmlModel { ToUserName=rootElement.SelectSingleNode("ToUserName").InnerText, FromUserName=rootElement.SelectSingleNode("FromUserName").InnerText, CreateTime=rootElement.SelectSingleNode("CreateTime").InnerText, MsgType=rootElement.SelectSingleNode("MsgType").InnerText }; switch(wxXmlModel.MsgType) { case"text"://文本 wxXmlModel.Content=rootElement.SelectSingleNode("Content").InnerText; break; case"image"://图片 wxXmlModel.PicUrl=rootElement.SelectSingleNode("PicUrl").InnerText; break; case"event"://事件 wxXmlModel.Event=rootElement.SelectSingleNode("Event").InnerText; if(wxXmlModel.Event!="TEMPLATESENDJOBFINISH")//关注类型 { wxXmlModel.EventKey=rootElement.SelectSingleNode("EventKey").InnerText; } break; default: break; } ResponseXML(wxXmlModel);//回复消息 } } #endregion #region回复消息 privatevoidResponseXML(WxXmlModelWxXmlModel) { varQrCodeApi=newQrCodeApi(); varXML=""; switch(WxXmlModel.MsgType) { case"text"://文本回复 XML=ResponseMessage.GetText(WxXmlModel.FromUserName,WxXmlModel.ToUserName,WxXmlModel.Content); break; case"event": switch(WxXmlModel.Event) { case"subscribe": if(string.IsNullOrEmpty(WxXmlModel.EventKey)) { XML=ResponseMessage.GetText(WxXmlModel.FromUserName,WxXmlModel.ToUserName,"关注成功"); } else { XML=ResponseMessage.SubScanQrcode(WxXmlModel.FromUserName,WxXmlModel.ToUserName,WxXmlModel.EventKey);//扫描带参数二维码先关注后推送事件 } break; case"SCAN": XML=ResponseMessage.ScanQrcode(WxXmlModel.FromUserName,WxXmlModel.ToUserName,WxXmlModel.EventKey);//扫描带参数二维码已关注直接推送事件 break; } break; default://默认回复 break; } HttpContext.Current.Response.Write(XML); HttpContext.Current.Response.End(); } #endregion
上面一个发送,一个接收,还是在WhApi.ashx处理程序文件里面。我就想说清楚,呵呵! 因为你根公众平台握手成功了,你肯定要发点东西过去试试对吧~~下图是一个接收方法和一个自动匹配回复文件的关联,别急下面我会上传这个文件!
还缺一个配置,就是vs要设置【调试】----【附加到进程】,只需要把下面【显示所有用户进程】一项打勾,你就能找到w3wp.exe 如果有多个这样的进程,那你还是要确认【用户名】那一列,选中跟你程序池名称一样的就ok,点附加,确定附加!
以上是“如何使用C#开发微信”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
Web应用从零开始,初学者友好型开发教程
-
容器化最佳实践:Docker 与 Kubernetes 在微服务架构中的协同设计
-
AWS Cloud9 使用攻略:云端 IDE 如何无缝集成 Lambda 与 S3 服务?
-
Heroku vs AWS Elastic Beanstalk:快速部署 Web 应用的平台对比
-
Kubernetes 集群部署避坑:资源调度、服务发现与滚动更新策略
-
Docker 镜像优化指南:分层构建、瘦身技巧与多阶段编译实践
-
Postman 接口测试全流程:从 API 设计到自动化测试脚本编写
-
pytest 框架进阶:自定义 fixture、插件开发与持续集成集成方案
-
JUnit 5 新特性:参数化测试、扩展模型与微服务测试实践
-
Chrome DevTools 性能分析:FPS 监控、内存快照与网络请求优化指南