微信公众号开发(一)服务器及接口的配置

微信公众号开发(一)服务器及接口的配置

1、测试号

2、服务器

3、该BAE的代码可以使用git或svn管理,我们在本地写好代码之后,直接push上去就可以了,相当方便,而且可以设置快捷发布,提交代码当即发布。

缺点就是它的日志系统不够完善,不过这个缺点很容易解决,我们可以自己打印信息到文件里,然后读取出来,下面将会介绍到。

百度云网址是:,登录之后,点击BAE后如图

3、配置接口

上面进入测试号界面的时候我们可以看到有一个接口配置信息的模块,如下所示

在编写任何的代码之前,我先说一下本博客的一些习惯,为了便于理解,我会先将文件的结构和代码先贴出来,然后才解释具体代码的含义,这样如果熟悉的人就可以直接跳过该部分了。

文件结构如下

index.php用于处理消息。

Utils.php,提供了两个函数,traceHttp()将请求的时间、远程主机地址和查询字符串输出到query.xml文件中。logger()将类型、时间和post数据输出到log.xml中。

<?php
class Utils
{
    public static function traceHttp()
    {
        $content = date(Y-m-d H:i:s)."

remote_ip:".$_SERVER["REMOTE_ADDR"].
            "

".$_SERVER["QUERY_STRING"]."


";
        $max_size = 1000;
        $log_filename = "./query.xml";
        if (file_exists($log_filename) and (abs(filesize($log_filename))) > $max_size){
            unlink($log_filename);
        }else {

        }
        file_put_contents($log_filename, $content, FILE_APPEND);
    }

    public static function logger($log_content, $type = 用户)
    {
        $max_size = 3000;
        $log_filename = "./log.xml";
        if (file_exists($log_filename) and (abs(filesize($log_filename)) >
                $max_size)) {
            unlink($log_filename);
        }
        file_put_contents($log_filename, "$type  ".date(Y-m-d H:i:s)."

".$log_content."

",
            FILE_APPEND);
    }
}

output_query.php,输出query.xml的内容

<?php
@header(Content-type: text/plain;charset=UTF-8);
$filepath = ./query.xml;
readfile($filepath);

output_log.php,输出log.xml的内容。

<?php
@header(Content-type: text/plain;charset=UTF-8);
$filepath = ./log.xml;
readfile($filepath);

是不是非常简单,然后我们开始写处理消息index.php

这几个文件写好之后,直接通过git push到BAE上,如果设置了快捷发布,过1、2秒钟就会自动发布了,状态里面会显示绿色的"正常",如果没有设置快捷发布,上传代码后需要手动点击右边的快捷发布按钮。

这时我们就可以点击测试号界面里面的那个提交按钮了。

如果配置正确,则会提示配置成功。

4、调试

在浏览器地址栏上输入,xxx/output_query.php,xxx是你的域名。则会出现你点击提交后发送过来的请求,类似如下

可以看到该查询字符串有4个字段

只有在验证URL的时候查询字符串中才会有“echostr”这个字段,验证的方法是

  1. 将token、timestamp、nonce三个参数进行字典序排序
  2. 将三个参数字符串拼接成一个字符串进行sha1加密

相关博客

经验分享 程序员 微信小程序 职场和发展