我是个小白,最近申请了个测试号,想学一下微信开发,在配置接口配置信息的时候遇到点问题,一直都无法通过,下面是我的代码
/**
* 配置微信服务器
*/
public function setServiceUrl(){
$echoStr = $_GET['echostr'];
$params = input('get.');//获取所有的参数
//创建redis实例
$redis_config = config('redis');
$redis_config['select'] = 1;//这里选择1库
$redis_config['expire'] = 3600*24;//这里设置过期时间为1天
$redis = new Redis($redis_config);
$redis->set('set_service_url', json_encode($params), 24*3600);
if($this->checkSignature()){
header('content-type:text/plain;charset=utf-8');
ob_clean();
echo (integer)$echoStr;
exit;
}
}
/**
* 检查签名
*/
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = $this->config['token'];
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
在输出echostr之前,我记录了一次请求,发现用浏览器直接访问链接时,redis里面有记录,下面是截图(参数都是我模拟加的)
但是我在微信测试号管理里点击保存时,直接给我提示配置失败,且reids里面没有被更新
于是换个思路,用postman再试试看
郁闷了,连postman也没有响应,然后在网上查了半天,说关闭postman中的ssl证书验证就行,于是,病急乱投医,试试再说!
这下貌似有返回值了,看来微信这边也是同样的,应该是ssl证书的问题咯?
但是问题也来了,为啥浏览器访问的时候,一点问题都没有,而微信验证和使用接口工具的时候就有证书问题呢?我的域名在是正常备案过的,且ssl证书也没有过期。
还是不死心,再去服务器查了nginx的日志
可以看到,貌似请求都301了,这就有点涉及到我的知识盲区了,为啥浏览器就不301呐?
微信号:gh_ec145ad5c7d1
appid:wx1d488630d6ee3b15
求解答,不胜感激,好人一生平安