news 2026/10/15 20:39:06

接入MIC(中国制造)接口的帮助

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
接入MIC(中国制造)接口的帮助

一、接入前准备(必须完成)

1. 注册与认证(账号与资质)

  1. 访问MIC 开放平台:https://open.made-in-china.com/
  2. 用企业账号注册 / 登录(个人账号权限受限,跨境 / 商品类接口多为企业专属)
  3. 完成企业实名认证:营业执照、法人信息、对公账户核验(1–3 个工作日)
  4. 开通API 服务权限:在控制台「API 服务」→「申请开通」,选择你需要的能力包(商品搜索、商品详情、类目、榜单等)

2. 创建应用,获取核心凭证

  1. 进入「应用管理」→「创建应用」
    • 应用名称:自定义(如 “MIC 商品数据工具”)
    • 应用类型:自用型 / 第三方应用(自用即可)
    • 回调 URL:OAuth 授权用,本地调试可填http://localhost
  2. 审核通过后,在应用详情页获取三大核心凭证(务必妥善保管,严禁泄露)
    • app_key/client_id:应用唯一标识
    • app_secret/client_secret:签名密钥
    • access_token:接口调用令牌(通过 OAuth 获取,有效期通常 24 小时)

3. 申请接口权限

  1. 进入「权限管理」→「申请 API 权限」
  2. 搜索并勾选你需要的接口(以商品 / 类目 / 榜单为例):
    • 商品类目:category.get(获取类目树)
    • 商品搜索 / 榜单:product.search、product.topList
    • 商品详情:product.get
  3. 提交审核,公开权限一般即时通过,高阶权限可能 1–2 个工作日。

二、核心技术流程:鉴权与签名(MIC 通用规则)

MIC 接口采用OAuth2.0 + MD5 签名双重校验,所有请求必须带合法签名与令牌。

1. 获取 access_token(授权流程)

(1)获取授权码 code

plaintext

GET https://open.made-in-china.com/oauth/authorize ?client_id=你的app_key &redirect_uri=你的回调URL &response_type=code &state=随机字符串(防CSRF)

用户授权后,平台会重定向到你的redirect_uri并带回code。

(2)用 code 换取 access_token

plaintext

POST https://open.made-in-china.com/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &client_id=你的app_key &client_secret=你的app_secret &code=上一步获取的code &redirect_uri=你的回调URL

返回示例(JSON):

json

{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_in": 86400, "refresh_token": "xxx...", "token_type": "bearer" }

2. 生成签名(MD5,必对)

签名规则(与 1688 类似,但参数拼接略有差异):

  1. 把所有非空请求参数(不含sign、不含文件)按参数名 ASCII 升序排列
  2. 按key1=value1&key2=value2&...拼接成字符串
  3. 首尾拼接app_secret:app_secret + 参数字符串 + app_secret
  4. 做MD5 加密,转大写,得到sign

示例(Python):

python

运行

import hashlib def generate_mic_sign(params, app_secret): # 1. 按key升序排序 sorted_items = sorted(params.items(), key=lambda x: x[0]) # 2. 拼接 key=value&key=value... param_str = "&".join([f"{k}={v}" for k, v in sorted_items if v is not None]) # 3. 首尾加secret sign_raw = app_secret + param_str + app_secret # 4. MD5大写 sign = hashlib.md5(sign_raw.encode("utf-8")).hexdigest().upper() return sign

三、接口调用实战(以 “获取商品类目 + 类目榜单” 为例)

1. 通用请求规范

  • 请求地址:https://api.made-in-china.com/rest/{version}/{interface}
  • 版本:v1或v2(以文档为准,目前主流v2)
  • 请求方式:GET(查询类)/POST(提交类)
  • 必传公共参数(所有接口都要):
参数名类型必填说明
app_keystring是应用 ID
timestamplong是13 位毫秒时间戳
noncestring是随机字符串(防重放,如 UUID)
signstring是MD5 签名(大写)
access_tokenstring是授权令牌
formatstring否默认 json

2. 接口 1:获取商品类目树(category.get)

请求示例(Python)

python

运行

import requests import time import uuid # 配置 APP_KEY = "你的app_key" APP_SECRET = "你的app_secret" ACCESS_TOKEN = "你的access_token" API_URL = "https://api.made-in-china.com/rest/v2/category.get" def get_mic_category_tree(parent_id=0): # 业务参数 params = { "app_key": APP_KEY, "timestamp": int(time.time() * 1000), "nonce": str(uuid.uuid4()), "access_token": ACCESS_TOKEN, "parent_id": parent_id, # 0=顶级类目 "format": "json" } # 生成签名 params["sign"] = generate_mic_sign(params, APP_SECRET) # 发送请求 resp = requests.get(API_URL, params=params, timeout=10) return resp.json() # 调用:获取顶级类目 if __name__ == "__main__": result = get_mic_category_tree(parent_id=0) print(result)
响应结构(关键字段)

json

{ "code": 200, "message": "success", "data": { "categories": [ { "category_id": "1001", "name": "Apparel", "level": 1, "is_leaf": false, "children": [...] } ] } }

3. 接口 2:按类目获取商品榜单(product.topList)

业务参数(核心)
  • category_id:类目 ID(从上一步获取)
  • sort_type:排序类型(sales = 销量,price = 价格,newest = 新品)
  • page_no/page_size:分页
  • country:目标市场(可选,如 US、DE)
调用示例(关键代码)

python

运行

API_TOP_URL = "https://api.made-in-china.com/rest/v2/product.topList" def get_category_top_products(category_id, sort_type="sales", page_no=1, page_size=20): params = { "app_key": APP_KEY, "timestamp": int(time.time() * 1000), "nonce": str(uuid.uuid4()), "access_token": ACCESS_TOKEN, "category_id": category_id, "sort_type": sort_type, "page_no": page_no, "page_size": page_size, "format": "json" } params["sign"] = generate_mic_sign(params, APP_SECRET) resp = requests.get(API_TOP_URL, params=params, timeout=10) return resp.json()

四、限流、异常与最佳实践

1. 限流规则(必须遵守)

  • 国内 IP:QPS ≤ 10
  • 海外 IP:QPS ≤ 5
  • 单日调用限额:基础权限一般 5000–10000 次,企业版可提升
  • 触发限流返回429 Too Many Requests,需做退避重试(1s→3s→5s,最多 3 次)

2. 常见错误码与处理

错误码含义处理方案
400参数错误 / 签名错误核对参数顺序、签名逻辑、时间戳
401token 过期 / 无效刷新 access_token 或重新授权
403权限不足检查接口权限是否开通
404类目 / 商品不存在核对 ID 有效性
429限流本地限流 + 退避重试
500服务异常缓存兜底,重试 1 次,失败告警

3. 生产优化建议

  1. 缓存类目数据:类目更新慢,本地缓存 24 小时,减少调用
  2. 令牌池 / 自动刷新:提前刷新access_token,避免过期中断
  3. 字段过滤:用fields参数只返回需要的字段,提升性能
  4. 日志与监控:记录请求耗时、成功率、错误码,便于排查

五、与 1688 接口的关键差异(避坑)

  1. 授权体系:MIC 强依赖access_token,1688 部分公开接口可仅用签名
  2. 参数拼接:MIC 用key=value&分隔,1688 是直接keyvalue无分隔符
  3. 限流粒度:MIC 按 IP 地域区分 QPS,1688 按应用维度
  4. 类目结构:MIC 类目 ID 为字符串,层级用level显式标注,更适合跨境场景

六、下一步行动

  1. 先在 MIC 开放平台完成企业认证 + 应用创建 + 权限申请
  2. 用 Postman 先调试category.get,拿到类目 ID
  3. 再调用product.topList,验证类目榜单数据
  4. 最后集成到你的系统,加上缓存、限流、异常兜底
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 20:25:16

Linux 命令:diff3

概述 diff3 命令是三文件差异对比工具,是 diff 命令的扩展,核心作用是同时对比三个文本文件的内容差异,并精准标识出仅在单个文件出现、在两个文件共有、在三个文件都存在的行,还能输出合并冲突标记,是多人协作开发、…

作者头像 李华
网站建设 2026/10/12 13:23:43

基于springboot家政服务上门预约系统

前言 在当今信息化技术迅猛发展的时代背景下,基于Web前端技术搭建的信息服务平台凭借其便捷性与高效性,已赢得社会各界的广泛认可与大力支持。鉴于此,本文聚焦于社区家政服务领域中客户满意度与忠诚度偏低的现状,创新性地采用Vue与…

作者头像 李华
网站建设 2026/10/15 11:41:52

废品回收小程序开发玩法分析(附技术落地要点)

随着“双碳”政策深化与全民环保意识提升,传统废品回收“流程繁琐、激励不足、管控低效”的痛点凸显,废品回收小程序的核心竞争力已从“便捷预约”转向“玩法创新技术赋能”。不同于娱乐类小程序的趣味导向,废品回收小程序玩法设计需立足回收…

作者头像 李华
网站建设 2026/10/12 21:12:43

MATLAB代码《基于多智能体系统一致性算法的电力系统分布式经济调度》 软件环境:MATLAB 内容

MATLAB代码《基于多智能体系统一致性算法的电力系统分布式经济调度》 软件环境:MATLAB 内容:集中式优化方法难以应对未来电网柔性负荷广泛渗透以及电力元件“即插即用”的技术要求。 区别于集中式经济调度,提出一种电力系统分布式经济调度策略。 应用多智能体系统中…

作者头像 李华
网站建设 2026/10/15 14:14:08

python+vue开发的流浪猫救助系统 流浪宠物领养系统-pycharm DJANGO FLASK

文章目录技术栈选择系统功能模块技术实现要点扩展性设计大数据系统开发流程主要运用技术介绍源码文档获取定制开发/同行可拿货,招校园代理 :文章底部获取博主联系方式!技术栈选择 Python作为后端开发语言,搭配Django或Flask框架提供API接口。…

作者头像 李华