关于微信公众平台接口的验证无法正确响应问题解决办法汇总
相信很多初入微信公众平台的开发者都遇到过这样的问题。接口写好了,但验证又出错了,这时候需要我们冷静的排查一下问题。
首先我们检查一下 接口的 URL 是否可以正常访问。直接在浏览器地址栏 输入你的 接口URL 进行访问 如果出现 404 之类的错误码就要好好检查一下程序和服务器环境了。
比如linux服务器 是否有目录或文件名的大小写。主机的配置 等等。。 如果显示空白 (一般就是可以访问,因为接口通常不直接显示内容到页面)
URL 没问题的话 再检查一下填写的TOKEN 是否与接口内定义的一致。(使用英文或数字)
如果问题仍然没解决,再检查接口的验证函数方法是否正确 一般直接复制官方的示例不会出错的。
下面是微信公众平台官方的一个PHP示例,我稍作删减 可以专门验证接口用,验证通过以后再删除里面的函数 直接写功能就可以了。因为公众平台的接口验证是一次性的。
验证接口示例下载
-
<?php
-
$wx = new wechatCallbackapiTest();
-
$wx->valid(); //执行接口验证函数
-
class wechatCallbackapiTest
-
{
-
public function valid()
-
{
-
$echoStr = $_GET["echostr"];
-
//valid signature , option
-
if($this->checkSignature()){
-
echo $echoStr;
-
exit;
-
}
-
}
-
-
private function checkSignature()
-
{
-
$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 ){
-
return true;
-
}else{
-
return false;
-
}
-
}
-
}
复制代码