核心结论
通过 1688 开放平台的 item_get 接口,可一键获取商品全量信息(标题、价格、SKU、库存、批发价梯度、详情图等),需完成企业认证 + 应用创建 + 权限申请,使用 HMAC-MD5 签名机制 构建安全请求,支持 Python/Java 等语言调用,个人账号权限受限,企业账号可调用 5000 次/日。
一、接入前置条件(必做)
表格
步骤 操作说明 注意事项
1. 账号类型 必须使用企业开发者账号 个人账号无法申请商品详情接口权限,审核直接驳回
2. 实名认证 使用企业支付宝完成营业执照认证 个人支付宝绑定将导致认证失败
3. 创建应用 登录 1688 开放平台 → 应用管理 → 创建应用 选择“自用型”应用,避免复杂 OAuth2 流程
4. 获取凭证 获取 app_key(公开)和 app_secret(保密) app_secret 严禁硬编码、禁止上传至 GitHub,建议使用环境变量存储
5. 申请接口权限 在应用详情页 → 接口权限 → 搜索并申请 item_get 申请理由必须写真实业务场景(如“ERP 同步库存”),禁止写“爬虫”“数据采集”
✅ 关键提示:权限审核周期为 1–3 个工作日,建议提前申请。
二、接口核心参数与请求结构
表格
参数名 类型 必填 说明
method String 是 固定值:1688.item_get
app_key String 是 应用创建后获取的 App Key
timestamp String 是 格式:YYYY-MM-DD HH:MM:SS,与服务器时间误差 ≤10 分钟
v String 是 API 版本,固定为 2.0
sign_method String 是 固定为 md5
format String 是 返回格式,固定为 json
num_iid Long 是 1688 商品 ID(非链接,非 SKU)
sign String 是 签名结果(见下文生成规则)
请求地址:
https://gw.api.1688.com/openapi/param2/1/1688.item_get/2.0
请求方式:推荐 POST(避免 GET 参数截断)
三、签名生成算法(核心难点)
签名是调用失败的最常见原因。必须严格按以下步骤生成:
筛选参数:剔除 sign 和空值参数
排序:将剩余参数按 参数名 ASCII 码升序 排列(区分大小写)
拼接:格式为 key1=value1key2=value2...(无 &、无空格)
加盐:在拼接字符串前后拼接 app_secret
计算:对结果执行 MD5 哈希,转为大写十六进制字符串
Python 签名生成示例:
python
import hashlib
import time
def generate_sign(params, app_secret):
# 1. 筛选非空参数,排除 sign
filtered = {k: v for k, v in params.items() if v is not None and k != 'sign'}
# 2. 按 key 升序排序
sorted_keys = sorted(filtered.keys())
# 3. 拼接 key=value
param_str = ''.join(f"{k}{filtered[k]}" for k in sorted_keys)
# 4. 加盐:app_secret + param_str + app_secret
sign_str = app_secret + param_str + app_secret
# 5. MD5 + 大写十六进制
sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
return sign
# 使用示例
params = {
'method': '1688.item_get',
'app_key': 'your_app_key',
'timestamp': time.strftime('%Y-%m-%d %H:%M:%S'),
'v': '2.0',
'sign_method': 'md5',
'format': 'json',
'num_iid': 610947572360
}
sign = generate_sign(params, 'your_app_secret')
params['sign'] = sign
⚠️ 常见错误:
参数未排序(如 a=1&b=2 未转为 a1b2)
拼接时加了 & 或空格
app_secret 泄露或错误
时间戳超时(建议使用 NTP 同步时间)
四、返回数据结构(JSON 示例)
json
{
"item": {
"title": "【工厂直供】不锈钢保温杯 500ml 批发价低至8元",
"price": "8.00",
"price_range": "8.00-12.00",
"min_order_quantity": 100,
"stock": 5000,
"sku_list": [
{
"sku_id": "123456",
"spec": "颜色:蓝色,容量:500ml",
"price": "8.50",
"stock": 2000
}
],
"main_image": "https://img16.1688.com/xxx.jpg",
"detail_images": ["https://img16.1688.com/xxx1.jpg", "..."],
"seller": {
"shop_name": "XX五金批发厂",
"seller_id": "123456789"
},
"promotion": {
"discount": "满1000件享7折",
"freight": "包邮"
}
}
}
关键字段说明:
price_range:批发价区间(非单一价格)
min_order_quantity:最小起订量(MOQ)
sku_list:多规格库存与价格
detail_images:商品详情页图片列表
五、实战建议与避坑指南
调用频率限制:
个人账号:100 次/日
企业账号:5000 次/日(可申请升级至 50 次/秒)
超限将被临时封禁 24 小时
数据延迟:
cache=yes(默认)会返回缓存数据,如需实时库存,设为 cache=no
错误排查:
返回 {}:权限未开通或 num_iid 无效
返回 {"error_response":{"code":10001,"msg":"Invalid sign"}}:签名错误
返回 {"error_response":{"code":10002,"msg":"Insufficient permissions"}}:未申请接口权限
推荐工具:
使用 Postman 或 Apifox 测试接口,快速验证参数与签名逻辑
六、推荐学习资源(富媒体辅助)

