从微信小程序二维码平台(互联二维码/hlcode.cn)提取并下载仅限预览的PDF文件。
preview.hlcode.cn 格式的预览链接
#小程序://互联二维码/xxx 格式的小程序链接(需引导获取H5链接)
小程序链接 #小程序://xxx 为微信内部协议,无法在浏览器中直接打开。
需要用户提供的信息:
https://preview.hlcode.cn/?d=hl&type=pdf&time=xxx&id=xxx&name=xxx.pdf
#小程序://互联二维码/xxx,需引导用户获取H5链接
获取H5预览链接的方法:
preview.hlcode.cn 的请求
从预览URL中提取关键参数:
| 参数 | 说明 | 示例 |
|------|------|------|
| id | 二维码/文件唯一标识 | 2044949821793517569 |
| name | 文件名(URL编码) | %E5%AE%89%E7%AE%A1%E8%80%83%E6%A0%B8%E7%9F%A5%E8%AF%86%E7%82%B9.pdf |
| type | 文件类型 | pdf / word / excel / ppt |
| d | 业务渠道标识 | hl |
| time | 时间戳(毫秒) | 1776416354569 |
关键参数为 id,这是调用后端API的必要参数。
API端点:
POST https://api.hlcode.cn/qruser/file/get_url_byid
请求格式:
Content-Type: application/json
{"id": "<文件ID>"}
响应格式:
{
"code": 0,
"msg": "success",
"data": {
"url": "https://oss.hlcode.cn/server/code/file/2026/04/17/xxx.pdf"
}
}
code: 0 表示成功,文件URL在 data.url 中
msg 字段获取错误信息
调用示例(PowerShell):
Invoke-RestMethod -Uri 'https://api.hlcode.cn/qruser/file/get_url_byid' -Method Post -ContentType 'application/json; charset=utf-8' -Body '{"id":"<文件ID>"}'
使用API返回的真实URL下载文件:
curl.exe -L -o "<保存路径>" "<真实文件URL>"
验证下载结果:
Content-Type 是否为 application/pdf
%PDF-(PDF文件魔数)
| 平台 | 预览域名 | API域名 | 文件查询接口 |
|------|----------|---------|-------------|
| 互联二维码 | preview.hlcode.cn | api.hlcode.cn | POST /qruser/file/get_url_byid |
| 文件存储 | oss.hlcode.cn | - | GET /server/code/file/{path} |
| 文件存储(表单) | oss.hlcode.cn | - | GET /server/form/file/{path} |
time 参数有10分钟有效期,过期后页面显示"已超时"。但API调用不受time限制,只要 id 有效即可。
get_url_byid 接口不需要token或cookie,可直接调用。
curl 是 Invoke-WebRequest 的别名,参数语法不同,需使用 curl.exe 或 Invoke-RestMethod。
name 参数为URL编码的中文,需 decodeURIComponent 解码。文件名中包含 % 时需要转义为 %25。
type 参数对应调整。
| 问题 | 解决方案 |
|------|----------|
| API返回 code: 500 | 检查id参数是否正确,重新从预览URL提取 |
| API返回 code: 1 | 文件不存在或已被删除 |
| 下载文件为HTML而非PDF | 预览URL过期或被重定向,需重新获取真实URL |
| 用户只有小程序链接 | 引导用户获取H5预览链接,或使用F12抓包 |
共 1 个版本