虾皮 item_get 接口对接全攻略:从入门到精通

简介: 虾皮item_get接口通过商品ID获取商品详情,支持跨境分析、比价监控等场景。本文详解接口对接流程、认证机制、Python代码实现及签名生成,并涵盖多区域适配、错误处理与最佳实践,助力开发者高效稳定调用API,掌握全流程开发技巧。(238字)

虾皮(Shopee)开放平台的item_get接口是根据商品 ID 获取详情的核心工具,适用于跨境电商分析、多平台比价、商品监控等场景。本文将全面讲解该接口的对接流程、认证机制、代码实现及最佳实践,帮助开发者系统掌握从入门到精通的全流程。
一、接口基础认知
核心功能item_get接口通过商品 ID 获取虾皮平台的商品详细信息,涵盖:
基本信息:商品 ID、标题、描述、主图及图片列表
价格信息:原价、售价、折扣、货币单位(支持多币种)
库存信息:总库存、规格库存、预售状态
交易信息:销量、评分、评论数
规格信息:颜色、尺寸等多规格组合及对应价格 / 库存
店铺信息:店铺 ID、店铺名称、卖家评分
接口端点虾皮接口地址需区分区域站点,格式为:
请求方式:HTTP GET
数据格式:响应为 JSON 格式
认证方式:采用partner_id+access_token+ 签名认证
二、对接前置准备
开发者账号注册访问虾皮开放平台注册账号,完成企业认证(个人账号权限有限)。
创建应用与获取密钥
在开放平台控制台创建应用,选择目标市场(如东南亚、台湾)
应用创建后,获取partner_id和partner_key(密钥需严格保密)
完成店铺授权,获取access_token(每个店铺的access_token独立)
权限申请
item_get接口属于基础商品接口,默认开放调用权限
如需获取敏感信息(如卖家联系方式),需单独申请权限
环境准备
开发语言:
测试工具:
依赖库:
三、接口调用流程
参数组装接口参数分为「公共参数」和「业务参数」:
公共参数:partner_id、access_token、timestamp(秒级时间戳)、sign(签名)
业务参数:item_id(商品 ID,必填)、shop_id(店铺 ID,必填)
示例参数结构:
plaintext
{
"partner_id": 123456,
"access_token": "your_access_token",
"timestamp": 1620000000,
"sign": "签名值",
"item_id": 123456789,
"shop_id": 9876543
}
签名生成虾皮签名生成步骤:
收集所有参数(除sign外),按参数名 ASCII 码升序排序
拼接为key=value格式的字符串(如access_token=xxx&item_id=123)
在拼接字符串前添加partner_key
对完整字符串进行 SHA256 加密,结果即为sign
发送请求将参数以 URL 查询字符串形式拼接,发送 GET 请求到对应区域的接口地址。
响应处理成功响应包含item字段(商品详情),错误响应包含error字段(错误码和描述)。
四、代码实现示例(Python)
以下是调用虾皮item_get接口的完整代码,包含签名生成、多区域支持和错误处理:
import requests
import hashlib
import time
import json

class ShopeeItemApi:
def init(self, partner_id, partner_key, access_token, region="sg"):
self.partner_id = partner_id
self.partner_key = partner_key
self.access_token = access_token
self.region = region # 区域代码:sg/my/th/id/tw等
self.base_url = f"https://{region}.api.shopee.com/api/v2/item/get"

def generate_sign(self, params):
    """生成签名"""
    # 1. 按参数名ASCII升序排序
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    # 2. 拼接为key=value格式
    sign_str = "".join([f"{k}={v}" for k, v in sorted_params])
    # 3. 前缀添加partner_key
    sign_str = self.partner_key + sign_str
    # 4. SHA256加密
    sign = hashlib.sha256(sign_str.encode()).hexdigest()
    return sign

def item_get(self, item_id, shop_id):
    """
    获取商品详情
    :param item_id: 商品ID
    :param shop_id: 店铺ID
    :return: 商品详情数据
    """
    # 1. 组装基础参数
    params = {
        "partner_id": self.partner_id,
        "access_token": self.access_token,
        "timestamp": int(time.time()),  # 秒级时间戳
        "item_id": item_id,
        "shop_id": shop_id
    }

    # 2. 生成签名
    params["sign"] = self.generate_sign(params)

    try:
        # 3. 发送GET请求
        response = requests.get(
            url=self.base_url,
            params=params,
            timeout=15
        )
        response.raise_for_status()
        result = response.json()

        # 4. 处理响应
        if "error" in result and result["error"] != 0:
            return {
                "success": False,
                "error_code": result["error"],
                "error_msg": result.get("message", "未知错误")
            }

        return {
            "success": True,
            "data": result.get("item", {})
        }

    except Exception as e:
        return {
            "success": False,
            "error_msg": f"请求异常: {str(e)}"
        }

使用示例
if name == "main":

# 替换为实际参数
PARTNER_ID = 123456  # 开发者ID
PARTNER_KEY = "your_partner_key"  # 开发者密钥
ACCESS_TOKEN = "your_access_token"  # 店铺授权令牌
REGION = "sg"  # 目标区域

# 初始化API客户端
api = ShopeeItemApi(PARTNER_ID, PARTNER_KEY, ACCESS_TOKEN, REGION)

# 调用接口,获取商品详情(需替换实际的item_id和shop_id)
result = api.item_get(
    item_id=123456789,
    shop_id=9876543
)

if result["success"]:
    item = result["data"]
    print(f"商品ID: {item.get('item_id')}")
    print(f"商品标题: {item.get('name')}")
    print(f"售价: {item.get('price')/100000} {item.get('currency')}")  # 价格单位为1e-5
    print(f"库存: {item.get('stock')}")
    print(f"销量: {item.get('historical_sold')}")
    print(f"主图地址: {item.get('images')[0] if item.get('images') else '无'}")
else:
    print(f"获取失败: {result['error_msg']} (错误码: {result.get('error_code')})")

五、参数与返回字段详解
核心参数说明
item_id:商品唯一标识,可从虾皮商品详情页 URL 提取(如https://shopee.sg/product/123456789/9876543中,item_id=123456789)
shop_id:店铺 ID,与商品 ID 配套使用(上例中shop_id=9876543)
region:区域代码,决定接口调用的目标站点
价格字段特殊说明虾皮价格字段以1e-5为单位(如返回1500000表示 15.00 货币单位),需进行转换:
python
运行
price = item.get('price') / 100000 # 转换为实际价格
多规格商品处理多规格商品的详细信息在variations字段中:
json
"variations": [
{
"variation_id": 123,
"name": "红色-XL",
"price": 1500000, # 15.00货币单位
"stock": 100
}
]
六、错误处理与调试
常见错误码解析
1001:签名错误 → 检查签名生成逻辑、参数排序
1002:partner_id无效 → 确认应用是否已激活
1003:access_token无效 → 重新获取店铺授权
2001:商品不存在 → 检查item_id和shop_id是否匹配
4001:请求频率超限 → 虾皮默认 QPS 限制为 100,需降低频率
调试技巧
使用虾皮开放平台的API 测试工具验证请求
检查timestamp是否为当前时间(误差需≤5 分钟)
确认区域代码与店铺所在区域一致(如台湾店铺需用tw)
七、最佳实践与注意事项
多区域适配
针对不同区域站点(如新加坡、马来西亚)创建不同的 API 客户端实例
处理多币种转换(可结合汇率接口实时转换为本地货币)
性能优化
实现本地缓存(建议缓存时间 10-30 分钟)
批量获取商品详情时,采用并发控制(如线程池)并遵守 QPS 限制
合规使用
遵守《虾皮开放平台服务协议》,不得用于爬虫或数据倒卖
展示商品数据时需明确标注来源为虾皮
跨境应用需遵守目标市场的电商法规
稳定性保障
实现超时重试机制(最多 3 次,使用指数退避策略)
监控access_token有效期(通常为 180 天),及时刷新
对返回数据进行合法性校验(如价格、库存是否为合理值)
通过本文的指南,开发者可以系统掌握虾皮item_get接口的对接方法和跨境场景适配技巧。在实际应用中,应重点关注多区域差异和签名安全,设计合理的调用策略,平衡数据实时性与接口性能,构建稳定高效的商品信息获取功能

相关文章
|
3月前
|
JSON API 数据安全/隐私保护
深度分析虾皮城API接口,用Python脚本实现
虾皮开放平台提供丰富的API接口,支持商品管理、订单处理及促销信息查询等功能。本文详解API认证机制与调用方法,基于Python实现商品价格及到手价获取方案,适用于电商数据分析与运营。
|
1月前
|
JSON 数据安全/隐私保护 开发者
1688 item_search 接口对接全攻略:从入门到精通
本文详解1688开放平台item_search接口对接全流程,涵盖接口功能、参数说明、OAuth2.0授权、签名生成、Python代码实现及优化技巧,助力开发者高效完成B2B商品搜索集成,适用于采购系统、选品分析等场景。
|
2月前
|
JSON 监控 API
Shopee:对接海外仓API实现本地发货,优化物流时效
Shopee卖家可通过对接海外仓API实现本地发货,将物流时效从10-15天缩短至3-5天,显著提升买家体验与店铺转化率。本文详解API对接原理、步骤及代码示例,助力优化跨境物流效率。
141 1
|
Java Linux Maven
解决jdk17启动seata报错的问题
解决jdk17启动seata报错的问题
3852 1
解决jdk17启动seata报错的问题
|
5月前
|
JSON 监控 API
深入研究:shopee商品详情API接口Python攻略
Shopee 商品详情 API 是用于获取 Shopee 平台商品详细信息的接口,支持开发者提取商品标题、价格、库存、描述和图片等多维度数据。该接口适用于电商数据分析、比价工具开发及商品监控等场景。请求方式为 GET,需提供 itemid(商品 ID)和 shopid(店铺 ID),返回格式为 JSON。部分功能可能需要 API 密钥或访问令牌认证。以马来西亚站点为例,URL 为 shopee.com.myapi/v4/item/get,不同国家站点域名可能有所不同。
|
3月前
|
自然语言处理 安全 API
深度分析洋码头API接口,用Python脚本实现
洋码头是国内知名跨境电商平台,专注于海外商品直购。本文基于其API的通用设计逻辑,深入解析了认证机制、签名规则及核心接口功能,并提供了Python调用示例,适用于商品与订单管理场景。
|
1月前
|
供应链 JavaScript Java
基于springboot的海产品交易系统
本文探讨海产品交易系统的研究背景、意义及现状,分析其在推动行业数字化转型、提升消费者体验与市场透明度方面的重要价值,并结合MySQL、SpringBoot、Vue和Java等技术实现高效、安全的交易平台。
|
1月前
|
关系型数据库 MySQL Linux
如何使用阿里云的主机搭建网站?
在数字化时代,用阿里云主机搭建网站因稳定便捷受青睐,零基础用户按步骤也能完成。先准备阿里云主机,选配置、设系统、配安全组;再搭运行环境,依系统选对应方式;接着部署 PageAdmin CMS;然后借其后台搭网站;最后绑域名上线,后续定期维护即可拥有实用网站。
|
1月前
|
缓存 API 开发者
虾皮 item_search 接口对接全攻略:从入门到精通
本文详解虾皮(Shopee)开放平台item_search接口的对接全流程,涵盖接口功能、参数配置、签名生成、Python代码实现及最佳实践,适用于跨境电商选品与市场分析,助开发者快速掌握商品搜索接口应用。
|
1月前
|
JSON 自然语言处理 数据格式
速卖通 item_get 接口对接全攻略:从入门到精通
速卖通item_get接口是获取商品详情的核心工具,支持跨境电商分析、比价选品等场景。本文详解接口认证、参数组装、签名生成、代码实现及错误处理,提供Python完整示例,涵盖令牌管理、多规格解析与最佳实践,助力开发者高效对接。