您的位置:首页 > 移动开发 > 微信开发

微信公众平台开发教程 [付视频]

2016-11-05 09:17 351 查看
这几年,微信非常流行,也是唯一可以和QQ抗衡的即时通,当然他们是一家子,微信除了有即时通的功能外,还有一些其他的功能,公众号就是其中之一,微信创始人甚至扬言微信可以实现大部分APP的功能,鉴于这样,最近两年很多开发者都转向了微信开发这一块,甚至有些公司也专门做微信开发的,微信公众号可以提供新闻推送,可以进行业务处理等等

本人接触微信开发也不多,只是公司有个项目用到了,但是在经过一次微信开发以后,感觉基本的使用也不难,下面是本人在开发中的一些总结,本人才疏学浅,不排除有讲得不对或者漏了的地方,多多包涵,也望能指出,互相学习,互相进步...

下面是部分笔记

注册公众平台账号

个人只能注册订阅号https://mp.weixin.qq.com
订阅号 服务号 企业号 三者能使用的功能不相同
注册的账号需要跟微信号绑定(微信号需要绑定银行卡)
注册地址: https://mp.weixin.qq.com/cgi-bin/readtemplate?t=register/step1_tmpl&lang=zh_CN 注册需要邮箱激活

登录微信公众平台

微信公众平台登陆后,用户可以直接使用微信公众平台进行消息群发,添加微信公众号菜单等





给公众号添加测试账号



作为开发人员,可以使用普通微信号来测试功能
登陆公众平台后,在开发》开发者工具》里面可以扫描二维码添加测试账号
此过程需要扫描你微信几次
扫描测试号二维码可以给测试公众号添加测试账号
在功能》群发功能》添加文字群发,
看测试账号是否收到
不过由于上面直接公众平台群发功能是正式的功能,所以一天只能群发一条消息 测试号则比这个权限多







对微信进行接口开发

该功能允许我们调用微信的接口,进行第三方系统的对接,这样我们在微信平台上面的很多操作,就不需要在微信平台上面操作了,我们可以直接在我们自己的系统上面进行微信公众平台的一些操作,比如添加菜单,群发消息,获取用户,消息回复等等



微信|公众平台开发者文档

http://mp.weixin.qq.com/wiki/home/index.html
我们本课程就是基于微信提供的开发文档
刚才注册的公众号如果未认证测拥有的权限是不i一样的 http://mp.weixin.qq.com/wiki/13/8d4957b72037e3308a0ca1b21f25ae8d.html 具体可以查看上面的



开发之前的准备

在开发》基本配置哪里,如果首次进入,则需要同意协议
点击成为开发者后,会为开发者生产appid和appsecret
这两个是公众号和微信服务器进行交互的账号密码







服务器配置



开发者需要先开启服务器配置

填写URL token 消息加密密钥等
URL:开发者用来接收微信消息和事件的接口地址
Token:可以任意填写,用作生成签名k
该Token会和接口URL中包含的Token进行比对,从而验证安全性
EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥
还可以选择消息加解密方式:明文模式(默认)、兼容模式和安全模式
上面的配置会保存立即生效,需要谨慎操作
添加服务器配置的时候 需要先开启,开启需要补全资料,比如上传头像等

微信是服务器和服务器之间的交换,所以我们需要一台服务器
(虚拟空间,VPS都可以)
搭建一个web测试站,需要注册一个域名(80端口的)
可以是子域名 比如
weixin.bamn.cn



配置域名 80端口

我还需要为填写的URL进行一些操作
如果你的接口是PHP的可以参考官网提供的
我们这里是ASP.NET: http://weixin.bamn.cn/WeiXinTokenApi.aspx 如果是https则443端口
微信服务器那边会往我们上面的地址 进行get操作,我们接口中可以拿到微信服务器传过来的三个参数signature timestamp nonce



加密/校验(和微信服务器校验-握手)

1获取微信服务器传过来的四个参数
2 对这三个参数进行“字典序排序”
3 拼接三个字符串
4 对拼接的字符串进行sha1加密
4 成功验证 原样返回
具体可以查看WeiXinTokenApi.aspx.cs页面的代码

protected void Page_Load(object sender, EventArgs e)
{

if (Request.RequestType.ToLower().Equals("post"))
{
//接收消息
ResponseMsg();
}
else
{
//校验接口
CheckSignature();
}
Response.End();
}


检验接口

///
/// 校验方法
///
private void CheckSignature()
{
try
{
//1获取微信服务器传过来的四个参数
string signature = Request.QueryString["signature"];
string timestamp = Request.QueryString["timestamp"];
string nonce = Request.QueryString["nonce"];
string echostr = Request.QueryString["echostr"];//该字符串用来成功验证后原样返回

string token = TOKEN;
string[] tmpArr = new string[] { token, timestamp, nonce };//2 对这三个参数进行“字典序排序”
Array.Sort(tmpArr);
string tmpStr = string.Join("", tmpArr);//3 拼接三个字符串
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//4 sha1加密
tmpStr = tmpStr.ToLower();
if (tmpStr == signature)
{
SetCacheDateTime("Item", tmpStr + ":" + signature + " " + echostr, 3600);
//4 成功验证原样返回
HttpContext.Current.Response.Write(echostr);
}
else {
SetCacheDateTime("Item", "验证不通过", 3600);
Response.Write("验证不通过");//随便返回
}
}
catch (Exception ex)
{
SetCacheDateTime("Item", ex.Message, 3600);
Response.Write(ex.Message);//随便返回
}


列表
4-4节-公众号发送消息包括文本 图片 图文 语音 视频 等等
4-3节-点击菜单跳转链接时的事件推送
4-2节-处理自定义菜单事件返回歌曲名称
4-1节-接收事件推送-BAMN.CN北盟网校
3-10节-补充说明微信接口如何获取音频 视频 图文等的内容
3-9节-接收微信号发过来的链接消息
3-8节-接收微信号的地理位置消息
3-7节-接收小视频消息
3-6节-接收微信号的视频消息
3-5节-接收微信号的语言消息-BAMN.CN北盟网校
3-4节-接收微信号发送的图片消息-BAMN.CN北盟网校
3-3节-响应微信服务器,做一个【客服】自动回复的功能
3-2节-不要在try catch里面进行response.end
3-1节-接收普通微信号发送过来的消息
2-4节-查询菜单(获取菜单的json文本,通常用于同步菜单到网站系
2-3节-删除微信菜单接口的使用
2-2节-反序列化JSON结果
2-1节-自定义菜单创建接口给公众号添加菜单
1-6节-获取微信服务器IP地址
1-5节-添加一个基类Page添加AppID和AppSecret
1-4节-Json反序列化和HttpGet封装和上节课的补充
1-3节 获取access token
1-2节-加密校验(和微信服务器校验-握手)
1-1节-开发前的一些准备注册公众号和准备域名虚拟空间等

如看视频 可以访问 http://www.iqiyi.com/u/2086142358

未完待续 希望对你有帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: