微信公众平台基本配置会出现的两个错误全让我碰见 了
1.先说第一个,url请求超时,本来以为是因为我的域名刚刚备案成功还不超过24小时,所以出现这个问题,等24小时之后我才发现问题没这么简单。问题出在域名填写格式上面了:我本来写的是https://modige.top/api.php,后来有一次写成http://modige.top/api.php就不再报url请求超时的错误了,原来这系统它只认http不认https
2.本以为问题到此为止,没想到换了个错误:Token认证失败。在网上找了八百篇博客也没能弄成,直到把认证文件里的代码改成如下
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "modige");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest{
public function valid(){
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg(){
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if(!empty( $keyword )){
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
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;
}
}
}
?>
这里要注意,语句
define("TOKEN", "modige");里的modige需要自己设置,如果不想该就在基本配置里的token选项中填入modige
下附认证全过程。
1.进入微信公众平台官网(https://mp.weixin.qq.com/),登陆,进入左下角的基本配置一栏
2.把上面的代码复制下来,新建一个名为api.php的文件,粘贴进去,把这个文件上传到自己的服务器根目录中,也就是域名所在 的根目录
3. 把 http://自己的域名/api.php放在 服务器地址(URL) 一栏,在Token一栏中,若是原封不动的粘贴的上面的代码,就填 modige ,若自己设置了,则填入自己的, 消息加解密密钥 一栏,选择自动生成即可。
4.消息加密方式随意选择
ps:有时候配置正确也会显示“token 验证失败”,这时候要多试几次
21万+

被折叠的 条评论
为什么被折叠?



