又是一个周一,最近天气凉快了,感觉很凉快,大家生活的动力又增加了!今天跟大家分享下微信公众号的一些开发前期准备,微信也为我们提供了一系列的接口进行开发,今天给大家分享开发的前奏,基础环境的准备。
测试公众号申请
我们要开发,那么就需要一个公众号,但是认证什么的还需要收费,而且接口也不一定全部开放出来,微信也为大家想到了这一点,给我们提供了一个测试公众号,大家可以通过下面的地址进行登录,很简单,用手机微信扫码登录即可
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
打开之后,点击登录,然后出现一个二维码,用手机微信扫一扫功能,扫码进行登录,登录后就可以看到简单的一些配置,包括appid,appsecret,以及获取access_token的url和token这些,下面就是一些接口的说明,很方便。
本地开发授权
由于微信获取access_token需要配置一个可以外网访问的url,因为要验证数据。通常我们可以选择花生壳,natapp等这些内网穿透的软件将域名直接指向开发的机器,但是还是不是很方便,这里给大家推荐一种,也是鹅厂自己开发的插件
首先下载腾讯的qq浏览器,然后在插件中心搜索“微信调试工具”进行安装,安装后打开该工具,选择服务器端调试
然后会出来一个界面,如下:
根据上面截图标注的步骤进行填写,如果是本机,第一步直接填写端口,然后点击启动按钮,稍等片刻,服务器启动完毕后,下面就会出现外网域名,这个域名可以直接访问,会指向本机服务的9191端口的服务,我测试了几次,这个域名都没有变化,非常方便,这样我们就可以在公众号的url中填写上面的地址了,token值任意填写一个
这里简单说下token,这里的token是任意字符串,微信会访问刚刚填写的url,传递一些参数过来,然后将这些参加进行sha1运算,其中token也要加入进去运算,最后算出来的hash值跟腾讯的一样,就说明成功了,下面给出一个java的实现方式:
@controller
@requestmapping(value="noframe")
public class wxcorecontroller {
private static logger logger = logutils.get();
private static final string token = "zhoujiang";
@requestmapping(value="wxcore",method=requestmethod.get)
public void doget(httpservletresponse response, string signature,string timestamp,string nonce,string echostr){
list<string> params = apputils.getarraylist();
params.add(nonce);
params.add(timestamp);
params.add(token);
collections.sort(params, new comparator<string>() {
public int compare(string o1, string o2) {
return o1.compareto(o2);
}
});
string temp = com.jacksoft.wx2wb.utils.sha1.encode(params.get(0) + params.get(1) + params.get(2));
printwriter out = null;
try {
out = response.getwriter();
if (temp.equals(signature)) {
out.print(echostr);
}
} catch (exception e) {
e.printstacktrace();
}
}}
主要看这个代码处理微信参数的部分,其他的语言也可以参照。
接口测试
上面的url和token配置完毕后,就可以进行接口测试了,很简单的获取access_token的值,
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=appsecret
将上面的appid和secret替换为你自己的数据,然后直接丢浏览器进行访问,就可以返回你的access_token值和过期时间了,然后就可以去访问其他的接口了。