Appearance
CDN 下载
凭「文件凭证」把 CDN 上的媒体解密取回本地(base64),用于下载收到的消息附件(图/视频/文件),或校验自己刚上传的媒体。
说明与注意
- 图片(
14/101)传fileType=2,收到的消息带原图时可以试1;封面传3;视频(23/103)传4;文件(15/20)和语音(16)传5。自己上传的图片存的是压缩图,下载必须用2。
请求参数
| 参数 | 必填 | 类型 | 说明 |
|---|---|---|---|
appid | 是 | string | 实例 appid,标识操作哪个已登录账号。示例:we_xxxxxxxxxxxxxxx |
fileId | 是 | string | 文件 id。示例:305f...0000 |
fileType | 是 | int64 | 1 原图 / 2 压缩图 / 3 封面图 / 4 视频 / 5 文件。示例:2 |
aesKey | 是 | string | 文件 AESKey。示例:8a8bbce1887ce81517b7fedac2bdfb17 |
请求示例
http
POST {BASE_URL}/wx-api/api/cdn/download
Authorization: Bearer <你的 App Token>
Content-Type: application/json
{
"appid": "we_xxxxxxxxxxxxxxx",
"fileId": "305f...0000",
"fileType": 2,
"aesKey": "8a8bbce1887ce81517b7fedac2bdfb17"
}bash
curl -X POST '{BASE_URL}/wx-api/api/cdn/download' \
-H 'Authorization: Bearer <你的 App Token>' \
-H 'Content-Type: application/json' \
--data-raw '{
"appid": "we_xxxxxxxxxxxxxxx",
"fileId": "305f...0000",
"fileType": 2,
"aesKey": "8a8bbce1887ce81517b7fedac2bdfb17"
}'python
import requests
url = "{BASE_URL}/wx-api/api/cdn/download"
headers = {"Authorization": "Bearer <你的 App Token>", "Content-Type": "application/json"}
body = """{
"appid": "we_xxxxxxxxxxxxxxx",
"fileId": "305f...0000",
"fileType": 2,
"aesKey": "8a8bbce1887ce81517b7fedac2bdfb17"
}"""
resp = requests.post(url, headers=headers, data=body.encode("utf-8"))
print(resp.text)java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
String url = "{BASE_URL}/wx-api/api/cdn/download";
String body = "{\n" +
" \"appid\": \"we_xxxxxxxxxxxxxxx\",\n" +
" \"fileId\": \"305f...0000\",\n" +
" \"fileType\": 2,\n" +
" \"aesKey\": \"8a8bbce1887ce81517b7fedac2bdfb17\"\n" +
"}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create(url))
.header("Authorization", "Bearer <你的 App Token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());php
<?php
$url = '{BASE_URL}/wx-api/api/cdn/download';
$body = <<<'JSON'
{
"appid": "we_xxxxxxxxxxxxxxx",
"fileId": "305f...0000",
"fileType": 2,
"aesKey": "8a8bbce1887ce81517b7fedac2bdfb17"
}
JSON;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer <你的 App Token>',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;响应示例
解析响应前确认字段
返回字段见本页「说明与注意」和CDN 文件模块总览。完整响应格式及未列出的字段,请通过开通与支持联系对接人确认后再解析。
本接口返回 {base64, serverAddr},媒体解密后以 base64 取回。
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
code | int64 | 统一封套状态码:0=成功,负数=失败 |
detail | string | 附加明细,通常为空 |
message | string | 文案:成功为 ok;失败形如 -码|描述 |
time | string | 服务端处理时间 YYYY-MM-DD HH:MM:SS |