url请求超时/token验证失败

部署运行你感兴趣的模型镜像

微信公众平台基本配置会出现的两个错误全让我碰见 了

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 验证失败”,这时候要多试几次

您可能感兴趣的与本文相关的镜像

Wan2.2-T2V-A5B

Wan2.2-T2V-A5B

文生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

### 如何使用 Axios 在请求头中添加 Token 进行身份验证 在使用 Axios 时,可以通过设置请求头中的 `Authorization` 字段来携带 Token 进行身份验证。以下是实现这一功能的详细方法: #### 1. 直接在请求中设置 `headers` 可以在每次发起请求时,直接在请求配置中添加 `headers` 属性,并将 Token 设置为 `Authorization` 的值。例如: ```javascript axios({ method: "get", url: "/api/user/queryjson", headers: { Authorization: `Bearer ${this.$cookies.get("token")}` // 设置 Token } }).then(res => { console.log(res); }); ``` 这种方式适合于单次请求或需要动态调整 Token 的场景[^3]。 #### 2. 使用 Axios 拦截器全局设置 Token 为了减少重复代码并提高可维护性,可以使用 Axios 的拦截器功能,在所有请求发出前自动添加 Token请求头中。以下是一个示例实现: ```javascript import axios from 'axios'; import { getToken } from './auth'; // 假设有一个获取 Token 的函数 const service = axios.create({ baseURL: process.env.BASE_API, // 设置基础 URL timeout: 5000 // 设置超时时间 }); // 请求拦截器 service.interceptors.request.use( config => { const token = getToken(); // 获取当前用户的 Token if (token) { config.headers['Authorization'] = `Bearer ${token}`; // 添加到请求头 } return config; }, error => { console.error('请求错误:', error); return Promise.reject(error); } ); // 响应拦截器 service.interceptors.response.use( response => { return response.data; // 返回响应数据 }, error => { console.error('响应错误:', error); return Promise.reject(error); } ); export default service; ``` 通过上述方式,可以在项目中全局设置 Token,无需每次请求都手动添加[^2]。 #### 3. 注意事项 - 确保 Token 的格式正确。通常情况下,Token 需要以 `Bearer` 开头,后面跟上实际的 Token 值。 - 如果在调试过程中发现后台未接收到 Token,请检查是否正确设置了请求头[^4]。 - 在生产环境中,确保 Token 的安全性,避免泄露。 #### 示例代码 以下是一个完整的 Vue 项目中使用 Axios 携带 Token 的示例: ```javascript // src/api/axios.js import axios from 'axios'; import { getToken } from './auth'; const instance = axios.create({ baseURL: 'https://api.example.com', // 替换为实际的 API 地址 timeout: 5000 }); instance.interceptors.request.use( config => { const token = getToken(); if (token) { config.headers['Authorization'] = `Bearer ${token}`; } return config; }, error => { return Promise.reject(error); } ); export default instance; // 调用示例 import axiosInstance from './api/axios'; axiosInstance.get('/user').then(response => { console.log(response); }).catch(error => { console.error(error); }); ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值