微信公众平台如何开发
2013-10-25 10:41
197 查看
在开发之前,个人建议开发者或者需求者还是先了解清楚微信公众账号的一个基本模式,何为订阅号,何为服务号。两者之间的区别以及功能限制。
这边我针对开发方面捡重点说几点,具体的区别我相信手指动动,百度一下,什么问题都明白了。
1. 微信开放给订阅号的接口
简单说就是订阅号拥有的接口也就只能做做自动回复这些功能。
2. 微信开放给服务号的接口
其实跟订阅号比较起来,也就是多了一个自定义菜单的接口,可以对自定义菜单进行增删查。
3. 订阅号只有一次机会升级成服务号,升级后将不可以再改为订阅号,所以针对需求,升级时慎重选择哈。
很多人老是问,开发者要用什么语言来写项目,JAVA、PHP、.NET、C#。。。。等语言都可以,不要把微信开发想太复杂了,说白了,就是接口的交互。
接下来讲讲如何将自己的程序与微信开发者模式接入起来
首先在成为开发者模式的时候,微信会让我们填写一个URL和一个Token(上图)。
Token开发者随意填写,只是一个标识而已。
URL填写你部署到网外的地址,部署到网外的端口号微信要求必须是80端口,这点需要注意下。
当你保存URL和Token的时候,微信后台会调用你填写的URL地址,使用http的get方式请求你的URL。
这个时候就是开发者需要编写的代码了,开发者需要响应微信的请求并且接收微信传来的参数。
通过微信的验证规则,即可接入成功。
这里就简单讲讲微信接入的验证规则吧,其实API已经有了。我这里赘述一下吧。
上图来自微信公众平台API,其实已经说得很清楚了,微信请求URL时,使用HTTP的GET请求。
带有四个参数,这四个参数有一个验证方式。
即先将token(申请开发者模式时填写的)、timestamp、nonce三个参数进行字典排序。
然后再将三个参数拼接成一个字符串进行sha1加密。
最后将sha1加密后的字符串与signature进行对比,匹配正确返回echostr即可。
微信官网API里面有PHP的案例,就不说了,现成的,下载下来改下token就可以啦。
本人使用JAVA,大概说一下流程吧,其实网上已经有非常多的案例了。
1. 字典排序(把所有的字符串全部都放入一个数组里,然后使用Arrays.sort来排序.这个方法会自动按照首字母a-z来排序)
2. 将三个参数拼接成一个字符串
3. 将拼接成一个字符串的参数0就行sha1加密
4. 最后将sha1加密后的字符串可与signature对比,匹配成功返回echostr,否则接入失败
OK!现在已经成为开发者了!
讨论QQ群:315272857
这边我针对开发方面捡重点说几点,具体的区别我相信手指动动,百度一下,什么问题都明白了。
1. 微信开放给订阅号的接口
简单说就是订阅号拥有的接口也就只能做做自动回复这些功能。
2. 微信开放给服务号的接口
其实跟订阅号比较起来,也就是多了一个自定义菜单的接口,可以对自定义菜单进行增删查。
3. 订阅号只有一次机会升级成服务号,升级后将不可以再改为订阅号,所以针对需求,升级时慎重选择哈。
很多人老是问,开发者要用什么语言来写项目,JAVA、PHP、.NET、C#。。。。等语言都可以,不要把微信开发想太复杂了,说白了,就是接口的交互。
接下来讲讲如何将自己的程序与微信开发者模式接入起来
首先在成为开发者模式的时候,微信会让我们填写一个URL和一个Token(上图)。
Token开发者随意填写,只是一个标识而已。
URL填写你部署到网外的地址,部署到网外的端口号微信要求必须是80端口,这点需要注意下。
当你保存URL和Token的时候,微信后台会调用你填写的URL地址,使用http的get方式请求你的URL。
这个时候就是开发者需要编写的代码了,开发者需要响应微信的请求并且接收微信传来的参数。
通过微信的验证规则,即可接入成功。
这里就简单讲讲微信接入的验证规则吧,其实API已经有了。我这里赘述一下吧。
上图来自微信公众平台API,其实已经说得很清楚了,微信请求URL时,使用HTTP的GET请求。
带有四个参数,这四个参数有一个验证方式。
即先将token(申请开发者模式时填写的)、timestamp、nonce三个参数进行字典排序。
然后再将三个参数拼接成一个字符串进行sha1加密。
最后将sha1加密后的字符串与signature进行对比,匹配正确返回echostr即可。
微信官网API里面有PHP的案例,就不说了,现成的,下载下来改下token就可以啦。
本人使用JAVA,大概说一下流程吧,其实网上已经有非常多的案例了。
1. 字典排序(把所有的字符串全部都放入一个数组里,然后使用Arrays.sort来排序.这个方法会自动按照首字母a-z来排序)
String[] arr = new String[] { token, timestamp, nonce }; Arrays. sort(arr);
2. 将三个参数拼接成一个字符串
StringBuilder content = new StringBuilder(); for ( int i = 0; i < arr. length; i++) { content.append(arr[i]); }
3. 将拼接成一个字符串的参数0就行sha1加密
public static String SHA1(String inStr) { MessageDigest md = null; String outStr = null; try { md = MessageDigest.getInstance("SHA-1"); byte[] digest = md.digest(inStr.getBytes()); //返回的是byet[],要转化为String存储比较方便 outStr = bytetoString(digest); } catch (NoSuchAlgorithmException nsae) { nsae.printStackTrace(); } return outStr; }
4. 最后将sha1加密后的字符串可与signature对比,匹配成功返回echostr,否则接入失败
OK!现在已经成为开发者了!
讨论QQ群:315272857
相关文章推荐
- 如何进行微信公众平台的后台开发
- 微信公众平台开发实战Java版之如何网页授权获取用户基本信息
- 微信公众平台开发教程第22篇-如何保证access_token长期有效
- 微信公众平台开发实战Java版之如何网页授权获取用户基本信息
- 没有80端口的备案域名,如何做微信公众平台的开发?本文介绍可以通过任何域名来做开发,www.baidu.com和www.163.com和www.so.com这样的域名都可以
- 微信公众平台开发教程第22篇-如何保证access_token长期有效
- 如何做好微商城等微信公众平台开发功能营销活动
- 微信公众平台开发实战Java版之如何网页授权获取用户基本信息
- 微信公众平台开发教程第22篇-如何保证access_token长期有效
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
- 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息
- 如何进行微信公众平台的后台开发
- [051] 微信公众平台开发教程第22篇-如何保证access_token长期有效
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
- 微信公众平台开发教程第22篇-如何保证access_token长期有效
- 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
- 如何学习微信公众平台的开发?
- 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息