您现在的地位: 365体育备用网址 > bet365体育在线, > 微信公众平台开拓 > 3.3.2配置失败常见问题与分析

3.3.2配置失败常见问题与分析_365体育备用网址官网资讯

您现在的地位: 365体育备用网址 > bet365体育在线, > 微信公众平台开拓 > 3.3.2配置失败常见问题与分析

3.3.2配置失败常见问题与分析

此节有 185 人学习过     参与评论

当我们在提交URL和Token的时刻,有时刻会碰到提交不胜利的情况,具体有以下几种:

  1. 要求URL超时
      这种情况一般是由于服务器网速或响应速度太慢。能够先重试几次或者等一段时间再来试,如果还是这样,则需要考虑更换速度更快、性能更好的服务器。
  2. 系统发生失误,请稍后重试
      这种情况一般是由于微信服务器短时内的异常引起的,一般重试或者过一段时间尝试即可。
  3. Token验证失败
      这种情况需要具体分析验证进程被卡在哪一个环节了。我们能够通过调用变量$_SERVER来猎取服务器和执行环境信息来分析。
      $_SERVER是一个包含了诸如头信息(header)、路径(path)、以及脚本地位(script locations)等信息的数组。这个数组中的项目由 Web 服务器创建。了解在线澳门赌场 娱乐场宝博捕鱼$_SERVER的信息,可访问官方网站:http://www.php.net/manual/zh/reserved.variables.server.php
    这里我们需要使用以下两个元素:
      ? $_SERVER[‘REMOTE_ADDR’](来访者的IP地址,此处为微信服务器的IP)
      ? $_SERVER[‘QUERY_STRING’](查询要求字符串,此处为微信服务器发过来的GET要求字符串)
      将以上两个变量记载到日志中。函数定义如下:
function traceHttp()
{
    $content = date('Y-m-d H:i:s')."\nREMOTE_ADDR:".$_SERVER["REMOTE_ADDR"]."\nQUERY_STRING:".$_SERVER["QUERY_STRING"]."\n\n";
    
    if (isset($_SERVER['HTTP_APPNAME'])){   //SAE
        sae_set_display_errors(false);
        sae_debug(trim($content));
        sae_set_display_errors(true);
    }else {
        $max_size = 100000;
        $log_filename = "log.XML";
        if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
        file_put_contents($log_filename, $content, FILE_APPEND);
    }
}

上面代码中,当环境为SAE时,使用SAE的调试函数sae_debug()将内容记载到日志中。而在具有读写权限的空间下,使用file_put_contents()函数把字符串写入文件。
然后在程序的数据处置之前调用该函数,记载信息,代码如下所示:

define("TOKEN", "weixin");
traceHttp();
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
    $wechatObj->valid();
}else{
    $wechatObj->responseMsg();
}

当我们提交URL和Token验证的时刻,程序目录下应当生成一个log.xml的文件。内容类似如下:

2014-01-10 11:03:21
REMOTE_ADDR:101.226.61.144
QUERY_STRING:signature=6e35c6f3d3279338781047dbffd09426b9ecdee3&echostr=5979420653038092664&timestamp=1392001400&nonce=1392192345

下面能够得出结出初步结论:
  如果没有生成日志文件:微信服务器没有访问到你的服务器,需要先检讨一下你的服务器是否能够通过公网访问,以及URL路径是否正确并且能够访问,如果公网访问而微信服务器不能访问,那可能是防火墙拦截了80端口或微信服务器IP,也可能服务器所在区域与微信服务器通讯不畅,需要更换服务器。
  如果已经生成日志文件:察看REMOTE_ADDR和QUERY_STRING内容是否和上述类似。确认signature、timestamp、nonce、echostr四个参数都有值。如果这些都没有问题,则检讨程序中定义的Token值是否和提交的一致,再检讨程序流程及数据处置是否和官方文档描述的一致。
如果确定以上均没有问题,能够使用下面章节中的微信调试器进行测验,它提供了更为宽松的校验方式,并且能够实时输出当前的XML数据供调试时参考。

如对本文有疑问,请提交到交流e路发娱乐城线上赌场,广大热心网友会为你解答!! 点击进入e路发娱乐城线上赌场


公布评论 (185人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换大地娱乐注册网址
最新评论
------分隔线----------------------------
微信公众平台开拓目录
条评论
Sitemap