asp.net mvc 后台 + 微信开发入门 的研究

本人小白.net出身,第一次做微信开发。又不会php和别的语言。只有用.net做了。
如有不对之处,还请指点。

开发环境

1.win7 x64
2.vs2015

步骤

1.申请公众号

公众号首页地址:https://mp.weixin.qq.com ,没有公众号的点击注册,
注册过程就不用多说了。
我注册了一个,点击登录。如图:

进入后台以后,一番玩耍之后。进入正题。往下翻找到开发者工具,进入之后,别的先不管,点击开发者文档。
先看一下,大致了解文档结构。

2.编码

首先,点击开发开发->接入指南。
首先看到,要填写基本设置。大概意思是微信服务器会往你填的地址发送一个get请求。传入4个参数。参数如下 :

打开基本设置页面,填写如下:

点击提交,会提示错误。提交不成功。
那么 ,我们就想到,要写一个web程序处理这个请求了。
打开vs2015,新建一个asp.net mvc应用程序。添加一个HomeControl ,在HomeControl里面添加一个public void wx(){}方法。
呃,这个步骤不懂的话,建议先去学一下asp.net mvc。

如图所示,给它返回echostr就说明验证成功了。那么,如果 你也可以省事,不去验证请求来源的真实性,直接 返回echostr.当然这样的产品是有风险的(什么风险我也不知道,不然它让验证干嘛,是吧^_^)。

 public void wx(){#region 验证请求来源是否是微信string signature = Request["signature"]?.ToString();string timestamp = Request["timestamp"]?.ToString();string nonce = Request["nonce"]?.ToString();string echostr = Request["echostr"]?.ToString();string token = "hellowb";List<string> list = new List<string>() { token, timestamp, nonce };list.Sort();string data = string.Join("", list);byte[] temp1 = Encoding.UTF8.GetBytes(data);SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();byte[] temp2 = sha.ComputeHash(temp1);var hashCode = BitConverter.ToString(temp2);hashCode = hashCode.Replace("-", "").ToLower();if (hashCode == signature){Response.Write(echostr);Response.End();}#endregion}

将网站布置到你的服务器上,占用80端口(只能使用80,不会布置网站的请自行百度)。然后回到微信后台基本配置页。如图
令牌你可以自己随便写一个自己喜欢的,然后代码里面对应着改就好。
点击提交。如果提示提交成功,那么 万事大吉。成功了。
当然还会有意外,如果 提示发生错误,请稍后重试。试着把url复制到浏览器里访问,看能不能通。
好了,现在验证成功了,就可以真正成为一个微信开发者了。

消息处理

本次先从处理微信用户发送的消息为切入点。点击接收普通消息。如图

根据开发文档,了解到,如果用户关注了你,并给你发送了一个文本消息,微信服务器会给你填写的url(示例为 http://ip/home/wx)发送一个post 请求,内容为
是一个xml。那么 。添加一个xmlHelper类,

using System;using System.Collections.Generic;using System.Xml;namespace wxApp
{public class XmlHelper{public static Dictionary<string, string> GetMsgEntity(string text){try{XmlDocument doc = new XmlDocument();doc.LoadXml(text);Dictionary<string, string> dict = new Dictionary<string, string>();XmlNodeList xml = doc.SelectSingleNode("/xml").ChildNodes;foreach (XmlNode node in xml){dict.Add(node.Name, node.InnerText);}return dict;}catch (Exception){return new Dictionary<string, string>();}}}
}

现在我们的url要能区分post get 请求了。改写如下

在HomeControl 新建一个private void ProcessPost(HttpRequestBase request)(){}方法.

 private void ProcessPost(HttpRequestBase request){var istream = Request.InputStream;byte[] temp = new byte[istream.Length];istream.Read(temp, 0, (int)istream.Length);string xml = Encoding.UTF8.GetString(temp);var dic = XmlHelper.GetMsgEntity(xml);switch (dic["MsgType"]){case "text":ProcessTextMsg(dic, request);break;default:break;}}

在HomeControl 新建一个private void ProcessTextMsg(Dictionary

 private void ProcessTextMsg(Dictionary<string, string> dic, HttpRequestBase request){string tempxml = "<xml><ToUserName><![CDATA[-tname]]></ToUserName><FromUserName><![CDATA[-fname]]></FromUserName><CreateTime>-time</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[-content]]></Content></xml>";tempxml = tempxml.Replace("-tname", dic["FromUserName"]);tempxml = tempxml.Replace("-fname", dic["ToUserName"]);tempxml = tempxml.Replace("-time", dic["CreateTime"]);tempxml = tempxml.Replace("-content", $"MsgType:{dic["MsgType"]}\ncontent:{dic["Content"]}\nMsgId:{dic["MsgId"]}");Response.Write(tempxml);Response.End();}

现在我们的处理方法就ok了。
打开微信,关注我们自己的公众号,发送一个消息,它就会回复一个消息了。
效果如下

其它消息处理也是如此,以此类推就可。
这次就写到这里了,欢迎留言。

使用.net做微信公众号后台相关推荐

  1. 微信公众号后台服务开发(一):自动消息回复

    微信公众号后台服务开发 简述 微信平台提供的自动回复机制 后台服务开发 配置指定服务器 消息自动回复功能开发 简述 使用Java SpringBoot框架搭建微信工作号后台实现自定义逻辑自动回复 先注 ...

  2. 腾讯云+CentOS 7.2+python:搭建微信公众号后台入门教程

    因为想自己编写微信公众号后台的程序,实现一些小功能,为以后的开发做准备,所以就从零开始,摸索着注册微信公众号,租用服务器,搭建环境进行开发. 简单的搭建过程中也经历了一些波折,踩了不少坑,仅留此文给跟 ...

  3. SpringBoot搭建微信公众号后台(一):消息接收与响应

    关注作者,更多动态实时掌握,微信公众号:隔壁的程序员 上一篇我们经过接口验证,已经可以与微信的服务器进行通信,错过的可以通过下面链接来进行回顾,这一篇就来实现一个基本的消息接收与响应. SpringB ...

  4. SpringBoot搭建微信公众号后台(零):服务搭建与接口验证

    关注作者,更多动态实时掌握,微信公众号:隔壁的程序员 前言:从这篇开始小王子将开始一个新的系列内容,从零开始搭建自己的微信公众号后台.内容大致规划为:环境篇,包括用到的工具安装,破解,配置:基础篇,主 ...

  5. h5如何做微信公众号支付

    上个周老大让我去做微信公众号支付,因为之前没有做过,所以看了一下微信公众号支付.其实前端做微信公众号很简单.废话不多说,直接先说一下思路,首先做支付需要前端或者后台去获取微信的code,这里是由我去做 ...

  6. 实例:用C#.NET手把手教你做微信公众号开发(20)--使用微信支付线上收款:jsapi方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下jsapi支付,场景就是在微信内打开某个页面,完成在线支付,同样一个网页,使用微信打开就是js ...

  7. 教程: nodejs 做微信公众号开发,回复 xml 消息

    教程: nodejs 做微信公众号开发,回复 xml 消息 首先需要你的后台跟服务器已经可以建立连接,这个不再冗述看官方教程就好 接入指南 .此篇介绍的是如何获取用户发来的信息,并回复它. 一.接收 ...

  8. 记一次微信公众号后台数据抓取

    记一次微信公众号后台数据抓取 缘起 思路 缘起 自己参与的公众号做年末总结,需要进行数据爬取,但是微信自带的api只能进行最多一个月的数据对照,不太方便,于是决定自己写一个脚本.原本想用py爬虫,但是 ...

  9. Python开发微信公众号后台(系列三)

    原文链接:点击打开链接 摘要: 之前有主流的小黄鸡机器人,但是没找到官方的网页版.(小黄鸡提供付费 API )尝试使用http://www.niurenqushi.com/app/simsimi/(虽 ...

  10. vue 微信公众号支付接口_vue做微信公众号分享,支付

    在前段时间做了一个微信公众号,因为我又是新手,没什么经验,拿起vue就开始,导致一坑再坑,简直阔怕!!! 对于此次项目,我主要用到的是vue的整框架和必要的插件,但是我没用vuex,用vuex的话会方 ...

最新文章

  1. datatables中的bug
  2. ML之DR之SVD:SVD算法相关论文、算法过程、代码实现、案例应用之详细攻略
  3. oledb vc访问mdb数据库_SQL SERVER数据库技术-1
  4. 80端口被占用了怎么办_如何查看端口占用情况
  5. Ajax ControlToolkit - AnimationExtender Action语法(笔记)
  6. c++ 虚函数实现原理
  7. powshell的tree命令
  8. java实现斐波那契数列
  9. java 读取文件成字节数组_java读取文件为字节数组
  10. JQuery----倒计时插件downCount
  11. word表格一行不对齐解决方法
  12. 封装win7系统,安装系统时提示:windows无法完成系统配置,若要尝试恢复配置,请重新启动计算机?
  13. 何恺明目前的学术成果是否够得上计算机视觉领域历史第一人?
  14. 漫步数学分析十九——介值定理
  15. 『TensorFlow』模型载入方法汇总
  16. Numpy || np.arange()、np.linspace()、np.logspace()、np.zeros()、np.ones()函数用法指南
  17. Open edX常见配置(fullstack)
  18. 静态方法:关于Java8中的日期时间API,你需要掌握这些!!
  19. W5500+DHCP+DNS+MQTT
  20. RTKLIB专题学习(三)---矩阵应用

热门文章

  1. 私有链和联盟链的机会与挑战
  2. 上海电力大学本科毕业论文答辩PPT模板
  3. linux消息队列 性能,消息队列消息总大小的问题
  4. HardDisk读取速度
  5. 2021年上半年软件设计师下午真题及答案解析
  6. 某大厂算法工程师面试题详解,问题+答案
  7. 企业资源计划(ERP)原理与实践第一章
  8. (ECCV-2020)步态横向网络-GLN
  9. 谷歌浏览器设置主页教程
  10. IOS性能优化方面的文章,Mark下