Skip to content
POST{BASE_URL}/wx-api/api/cdn/download
只读CDN 文件JSON · Bearer App Token · body appid

CDN 下载

凭「文件凭证」把 CDN 上的媒体解密取回本地(base64),用于下载收到的消息附件(图/视频/文件),或校验自己刚上传的媒体。

说明与注意

  • 图片(14 / 101)传 fileType=2,收到的消息带原图时可以试 1;封面传 3;视频(23 / 103)传 4;文件(15 / 20)和语音(16)传 5。自己上传的图片存的是压缩图,下载必须用 2

请求参数

参数必填类型说明
appidstring实例 appid,标识操作哪个已登录账号。示例:we_xxxxxxxxxxxxxxx
fileIdstring文件 id。示例:305f...0000
fileTypeint641 原图 / 2 压缩图 / 3 封面图 / 4 视频 / 5 文件。示例:2
aesKeystring文件 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 取回。

响应字段

字段类型说明
codeint64统一封套状态码:0=成功,负数=失败
detailstring附加明细,通常为空
messagestring文案:成功为 ok;失败形如 -码|描述
timestring服务端处理时间 YYYY-MM-DD HH:MM:SS

下一步