电商api实战解析:1688.item_get_company 获取公司档案信息

admin6个月前1688api335

一、接口定位

item_get_company 不是“商品级”接口,而是“供应商级”接口。
输入:1688 商品 offerId 或 companyId(二选一)
输出:公司档案 60+ 字段,包括工商信息、深度认证、工厂能力、贸易能力、在线表现 5 大板块。
典型用途:
  1. 选品 SaaS 一键生成“供应商体检报告”
  2. ERP 自动拦截“贸易型”或“个体工商户”供应商
  3. 财务系统拉取“开票类型、对公账号”做应付初始化

二、权限与调用地址

表格
复制
项目说明
官方方法名alibaba.icbu.company.get
网关https://gw.open.1688.com/openapi/param2/2/system.oauth2/company/get
权限代码com.alibaba.icbu.company.read
频率默认 1 QPS,企业最高 20 QPS
费用免费,但需企业开发者+深度认证权限包

三、签名算法(2025-12 仍沿用“旧版 TOP 签名”)

  1. 排除 sign 与空值
  2. key 按 ASCII 升序
  3. key + value 首尾拼接 AppSecret
  4. MD5 → 32 位大写
Python 函数(可直接复用):
Python
复制
from hashlib import md5def sign(p: dict, secret: str) -> str:
    p = {k: v for k, v in p.items() if v is not None}
    text = ''.join([f'{k}{v}' for k, v in sorted(p.items())]) + secret    return md5(text.encode()).hexdigest().upper()

四、最小可运行示例

场景:已知 1688 商品 ID,想 1 行代码拿到“公司 + 工厂 + 认证”全套档案。
Python
复制
import requests, time, jsonclass CompanyAPI:
    url = 'https://gw.open.1688.com/openapi/param2/2/system.oauth2/company/get'
    def __init__(self, app_key, app_secret, access_token):
        self.ak, self.sk, self.token = app_key, app_secret, access_token    def get_by_offer(self, offer_id: str):
        params = {
            'method': 'alibaba.icbu.company.get',
            'app_key': self.ak,
            'access_token': self.token,
            'format': 'json', 'v': '1.0',
            'timestamp': str(int(time.time() * 1000)),
            'offerId': offer_id,
            'fields': ('companyName,businessType,countryName,'
                       'province,city,address,contact,telephone,'
                       'mainProducts,employeeNum,factoryArea,'
                       'deepVerify,deepVerifyInfo,isoCert,'
                       'tradeCapacity,creditLevel,openTime')
        }
        params['sign'] = sign(params, self.sk)
        r = requests.post(self.url, data=params, timeout=10).json()
        if 'error_response' in r:
            raise RuntimeError(r['error_response']['msg'])
        return r['company_get_response']['company']# ----------- 调用 -----------cli = CompanyAPI('你的AppKey', '你的AppSecret', '你的AccessToken')info = cli.get_by_offer('64321098756')print(json.dumps(info, ensure_ascii=False, indent=2))

五、核心字段速查表(60 选 20)

表格
复制
字段类型示例值业务含义
companyNamestring深圳市某某科技有限公司工商注册名
businessTypestring生产企业枚举:生产企业/贸易企业/工贸一体/个体工商户
countryNamestring中国注册国家
province/citystring广东省/深圳市可用来做“产地”标签
addressstring宝安区福永街道桥头村…可地图打点
contactstring张经理公开联系人
telephonestring0755-2953****前台固话
mainProductslist["蓝牙耳机", "音箱"]关键词搜索权重高
employeeNumstring200-300人工厂规模粗筛
factoryAreaint5000单位:平方米
deepVerifybooltrue是否深度验厂
deepVerifyInfoobject{“verifyType”: “深度验厂”, “verifyUrl”: “https://…”}视频/报告链接
isoCertlist["ISO 9001", "BSCI"]体系证书
tradeCapacityobject{“exportPct”: 80, “mainMarkets”: [“北美”, “西欧”]}出口占比
creditLevelstringAAA诚信通等级
openTimestring2012-05-18开店时间,算“老店”

六、五大踩坑实录

  1. offerId 与 companyId 混用
    老版本只认 companyId,2025-12 起两者皆可;但若同时传,优先取 companyIdofferId 被忽略。
  2. deepVerify=true 但 deepVerifyInfo 为空
    说明“已下单验厂,但报告未回传”,隔 24h 再拉即可。
  3. address 带“*”号
    个人/个体户保护隐私,地址被脱敏,只能到“镇”级;如需完整地址,需用户授权“电子合同”接口。
  4. 字段缺失≠null
    1688 对未填写字段直接不返回,解析前务必 dict.get(key, default)
  5. 图片外链 30 天失效
    deepVerifyInfo.verifyUrl 是阿里云临时签名,落库请立刻下载转存 OSS。

七、生产级落库设计(MySQL 片段)

sql
复制
CREATE TABLE supplier_company (
  id bigint PRIMARY KEY AUTO_INCREMENT,
  company_id varchar(32) UNIQUE COMMENT '1688 companyId',
  company_name varchar(100) NOT NULL,
  business_type varchar(20),
  province varchar(20),
  city varchar(20),
  address varchar(255),
  employee_num varchar(20),
  factory_area int COMMENT '平方米',
  deep_verify tinyint DEFAULT 0,
  iso_cert json,
  trade_capacity json,
  credit_level varchar(10),
  open_time date,
  updated_at timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
  • iso_cert、tradeCapacity 直接存 JSON,方便后台渲染标签。
  • 建联合索引 (province, city, businessType) 用于“产地+类型”筛选。

八、小结

item_get_company 是 1688 开放生态里“唯一能把供应商家底一次搬空”的接口。
记住 3 句话:
  1. 先拿 offerId 换 companyId,再拉档案,可省 50% 流量。
  2. 深度验厂、ISO、工厂面积 3 个字段组合,即可在选品阶段秒筛“真实工厂”。
  3. 地址、电话、验厂报告都是 30 天临时链接,落库立刻转存,否则全链 403。
把上面的 CompanyAPI 类复制到项目,再配一张 supplier_company 表,10 分钟就能上线“供应商体检报告”自动化。祝各位调试顺利,永不踩坑!

如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。

相关文章

Java 爬虫获取 1688 item_search_shop API 数据的代码解析

在电商领域,1688 是国内领先的 B2B 电商平台,提供了丰富的商品数据和强大的 API 接口。通过 Java 爬虫技术,我们可以高效地获取 1688 店铺的所有商品信息。本文将详细介绍如何利用 J...

代码实战:1688商品详情API:获取数据的关键步骤与技巧

一、引言1688作为国内领先的B2B电商平台,其商品详情API接口为开发者提供了高效获取商品数据的途径。通过该接口,可以获取商品的基础信息、价格数据、库存查询、多媒体资源及商家信息等多维度数据。这对于...

Java实现1688拍立淘接口(item_search_img)完整技术指南

在B2B电商场景中,以图搜货已成为供应链选品、竞品监控、货源溯源的核心能力。1688的item_search_img接口(拍立淘)允许开发者通过上传图片,秒级匹配平台上的同款或相似商品。本文将详细介绍...

1688图搜接口深度解析:从视觉搜索到供应链智能匹配

一、技术定位与核心能力图搜接口的技术本质plain复制传统文本搜索:           ...

1688 拍立淘接口(item_search_img)技术全景解析

面向开发者:从原理、接入到代码落地,看这一篇就够了。一、背景与价值在 1688 的 B2B 采购场景里,文字关键词经常无法精准描述“样品”“爆品”或“竞品”。item_search_img(拍立淘)用...

1688包装信息API接口完全指南

一、接口体系概览1688(阿里巴巴中国站)的包装信息主要通过商品详情类API获取,而非独立接口。包装数据分散在以下字段中:表格接口类型核心接口包装相关字段数据覆盖度官方开放平台alibaba.prod...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。