写给想做微信公众号开发的新手们

  • 2016-10-21
  • 0

最近天气凉快了,感觉很凉快,大家生活的动力又增加了!今天跟大家分享下微信公众号的一些开发前期准备,微信也为我们提供了一系列的接口进行开发,今天给大家分享开发的前奏,基础环境的准备。

  • 测试公众号申请
    我们要开发,那么就需要一个公众号,但是认证什么的还需要收费,而且接口也不一定全部开放出来,微信也为大家想到了这一点,给我们提供了一个测试公众号,大家可以通过下面的地址进行登录,很简单,用手机微信扫码登录即可
    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 params = AppUtils.getArrayList();
    params.add(nonce);
    params.add(timestamp);
    params.add(TOKEN);
    Collections.sort(params, new Comparator() {
    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值和过期时间了,然后就可以去访问其他的接口了。