# 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](https://developer.ebay.com/) **注册资格**: - 企业开发者:需要提供企业营业执照、税务登记证等 - 个人开发者:需要提供个人身份证明 - 必须具备电子商务相关业务经验 **所需材料**: 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 获取访问令牌示例 ```python 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 产品上传示例 ```python 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 订单列表查询示例 ```python 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. 参考资源 - [eBay Developer Program](https://developer.ebay.com/) - [eBay API Documentation](https://developer.ebay.com/docs) - [eBay Seller Hub](https://www.ebay.com/sellerhub)