### **概述**
本篇文章将介绍截止于2024年7月,亚马逊电商 Selling Partner API(简称“SP-API”)的新对接流程。对于2023年10月2日之后注册 SP-API 的开发人员,无需使用 Amazon IAM 进行签名验证。要使用 SP-API,首先需要注册成为销售伙伴 API开发者,然后才能[**注册您的销售伙伴 API 应用程序**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/registering-your-application?trk=cndc-detail)。
### **亚马逊 SP-API 介绍**
以前亚马逊电商平台为卖家提供 Marketplace Web Service API(MWS API)以程序化的方式管理营运店铺,为了进一步提高数据安全性和易用性,2020年10月亚马逊电商正式推出一套全新的 Selling Partner API即SP-API。SP-API 是一种基于 REST 的 API,可帮助亚马逊销售合作伙伴以编程方式访问他们在订单、发货、付款等方面的亚马逊数据。**使用 SP-API 的应用程序可以提高销售效率,减少人工需求,并改善对客户的响应时间,从而帮助销售合作伙伴发展他们的业务。**
#### **1. 主要功能**
使用销售合作伙伴 API,您可以:
* 设置 OAuth 授权工作流,销售合作伙伴可以从销售合作伙伴应用商店详情页或您自己的网站发起。
* 生成一个 SDK,可以帮助您进行 LWA Token 交换和身份验证。
* 通过调用沙箱环境来测试您的应用程序。
#### **2. 全球应用程序**
您只需在选择的区域和市场注册一次开发者,即可创建一个 SP-API 应用程序,供任何区域或市场的销售合作伙伴授权。
#### **3. 合规政策**
使用 SP-API 需要满足以下政策,请查看可接受使用政策(AUP)、数据保护政策(DPP)和亚马逊开店服务 API 开发者协议要求。
### **发布新的亚马逊 SP-API 应用程序**
一个完整的 [**Amazon SPCN**](https://sellercentral.amazon.com/partnernetwork?trk=cndc-detail) (Seller Central Partner Network)的应用发布流程如下。

#### **了解 SP-API 开发者类型**
使用 SP-API,您必须先注册为销售伙伴 API 开发者,然后才能注册您的销售伙伴 API 应用程序。在注册 SP-API 开发者前, 您需要先了解开发者类型,以注册适合您场景的开发者类型。
注册为不同开发者类型的过程略有不同,具体取决于您计划创建的应用程序的类型。
* [**私人卖家应用程序**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/register-as-a-private-developer?trk=cndc-detail):仅适用于您组织且经过自我授权的卖家应用程序。- 私人开发者
* [**私人供应商应用程序**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/register-as-a-private-vendor?trk=cndc-detail):仅适用于贵组织且经过自我授权的供应商应用程序。- 私人开发者
* [**公共卖方和供应商应用程序**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/register-as-a-public-developer?trk=cndc-detail):公开可用且由卖家或供应商使用OAuth授权的应用程序。按照[**亚马逊开店服务 API 开发者协议**](https://sellercentral.amazon.com/mws/static/agreement?trk=cndc-detail),公共开发者必须在亚马逊销售伙伴应用商店中发布其应用程序。- 公共开发者
#### **登录卖家中心/供应商中心/公共开发者中心**
**登录私人卖家中心。**
1. 登录卖家平台。有关区域URL,请参阅[**卖家平台 URL**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/seller-central-urls?trk=cndc-detail)。
2. 打开菜单,选择“Partner Network”,然后选择“Develop Apps”。

**注意:只有专业卖家账户才能注册开发或集成 SP-API**。个人账户不符合资格。您可以随时将账户升级为专业计划。您可以在账户信息的“您的服务”下查看您的销售计划类型和市场信息。
**登录私人供应商中心。**
1. 前往您所在商城的 Vendor Central。有关各商城的URL列表,请参阅 Vendor Central URL。
2. 使用您希望应用程序访问的供应商组的 Vendor Central 账户凭证登录。有关供应商组的详细信息,请参阅关于供应商组。
3. 从“集成”菜单中,选择 “API 集成”。

**登录公共开发者中心。**
1. 登录开发者中心平台。
2. 创建亚马逊账户,并登录开发者中心。
#### **注册成为开发者**
1. 选择前往“开发者资料”,填写开发者注册表。

2. 在“联系信息”下填写完整的开发者信息。
3. 在“数据访问”中, 选择注册的开发者类型。

详情请阅读上文(了解SP-API开发者类型 ),确定注册的开发者类型。
4. 在“安全控制”中,按照使用情况填写,并详述您的信息使用情况。
5. 在“角色”中, 勾选适用于您的应用程序的角色。
角色或职权是销售伙伴API用于确定开发者或应用程序是否有权进行操作或访问资源的一种机制。如果是开发者,您必须请求特定职权并获取相应资格,否则您将无法进行或访问该职权下分组的操作和资源。有关角色定义的更多信息,请参阅[这里](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/roles-in-the-selling-partner-api?trk=cndc-detail)。

“个人身份信息”(PII)是指可单独使用或与其他信息一起使用的信息,用于识别、联系、在语境中识别亚马逊买家或授权用户或者确定其位置。它包括但不限于买家或授权用户的姓名、地址、电子邮件地址、电话号码、礼品信息内容、调查回复、付款详情、购买信息、Cookie、数字指纹(例如浏览器、使用者设备)、IP 地址、地理位置、九位数邮政编码或互联网连接的设备商品编码。
“受限”角色意味着该角色需要处理敏感信息,可能包括个人身份信息(PII)。您需要提供关于数据使用和安全控制措施的更多信息。
6. 在“使用案例”中,详述您的差异化使用场景,便于后台对您应用以及权限审核。

7. 确认您已阅读并同意亚马逊开店服务 API 开发者协议、[**可接受使用政策**](https://sellercentral.amazon.com/mws/static/policy?documentType=AUP&locale=en_US?trk=cndc-detail)和[**数据保护政策**](https://sellercentral.amazon.com/mws/static/policy?documentType=DPP?trk=cndc-detail)。提交等待后台, 等待完成审核。
8. 在开发者中心的横幅中,查看开发者注册申请状态。

等待后续步骤。案例更新将发送到存档的管理员电子邮件地址。如果有工作人员与您联系并确认更多信息,请您在五天内回复,以防案例关闭。
#### **注册应用程序**
1. 在开发者中心,点击“+添加新的 App 客户端”。

2. 填写“应用名称”,并选择“API 类型”后,选择应用程序类型。
- 沙盒:可供您在不影响生产数据、不触发真实事件的前提下测试应用程序。
- 生产:生产应用程序的创建需要开发者资格的批准。

3. 查看应用程序信息和凭证
此时将显示您的 LWA 客户端标识符和该应用程序的客户端密钥。您将需要这些证书来请求 LWA 访 Token。有关更多信息,请参阅申请 “用亚马逊账户登录” 访问Token(创建生产应用程序能正常获取数据的前提条件是需要确保开发者申请获得批准)。
#### **授权 SP-API 应用程序**
亚马逊销售合作伙伴 API 的授权模型基于亚马逊的 OAuth 2.0 实现 [**Login with Amazon**](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html?trk=cndc-detail)。在此模型中,您的应用程序通过与亚马逊显示的页面以及您的网站进行交互而获得授权。
Web 浏览器充当用户代理,在每个销售合作伙伴操作中在您的网站和亚马逊之间传递参数。要实现 OAuth 授权,您必须配置您的网站以:
(1)接受和处理亚马逊传递给它的参数;
(2)重定向 Web 浏览器并将参数传递给亚马逊。
**授权流程:**
**面向卖家的公共应用程序**:公开提供并由卖家授权的应用程序。可以使用以下方法对这些应用程序进行授权:
* [**销售伙伴应用商店授权工作流程**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/selling-partner-appstore-authorization-workflow?trk=cndc-detail)从卖家伙伴应用商店详情页面启动的 OAuth 授权工作流程。
* [**网站授权工作流程**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/website-authorization-workflow?trk=cndc-detail)从您自己网站启动的 OAuth 授权工作流程。
**面向供应商的公共应用程序**:公开可用并由供应商授权的应用程序。可以使用以下方法对这些应用程序进行授权:
* [**网站授权工作流程**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/website-authorization-workflow?trk=cndc-detail)从您自己网站启动的 OAuth 授权工作流程。
**面向卖家或供应商的私人应用程序**:仅适用于贵组织的应用程序。这些可以是卖家或供应商应用程序。可以使用以下方法对这些应用程序进行授权:
* [**自我授权**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/self-authorization?trk=cndc-detail)。
详情请参阅授权 SP-API 应用程序。
**授权限制:**
在 SP-API 中,除了 [**Grantless**](https://developer-docs.amazon.com/sp-api/docs/grantless-operations?trk=cndc-detail) 操作,其余的操作均需要显示获得 Authorization 授权完成 API Call。
* 目前 Private Developer 的非公开应用可以通过自授权方式来完成调用,但是有10个自授权数量的限制。如果需要超过10个授权,则需要将应用转为 Public Developer Application 。
* Public Developer Application的授权需遵循 OAuth Workflow,目前有两种方式。分别为 [**SCPN**](https://sellercentral.amazon.com/partnernetwork?trk=cndc-detail) 授权,以及第三方登录页授权。如果您的应用没有在**SCPN** 进行刊登的情况下,则有25个 OAuth 授权的限制,直至您将您的应用在 **SCPN** 完成刊登。您可以通过修改您的 [**Developer Profile**](https://sellercentral.amazon.com/developer/register?trk=cndc-detail) 来改变您的开发者类别。
#### **调用 SP-API**
**测试 SP-API 端点:**
销售合作伙伴 API(SP-API)提供了沙箱环境,您可以在其中测试 SP-API 端点而不会影响生产数据。您可以将调用指向 SP-API 沙箱端点,发出静态请求以获取模拟响应。通过使用沙箱, 您可以练习发出调用所需的步骤,了解请求和响应格式,练习验证应用程序凭据,并尝试使用 API 端点而不会影响生产数据。
请查阅下方链接了解生成了 LWA 访问 Token,对沙盒端点的 SP-API 进行调用。
- [**Tutorial: Test Selling Partner API Endpoint**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/tutorial-test-selling-partner-api-endpoints?trk=cndc-detail)
**使用 SDK:**
SDK 将多个步骤捆绑在一起,例如请求访问 Token 和请求安全 Token,以无缝调用 SP-API。选择 SDK 后,您必须生成您的 SDK 并将其连接到销售合作伙伴 API。
* C# SDK 教程:[**使用 C# SDK 教程**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/automate-your-sp-api-calls-using-the-c-sdk?trk=cndc-detail)自动化您的 SP-API 调用,通过亚马逊登录(LWA)Token 交换和身份验证,使用 C# SDK 自动化您的 SP-API 调用。
* Java SDK 教程:[**使用 Java SDK 教程**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/automate-your-sp-api-calls-using-java-sdk?trk=cndc-detail)自动化您的 SP-API 调用,通过亚马逊登录(LWA)Token 交换和身份验证,使用 Java SDK 自动化您的 SP-API 调用。
* Node.js 的 JavaScript SDK 教程:[**使用 Node.js的JavaScript SDK 教程**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/tutorial-automate-your-sp-api-calls-using-javascript-sdk-for-node-js?trk=cndc-detail)自动化您的 SP-API 调用,通过亚马逊登录(LWA)Token 交换和身份验证,使用 Node.js 的 JavaScript SDK 自动化您的 SP-API 调用。
* Python SDK 教程:[**使用 Python SDK 教程**](https://developer-docs.amazon.com/sp-api/lang-zh_CN/docs/tutorial-automate-your-sp-api-calls-using-python-sdk?trk=cndc-detail)自动化您的 SP-API 调用,通过亚马逊登录(LWA)Token 交换和身份验证,使用 Python SDK 自动化您的SP-API调用。
**附录**
**1.[注册亚马逊开发者平台](https://developercentral.amazon.com/?trk=cndc-detail)**
**2. [SP-API 开发文档](https://developer-docs.amazon.com/sp-api/docs/welcome?trk=cndc-detail)**
**3. [Last version](https://aws.amazon.com/cn/blogs/china/how-to-connect-with-amazon-e-commerce-selling-partner-api/?trk=cndc-detail)**
