Files
makemd/docs/api/eBay_API_Documentation.md
wurenzhi 22308fe042 refactor: 重构项目结构并优化代码
- 删除无用的文件和错误日志
- 创建统一的 imports 模块集中管理依赖
- 重构组件使用新的 imports 方式
- 修复文档路径大小写问题
- 优化类型定义和接口导出
- 更新依赖版本
- 改进错误处理和API配置
- 统一组件导出方式
2026-03-27 16:56:06 +08:00

10 KiB
Raw Blame History

eBay API 文档

1. 概述

eBay API 是eBay为开发者提供的开放API平台旨在帮助开发者为eBay卖家提供各种电子商务解决方案。通过eBay API开发者可以创建定制化的软件服务满足卖家在订单处理、产品管理、物流管理等方面的需求。

eBay是全球领先的电子商务平台以其拍卖和固定价格销售模式而闻名连接全球买家和卖家。

2. API分类

2.1 认证API

接口名称 功能描述 适用场景
OAuth API 处理OAuth 2.0授权流程 API认证、授权
Token API 获取和管理访问令牌 保持API访问权限

2.2 产品管理API

接口名称 功能描述 适用场景
Trading API 管理产品 listings 商品上架、信息更新
Finding API 搜索和浏览产品 产品查询、市场分析
Shopping API 获取产品信息 产品详情、价格监控

2.3 订单管理API

接口名称 功能描述 适用场景
Trading API 管理订单信息 订单处理、订单同步
Fulfillment API 管理订单履行 订单发货、物流管理

2.4 库存管理API

接口名称 功能描述 适用场景
Inventory API 管理库存信息 库存同步、库存管理
Trading API 管理库存状态 库存监控、库存更新

2.5 价格管理API

接口名称 功能描述 适用场景
Trading API 管理产品价格 价格管理、促销活动
Finding API 获取价格信息 价格监控、市场分析

2.6 店铺管理API

接口名称 功能描述 适用场景
Trading API 管理店铺设置 店铺管理、品牌建设
Merchandising API 管理店铺促销 营销活动、销售提升

2.7 报告API

接口名称 功能描述 适用场景
Analytics API 获取销售和业绩数据 销售分析、业绩评估
Trading API 获取订单和销售报告 订单分析、财务报表

3. API认证与授权

3.1 开发者注册流程

注册地址eBay Developer Program

注册资格

  • 企业开发者:需要提供企业营业执照、税务登记证等
  • 个人开发者:需要提供个人身份证明
  • 必须具备电子商务相关业务经验

所需材料

  1. 企业营业执照(企业开发者)
  2. 税务登记证(企业开发者)
  3. 法人身份证明
  4. 联系方式(邮箱、电话)
  5. 公司银行账户信息
  6. 业务计划书(描述应用程序的功能和用途)

注册步骤

  1. 访问eBay Developer Program注册地址
  2. 点击"Join Now"按钮,创建开发者账号
  3. 填写注册信息,验证邮箱
  4. 登录开发者控制台
  5. 创建应用获取App ID、Dev ID和Cert ID
  6. 设置应用回调地址
  7. 配置应用权限范围
  8. 获取测试环境访问权限

注意事项

  • 确保提供真实有效的信息
  • 保护好App ID、Dev ID和Cert ID避免泄露
  • 遵守eBay的使用条款和限制
  • 定期更新API密钥以保证安全
  • 如遇到注册问题可联系eBay开发者支持

3.2 认证流程

  1. 注册并登录eBay Developer Program
  2. 创建应用并获取API密钥App ID、Dev ID和Cert ID
  3. 实现OAuth 2.0授权流程获取访问令牌
  4. 使用访问令牌调用API接口

3.2 授权方式

  • OAuth 2.0授权基于标准的OAuth 2.0协议
  • 传统认证使用App ID、Dev ID和Cert ID进行认证
  • 访问令牌有效期为2小时
  • 刷新令牌:用于获取新的访问令牌

4. API调用示例

4.1 获取访问令牌示例

import requests

def get_access_token(client_id, client_secret, refresh_token):
    url = "https://api.ebay.com/identity/v1/oauth2/token"
    
    payload = {
        "grant_type": "refresh_token",
        "refresh_token": refresh_token,
        "scope": "https://api.ebay.com/oauth/api_scope"
    }
    
    headers = {
        "Content-Type": "application/x-www-form-urlencoded",
        "Authorization": f"Basic {base64.b64encode(f'{client_id}:{client_secret}'.encode()).decode()}"
    }
    
    response = requests.post(url, data=payload, headers=headers)
    return response.json()

4.2 产品上传示例

import requests
import xml.etree.ElementTree as ET

def add_item(access_token, item_data):
    url = "https://api.ebay.com/ws/api.dll"
    
    # 构建XML请求
    root = ET.Element("AddItemRequest", xmlns="urn:ebay:apis:eBLBaseComponents")
    ET.SubElement(root, "RequesterCredentials").text = "..."
    # 添加商品数据
    # ...
    
    headers = {
        "Content-Type": "text/xml",
        "X-EBAY-API-COMPATIBILITY-LEVEL": "1099",
        "X-EBAY-API-CALL-NAME": "AddItem",
        "X-EBAY-API-SITEID": "0",
        "Authorization": f"Bearer {access_token}"
    }
    
    response = requests.post(url, data=ET.tostring(root), headers=headers)
    return response.text

4.3 订单列表查询示例

import requests

def get_orders(access_token, create_time_from, create_time_to):
    url = "https://api.ebay.com/sell/fulfillment/v1/order"
    
    params = {
        "filter": f"orderfulfillmentstatus:{NOT_STARTED},createddate:[{create_time_from}..{create_time_to}]",
        "limit": "100"
    }
    
    headers = {
        "Authorization": f"Bearer {access_token}",
        "Content-Type": "application/json"
    }
    
    response = requests.get(url, params=params, headers=headers)
    return response.json()

5. API返回值解析

5.1 访问令牌API返回值

字段名 类型 描述
access_token String 访问令牌
token_type String 令牌类型,通常为"Bearer"
expires_in Number 令牌过期时间(秒)
refresh_token String 刷新令牌
scope String 授权范围

5.2 订单API返回值

字段名 类型 描述
orderId String 订单ID
creationDate String 订单创建日期
lastModifiedDate String 订单最后修改日期
orderFulfillmentStatus String 订单履行状态
total Object 订单总金额
buyer Object 买家信息
shippingAddress Object 配送地址
lineItems Array 订单商品列表

5.3 产品API返回值

字段名 类型 描述
itemId String 商品ID
title String 商品标题
description String 商品描述
price Object 价格信息
quantity Number 商品数量
listingStatus String listings状态
categoryId String 商品分类ID
images Array 商品图片URL列表

5.4 错误码定义

错误码 错误消息 可能原因 解决方法
400 Bad Request 请求参数错误 检查请求参数是否符合要求
401 Unauthorized 认证失败 检查API密钥和访问令牌是否正确
403 Forbidden 权限不足 检查应用是否有相应的权限
404 Not Found 资源不存在 检查请求的资源ID是否正确
429 Too Many Requests 请求频率过高 减少API调用频率实现限流机制
500 Internal Server Error 服务器内部错误 稍后重试,如持续失败联系平台支持
1001 Invalid App ID App ID无效 检查App ID是否正确
1002 Invalid Dev ID Dev ID无效 检查Dev ID是否正确
1003 Invalid Cert ID Cert ID无效 检查Cert ID是否正确
1004 Token Expired 令牌过期 重新获取访问令牌
1005 Invalid Item ID 商品ID无效 检查商品ID是否正确

6. 最佳实践

6.1 API调用频率限制

  • 遵守eBay的API调用频率限制
  • 使用批量操作减少API请求次数
  • 实现指数退避策略处理限流

6.2 错误处理

  • 正确处理API返回的错误码
  • 实现重试机制处理临时错误
  • 监控API调用成功率

6.3 安全措施

  • 保护API密钥和访问令牌
  • 使用HTTPS协议进行API调用
  • 定期更新访问令牌
  • 限制API密钥的权限范围

6.4 安全最佳实践

  • API密钥保护

    • 不要在代码中硬编码App ID、Dev ID和Cert ID
    • 使用环境变量或安全的配置管理系统存储API密钥
    • 定期更换API密钥
    • 限制API密钥的使用范围
  • 访问令牌管理

    • 妥善存储访问令牌和刷新令牌
    • 设置合理的令牌过期时间
    • 实现令牌自动刷新机制
    • 避免在客户端存储敏感令牌
  • 请求安全

    • 始终使用HTTPS协议进行API调用
    • 正确生成和验证请求签名
    • 避免在URL中传递敏感信息
    • 实现请求超时和重试机制
  • 权限控制

    • 仅申请必要的API权限
    • 定期审查应用的权限设置
    • 对不同环境使用不同的API密钥
  • 数据安全

    • 加密存储用户数据
    • 避免传输敏感信息
    • 实现数据访问控制
    • 定期备份重要数据

6.5 性能优化

  • 合理使用缓存减少API调用
  • 批量处理提高效率
  • 优化请求参数减少响应数据大小
  • 使用适当的API版本

7. 接口使用场景分析

7.1 电商ERP系统集成

  • 产品管理:批量上传、更新产品信息
  • 订单处理:自动同步订单、批量发货
  • 库存管理:实时同步库存信息
  • 价格管理:动态调整价格
  • 数据分析:获取销售数据进行分析

7.2 库存管理系统

  • 库存同步:实时更新库存信息
  • 库存监控:监控库存水平,避免缺货
  • 库存预测:基于销售数据预测库存需求

7.3 价格优化工具

  • 价格监控:监控竞争对手价格
  • 动态定价:根据市场情况自动调整价格
  • 促销管理:创建和管理促销活动

8. 总结

eBay API为开发者提供了丰富的接口涵盖了认证、产品管理、订单管理、库存管理、价格管理和店铺管理等各个方面。通过合理使用这些API开发者可以创建各种工具和服务帮助eBay卖家提高运营效率、提升销售业绩。

在使用eBay API时开发者需要注意遵守平台的使用规则合理控制API调用频率确保数据安全并不断优化API调用策略以获得最佳的使用效果。

9. 参考资源