没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
C#开发微信公众平台-就这么简单(附 Demo)
最近公司在做微信开发,其实就是接口开发,网上找了很多资料,当然园友也写了很
多教程,但都是理论说了一大堆,实用指导或代码很少。如果你自己仔细研究下,其实就
那么点东西,C#实现起来也很简单,原本不想写这篇文章的,但是本人当时摸索走了很多
弯路,这边总结下,希望初次接触微信公众平台的朋友别像当时的我一样。
自己动手,丰衣足食。
服务号和订阅号
服务号是公司申请的微信公共账号,订阅号是个人申请的,我个人也申请了一个,不
过没怎么用。
服务号
1. 1 个月(30 天)内仅可以发送 1 条群发消息。
2. 发给订阅用户(粉丝)的消息,会显示在对方的聊天列表中。
3. 在发送消息给用户时,用户将收到即时的消息提醒。
4. 服务号会在订阅用户(粉丝)的通讯录中。
5. 可申请自定义菜单。
订阅号
1. 每天(24 小时内)可以发送 1 条群发消息。
2. 发给订阅用户(粉丝)的消息,将会显示在对方的订阅号文件夹中。
3. 在发送消息给订阅用户(粉丝)时,订阅用户不会收到即时消息提醒。
4. 在订阅用户(粉丝)的通讯录中,订阅号将被放入订阅号文件夹中。
5. 订阅号不支持申请自定义菜单。
URL 配置
启用开发模式需要先成为开发者,而且编辑模式和开发模式只能选择一个,进入微信
公众平台-开发模式,如下:
1
需要填写 url 和 token,当时本人填写这个的时候花了好久,我本以为填写个服务器
的 url 就可以了(80 端口),但是不行,主要是没有仔细的阅读提示信息,所以总是提示
从上面可以看出,点击提交后微信会向我们填写的服务器发送几个参数,然后需要原
样返回出来,所以在提交 url 的时候,先在服务器创建接口测试返回 echostr 参数内容。
代码:
//成为开发者 url 测试,返回 echoStr
public void InterfaceTest()
{
string token = "填写的 token";
if (string.IsNullOrEmpty(token))
{
return;
}
string echoString =
HttpContext.Current.Request.QueryString["echoStr"];
string signature =
HttpContext.Current.Request.QueryString["signature"];
string timestamp =
HttpContext.Current.Request.QueryString["timestamp"];
string nonce =
HttpContext.Current.Request.QueryString["nonce"];
if (!string.IsNullOrEmpty(echoString))
{
HttpContext.Current.Response.Write(echoString);
HttpContext.Current.Response.End();
2
}
}
在一般处理程序 ashx 的 ProcessRequest 的方法内调用上面的方法,url 填写的就
是这个 ashx 的服务器地址,token 是一个服务器标示,可以随便输入,代码中的 token
要和申请填写的一致,成为开发者才能做开发。
创建菜单
我们添加一些微信服务号,聊天窗口下面有些菜单,这个可以在编辑模式简单配置,
也可以在开发模式代码配置。微信公众平台开发者文档:http://mp.weixin.qq.com/
wiki/index.php?title= 自定义菜单创建接口 ,可以看到创建菜单的一些要点,下面的使
用网页调试工具调试该接口,只是调试接口是否可用,并不是直接创建菜单的,菜单分为
两种:
click: 用户点击 click 类型按钮后,微信服务器会通过消息接口推送消息类型为
event 的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的 key
值,开发者可以通过自定义的 key 值与用户进行交互。
view: 用户点击 view 类型按钮后,微信客户端将会打开开发者在按钮中填写的 url
值 (即网页链接),达到打开网页的目的,建议与网页授权获取用户基本信息接口
结合,获得用户的登入个人信息。
click 菜单需要填一个 key,这个是在我们菜单点击事件的时候会用到,view 只是一
个菜单超链接。菜单数据是 json 格式,官网是 php 示例,其实 C#实现起来也很简单,就
是 post 发送一个 json 数据,示例代码:
public partial class createMenu : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
FileStream fs1 = new FileStream(Server.MapPath(".")+"\\
menu.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs1,
Encoding.GetEncoding("GBK"));
string menu = sr.ReadToEnd();
sr.Close();
fs1.Close();
GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?
access_token=access_token", menu);
}
public string GetPage(string posturl, string postData)
{
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
3
剩余11页未读,继续阅读
资源评论
justin0732
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功