在对接微信公众号平台的时候 服务器配置 一直验证 token失败
1、要原样返回 echostr 参数 但是 他给的示例代码是没有写返回 echostr参数的
2、还是没有解决的 加一段代码 来获取一下完整的请求路径
并且想一想 是不是被 中间件 拦截了 需要登录 所以没有请求过来
php代码如下:
function getpageurl() {$pageURL = 'http';if(isset($_SERVER['HTTPS']) && $_SERVER["HTTPS"] == "on"){$pageURL .= "s";}$pageURL .= "://";if ($_SERVER["SERVER_PORT"] != "80") {$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];}else{$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];}return $pageURL;}
我打印到的是另外绑定的一个ip / 域名,跟 配置里的url是不一样的,然后我把站点绑定的其他ip/域名删除之后终于访问到了正确的域名。
3、thinkphp在调试的时候 右下角是有一个 debug的 图标按钮
在我用postman调试的时候 终于发现了问题
将 调试模式暂时关闭掉,然后再进行验证。
完整的代码如下 (thinkphp):
public function verifyToken(){$data = $this->request->param();if (empty($data['signature']) || empty($data['timestamp']) || empty($data['nonce']) || empty($data['echostr'])) {return -1;}$signature = $data['signature'];$timestamp = $data['timestamp'];$nonce = $data['nonce'];$echostr = $data['echostr'];$token = $this->config['token'];$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING);$tmpStr = implode($tmpArr);$tmpStr = sha1($tmpStr);if ($tmpStr == $signature) {return $echostr;} else {return -1;}}
本文发布于:2024-01-31 09:27:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170666447227527.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |