微信公众平台如何开发

来源:互联网 发布:凤险管理矩阵 编辑:程序博客网 时间:2024/05/29 16:50
在开发之前,个人建议开发者或者需求者还是先了解清楚微信公众账号的一个基本模式,何为订阅号,何为服务号。两者之间的区别以及功能限制。

这边我针对开发方面捡重点说几点,具体的区别我相信手指动动,百度一下,什么问题都明白了。

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


原创粉丝点击