21,886
社区成员
发帖
与我相关
我的任务
分享
private function verify($token) {
//接收微信GET传递过来的参数
$echoStr = $_GET["echostr"];
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
//1.将token、timestamp、nonce三个参数进行字典序排序
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
//2.将三个参数字符串拼成一个字符串,进行sha1加密
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
//3.开发者获得加密后的字符串可与signature对比
if ($tmpStr == $signature && isset($_GET['echostr'])) {
echo $_GET['echostr'];
} else {
return false;
}
}
<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
?>
然后你用参数请求你的php,有错误就会返回了。
$appID = '1';
$appsecret = 'abc';
$url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appID.'&secret='.$appsecret;
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//不做服务器认证
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);//不做客户端认证
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$token=curl_exec($ch);
curl_close($ch);
echo $token;
输出:{"errcode":40013,"errmsg":"invalid appid hint: [xa7PhA0367e575]"}
表示可以请求到,不会是false的,如果你还是false可以直接用我的代码测试
第2个问题
调试回调接口,首先你需要在接口中加入log,就是写一个log文件,
例如
<?php
$logdata = json_encode($_REQUEST);
file_put_contents('wx.log', $logdata, FILE_APPEND);
?>
然后就拿到微信请求过来的参数了,你可以多次使用他这些请求参数来调试。直到调试成功。