一、接口概述
京东拍立淘接口基于图像识别技术,允许用户通过上传图片或提供图片URL,在京东商品库中搜索相似商品,并返回包含商品名称、价格、图片链接、相似度评分等信息的JSON格式结果。其核心优势包括:
- 多模态输入:支持本地图片、URL或Base64编码图片。
- 精准匹配:依托机器学习算法和大数据技术,深度分析商品特征(如颜色、形状、纹理)。
- 广泛覆盖:涵盖京东海量商品库,包括服饰、数码、家居等多品类。
- 智能推荐:结合用户行为数据,提供个性化商品推荐。
二、接口调用流程
1. 注册与认证
- 访问京东开放平台:完成企业/个人账号注册。
- 创建应用:在控制台创建应用,提交审核信息,获取
App Key
和App Secret
。 - 申请权限:在开放平台申请“京东图片搜索拍立淘API”权限,审核通过后调用接口。
2. 图片准备
- 本地图片:转换为Base64编码。
- 网络图片:确保URL可公开访问,或通过京东上传接口获取唯一图片ID。
3. 构建请求
- 请求方式:HTTP POST/GET。
- 请求地址:示例URL(需替换为最新文档地址): https://api.jd.com/routerjson?method=jd.union.open.goods.query
- 必传参数: app_key:应用标识。 360buy_param_json:包含图片数据(如imgid、image_url或Base64编码)。 timestamp:当前时间戳。
- 可选参数: category_id:商品分类ID(如手机通讯类目ID:12345)。 page_index/page_size:分页控制。 sort:排序规则(如按相似度score降序)。
4. 生成签名
- 签名算法:使用App Secret对参数进行排序并拼接,生成MD5签名。 scss 体验AI代码助手 代码解读复制代码python import hashlib def generate_sign(app_secret, params): sorted_params = sorted(params.items()) param_str = ''.join(f'{k}{v}' for k, v in sorted_params) + app_secret return hashlib.md5(param_str.encode()).hexdigest()
5. 发送请求
- Python示例: csharp 体验AI代码助手 代码解读复制代码python import requests def jd_pailitao_search(app_key, app_secret, image_url): url = "https://api.jd.com/routerjson" params = { "method": "jd.union.open.goods.query", "app_key": app_key, "360buy_param_json": f'{{"goodsIdList":[{{"goodsId":"{image_url}"}}]}}', "timestamp": "当前时间戳" } params["sign"] = generate_sign(app_secret, params) response = requests.get(url, params=params) return response.json()
6. 响应处理
- 返回字段: status/code:请求状态(如200表示成功)。 result.items:商品列表,包含product_id、product_name、price、score等。 stock:库存状态(如有货)。
三、参数说明
参数 | 必选 | 说明 |
---|---|---|
app_key | 是 | 应用标识,用于身份验证。 |
image_url | 是 | 图片URL或Base64编码数据。 |
category_id | 否 | 商品分类ID,限定搜索范围。 |
page_index | 否 | 分页页码(默认1 )。 |
page_size | 否 | 每页返回数量(默认20 )。 |
sort | 否 | 排序规则(如score 按相似度降序)。 |
四、应用场景
- 电商应用:用户上传商品图片,快速找到同款或相似商品。
- 智能导购:结合用户历史行为,推荐搭配商品。
- 商家工具:竞品分析、价格监控、库存管理。
- 线下零售:实体店扫码购,比价或查找线上优惠。
- 版权保护:设计师通过图片搜索排查侵权商品。
五、注意事项
- 频率限制:免费版接口默认QPS≤5,超出需升级套餐。
- 图片质量:建议图片主体占比≥60%,避免模糊或遮挡。
- 签名安全:禁止在前端生成签名,防止App Secret泄露。
- 错误处理: 认证失败:检查App Key和App Secret。 图片无效:确认URL可访问或Base64编码正确。 分类ID错误:参考京东开放平台类目文档。
- 数据缓存:对高频搜索结果(如热门商品)使用Redis缓存,减少实时调用。
六、示例代码(Java)
java
import com.jd.open.api.sdk.DefaultJdClient;
import com.jd.open.api.sdk.JdClient;
import com.jd.open.api.sdk.request.JdSearchByImageRequest;
import com.jd.open.api.sdk.response.JdSearchByImageResponse;
public class JdPailitaoDemo {
public static void main(String[] args) {
String appKey = "YOUR_APP_KEY";
String appSecret = "YOUR_APP_SECRET";
String imageUrl = "https://example.com/image.jpg";
JdClient client = new DefaultJdClient(appKey, appSecret);
JdSearchByImageRequest req = new JdSearchByImageRequest();
req.setImageUrl(imageUrl);
req.setCategoryId("0"); // 全品类搜索
try {
JdSearchByImageResponse rsp = client.execute(req);
System.out.println(rsp.getResult());
} catch (Exception e) {
e.printStackTrace();
}
}
}
通过以上指南,开发者可快速集成京东拍立淘接口,实现以图搜商品功能,提升用户体验和商业效率。