必须先完成接口可用性验证,即微信服务器向填写的url发起get校验请求,提取signature、timestamp、nonce、echostr四参数,按token、timestamp、nonce字典排序拼接后sha1加密,与signature比对一致则返回echostr,否则配置失败。

想在不干扰线上公众号运营的前提下验证自定义菜单、消息自动回复或用户标签等接口功能,必须先完成接口可用性验证——这一步卡住90%的新手,因为微信服务器会向你填写的URL发起GET校验请求,任何参数拼接错误或响应延迟都会导致“配置失败”。
获取测试号AppID和AppSecret
打开微信官方测试号申请页 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login → 微信扫码登录 → 页面自动显示测试号信息,其中【AppID和AppSecret是后续所有接口调用的唯一凭证,务必复制保存】。注意:该测试号无需注册、不占用主体资质,但仅限100个关注者体验,且不支持微信支付。
配置本地服务地址与Token
在测试号页面找到“接口配置信息”区域,填写两项必填内容:
URL:填入你本地服务的公网可访问地址(如使用ngrok,格式为 https://xxx.ngrok.io/wx),【必须以https://开头,且80/443端口以外的端口会被微信拒绝】;
Token:任意英文或数字组合(3–32位),例如 wxtest2026,这个值将参与签名计算,后续代码中必须严格一致。
填完直接点“提交”,微信服务器立刻发起GET请求校验。若返回空白或超时,说明你的服务未监听该路径,或未正确响应echostr。
编写并部署校验逻辑(以Node.js Express为例)
第一步:新建server.js文件,安装依赖 npm install express sha1;
第二步:写入以下核心校验逻辑——它只处理GET请求,提取signature、timestamp、nonce、echostr四参数,按微信规则排序→拼接→SHA1加密→比对,成功则原样返回echostr:
const express = require('express');
const sha1 = require('sha1');
const app = express();
app.get('/wx', (req, res) => {
const { signature, timestamp, nonce, echostr } = req.query;
const token = 'wxtest2026'; // 必须与上一步填写的Token完全一致
const arr = [token, timestamp, nonce].sort();
const sha = sha1(arr.join(''));
if (sha === signature) res.send(echostr);
else res.status(403).send('Forbidden');
});
app.listen(3000);
第三步:启动服务 node server.js → 用ngrok映射本地3000端口 → 将生成的https地址填入测试号URL栏 → 提交。只要控制台打印出“微信开发接口接入测试”类日志,且网页提示“配置成功”,就说明校验通了。
用Postman快速验证业务接口(如获取access_token)
方法一:手动构造GET请求
打开Postman → 新建GET请求 → URL栏填:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=YOUR_APPID&secret=YOUR_APPSECRET → 点击Send。若返回{"access_token":"xxx","expires_in":7200},说明凭证有效。
方法二:用环境变量自动注入(推荐)
在Postman中创建环境,定义变量appid、appsecret;把URL改为https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={{appid}}&secret={{appsecret}};后续所有接口都复用这两个变量,避免硬编码出错。
注意:access_token有效期2小时,过期后请求会返回errcode 40001,必须重新获取。











