ecs开发微信公众号,URL和token验证

申请了一个微信公众号,并启用了开发者身份。之前用的是SAE,直接把下面命名为index.php的代码上传到SAE上就行了,然后在微信公众平台设置里面填写对应的URL。

现在我换成了ECS,应该怎么部署代码呢?
我在服务器根目录下建了一个文件夹weixin,文件夹里保存下面的index.php代码,然后在微信公众平台里服务器URL填写的是: http://XX.XX.XX.XX/weixin/index.php
http://XX.XX.XX.XX是我的ecs服务器地址,可以访问,但是80端口上建了一个phpwind网站,不知道对微信公众平台有没有影响。

按照上面那样填写URL和token后,总是提示token验证不通过。是什么原因呢?是ECS配置的不正确吗?

下面是直接从网上找的index.php代码,原来放在sae上是直接能用的。

<?php

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();
if (!isset($_GET['echostr'])) {
    $wechatObj->responseMsg();
}else{
    $wechatObj->valid();
}

class wechatCallbackapiTest
{
    //验证签名
    public function valid()
    {
        $echoStr = $_GET["echostr"];
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);
        if($tmpStr == $signature){
            header('content-type:text');
            echo $echoStr;
            exit;
        }
    }
    ……
    ……
    ……
 
    }
}
?>
阅读 11.3k
3 个回答

你不知道微信官方有调试工具么,直接可以看到http头,你就可以判断是什么错误了

新手上路,请多包涵

微信公众号开发必须是80端口!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进