税号与短信验证码接收的映射关系,SmsForwarder 配置教程
税局登录流程中需要短信验证码(二次验证)。SMS 映射功能让您可以通过手机短信转发的方式,将税局发送的验证码自动回传给平台,实现全自动登录。
工作原理:税局发送验证码短信 → 手机 APP(SmsForwarder)拦截短信 → POST 到平台接收地址 → 平台提取验证码 → 自动完成登录。
配置入口:控制台 → Webhook & SMS → 短信接收 Tab。
手机 APP 收到短信后,需 POST 到以下地址:
POST https://your-domain.com/api/sms/receive
请求体格式:
{
"secret": "你的 SMS Webhook Secret",
"nsrsbh": "91xxx,92xxx",
"content": "短信全文内容"
}
字段说明:
| 字段 | 说明 |
|---|---|
secret | 身份认证密钥,一个租户只有一个,所有税号共用 |
nsrsbh | 税号,支持逗号分隔多个。一条短信会为所有税号分别存储验证码 |
content | 短信全文内容,平台自动从中提取验证码 |
创建 SMS 映射时,系统自动生成 Secret(64位十六进制字符串)。此 Secret 用于 SmsForwarder 请求身份认证。
一个租户只有一个 Secret,所有税号共用。可在短信接收 Tab 中查看和刷新 Secret。
1. 在短信接收 Tab,点击"新增 SMS 映射"按钮
2. 选择需要绑定短信接收的税号(可多选,仅显示已授权且未绑定的税号)
3. 点击"创建",系统自动生成 Secret 并为每个税号创建映射记录
在 Android 手机上安装 SmsForwarder(短信转发器),可从 GitHub Releases 下载最新版 APK,或通过 F-Droid 安装。安装后打开 APP,授予短信读取权限。
点击"新增 SMS 映射"按钮,选择需要绑定短信接收的税号(可多选)。创建完成后,这些税号即启用 SMS 接收功能。
打开 SmsForwarder → 进入"发送通道" → 新增一个 Webhook 类型的通道:
{"secret":"你的Secret","nsrsbh":"91xxx,92xxx","content":"[msg]"}
打开 SmsForwarder → 进入"转发规则" → 新增规则:
常见税务短信发送方号码可咨询当地税务局,或直接设置为匹配所有短信(匹配规则留空)。
配置完成后,向手机发送一条测试短信,观察 SmsForwarder 是否成功转发。若转发失败,请检查:
① Webhook URL 是否正确(必须为 HTTPS 完整地址)
② secret 是否填写正确(从本页面 SMS Webhook Secret 区域复制)
③ nsrsbh 是否填写了所有关联税号(逗号分隔)
④ 请求体 JSON 格式是否正确(注意双引号和逗号)
⑤ SmsForwarder 是否已授予短信读取和后台运行权限
⑥ 手机网络是否正常
在 SMS 映射列表中,每个税号映射可以:
启用/禁用:切换映射状态。禁用后该税号不再接收短信验证码,但不删除映射记录。
删除:彻底删除映射记录。删除后该税号可重新绑定。
当平台需要税局登录验证码时:
1. 平台向数据库写入一条 pending 验证码请求
2. 税局发送短信验证码到手机
3. SmsForwarder 拦截短信并 POST 到平台
4. 平台提取验证码并写入数据库对应记录
5. 登录流程轮询数据库(每3秒,超时120秒),获取验证码后继续登录