你的位置:首页 > 操作系统

[操作系统]C#微信公众号开发入门教程


首先打开开发文档:

微信公众号开发者文档:http://mp.weixin.qq.com/wiki/home/index.html

 

一、创建测试账号

可以先申请一个开发者测试账号

用自己微信扫描后即可获得测试账号:

就有了appId 和 appsecret了,微信号在右上角。

 

二、获取access_token (这个access_token是通过appID 和 appsecret来生成的,只要是向微信服务器发送请求都需要带上这个access_token。)

打开 微信公众平台接口调试工具

JSON格式菜单内容:下面创建的都是一级菜单,更多详细的菜单创建,参考说明文档>>

{  "button": [    {      "name": "商城",       "type": "view",       "url": "http://shop.com" //点击菜单访问网址    },    {      "name": "防伪扫描",       "type": "scancode_push",       "key": "FangweiScan"   //点击调用微信二维码扫描,是网址直接访问,是文本则显示文本内容    },    {      "name": "订单查询",       "type": "click",       "key": "OrderQuery"    //点击出发click事件,向我们配置的API地址进行请求    }  ]}

请求成功后,取消微信号关注并退出微信,重新进入关注,应该就可以看到添加好的文档了。

想删除重新创建菜单,调用菜单删除就可以了。

 

效果:


 

接受/发送消息帮助类

using System;using System.Collections.Generic;using System.Web;using System.IO;using System.Text;using System.Web.Security;using System.namespace weixin_api{  /// <summary>  /// 接受/发送消息帮助类  /// </summary>  public class messageHelp  {    //返回消息    public string ReturnMessage(string postStr)    {      string responseContent = "";      = new new System.IO.MemoryStream(System.Text.Encoding.GetEncoding("GB2312").GetBytes(postStr)));      = "/");      if (MsgType != null)      {        switch (MsgType.InnerText)        {          case "event":            responseContent = EventHandle(//事件处理            break;          case "text":            responseContent = TextHandle(//接受文本消息处理            break;          default:            break;        }      }      return responseContent;    }    //事件    public string EventHandle(string responseContent = "";      = "/");      = "/");      = "/");      = "/");      = "/");      if (Event != null)      {        //菜单单击事件        if (Event.InnerText.Equals("CLICK"))        {          if (EventKey.InnerText.Equals("OrderQuery"))//点击订单查询 这个OrderQuery就是菜单里面的key          {            responseContent = string.Format(ReplyType.Message_Text,              FromUserName.InnerText,              ToUserName.InnerText,              DateTime.Now.Ticks,              "正在开发中,敬请期待!");          }        }        else if (Event.InnerText.Equals("scancode_waitmsg")) //扫码推事件且弹出“消息接收中”提示框的事件推送         {          if (EventKey.InnerText.Equals("FangweiScan")) //点击防伪扫描          {            //....处理返回逻辑          }        }      }      return responseContent;    }    //接受文本消息    public string TextHandle(string responseContent = "";      = "/");      = "/");      = "/");      if (Content != null)      {        //回复文本信息        responseContent = string.Format(ReplyType.Message_Text,          FromUserName.InnerText,          ToUserName.InnerText,          DateTime.Now.Ticks,          "欢迎使用微信公共账号,您输入的内容为:" + Content.InnerText);      }      return responseContent;    }    //写入日志    public void WriteLog(string text)    {      StreamWriter sw = new StreamWriter(HttpContext.Current.Server.MapPath(".") + "\\log.txt", true);      sw.WriteLine(text);      sw.Close();    }  }  //回复类型  public class ReplyType  {    /// <summary>    /// 普通文本消息    /// </summary>    public static string Message_Text    {      get      {        return @"<";      }    }    /// <summary>    /// 图文消息主体    /// </summary>    public static string Message_News_Main    {      get      {        return @"<";      }    }    /// <summary>    /// 图文消息项    /// </summary>    public static string Message_News_Item    {      get      {        return @"<item>              <Title><![CDATA[{0}]]></Title>               <Description><![CDATA[{1}]]></Description>              <PicUrl><![CDATA[{2}]]></PicUrl>              <Url><![CDATA[{3}]]></Url>              </item>";      }    }  }}

View Code

 

五、接口开发完成,配置接口信息

配置验证通过后,用户发消息或事件,接口拿到信息就可以做出处理反馈了。

 

六、源码下载

C#微信公众号开发简易Demo源码

 

 

时间匆忙,写的不是很详细,有时间再慢慢完善。