亚马逊 新版卖家中心 销售伙伴API(amazon selling partner API)开发人员指南

文章目录

关于本指南

本指南适用于希望为销售合作伙伴创建应用程序的开发人员。也就是说,适用于卖家、供应商或两者的应用程序。本指南中仅适用于卖家申请的部分被标记为仅适用于卖家申请。仅适用于供应商应用程序的部分被标记为仅适用于供应商应用程序。所有其他部分适用于所有销售合作伙伴申请。

术语

  • **销售伙伴。**销售伙伴可以是卖方或供应商。
  • **卖方。**卖家在亚马逊的零售网站上列出并销售自己的商品。商品售出后,要么 (1) 由卖家使用卖家管理的库存直接配送,要么 (2) 通过亚马逊物流 (FBA) 计划使用卖家的亚马逊物流库存配送。
  • **小贩。**供应商提供亚马逊在亚马逊零售网站上销售的库存。有两种主要类型的供应商:零售采购供应商和直接履行供应商。
  • **零售采购供应商。**零售采购供应商向亚马逊销售库存并将其运送到亚马逊的运营中心。然后,亚马逊将库存销售并运送给在亚马逊零售网站上进行购买的客户。零售采购供应商可以是品牌所有者或分销商。在某些情况下,他们管理他们提供给亚马逊的产品列表。
  • **直接履行供应商。**直接履行供应商代表亚马逊向客户运送订单。客户在亚马逊零售网站上从亚马逊购买商品后,直接履行供应商会将订单直接运送给客户。
  • **公开申请。**公开可用并由销售合作伙伴授权的应用程序。
  • **私人申请。**仅对您的组织可用且自我授权的应用程序。

什么是销售合作伙伴 API?

销售合作伙伴 API 是一个基于 REST 的 API,可帮助亚马逊销售合作伙伴以编程方式访问他们的订单、发货、付款等数据。使用销售合作伙伴 API 的应用程序可以提高销售效率、减少劳动力需求并缩短对客户的响应时间,帮助销售合作伙伴发展业务。

主要特点

使用销售合作伙伴 API,您可以:

  • 设置销售合作伙伴从亚马逊合作伙伴网络详细信息页面或您自己的网站启动的 OAuth 授权工作流程。
  • 生成可帮助您进行 LWA 令牌交换和身份验证的 SDK。
  • 通过调用沙盒环境来测试您的应用程序。

全球应用

您只需在您选择的区域和市场中注册一次开发人员,即可创建可由任何区域或市场的销售合作伙伴授权的销售合作伙伴 API 应用程序。您只需要一组开发人员凭证(您的 AWS 访问密钥 ID 和 AWS 秘密访问密钥)即可调用任何销售合作伙伴 API 终端节点,只要终端节点与授权您的应用程序的销售合作伙伴位于同一区域。

**仅适用于卖家申请。**如果您有混合销售合作伙伴 API 应用程序,则您对亚马逊商城网络服务 (Amazon MWS) 终端节点的调用与亚马逊 MWS 应用程序具有相同的限制。也就是说,当您调用亚马逊 MWS 终端节点时,您必须使用与该终端节点所在区域关联的亚马逊 MWS 访问密钥。

有关更多信息,请参阅销售合作伙伴 API 端点

销售合作伙伴 API 端点

销售合作伙伴 API 终端节点与特定的 AWS 区域相关联。AWS 区域很重要,因为它是凭证范围的一部分,这是在调用销售合作伙伴 API 时计算签名所必需的。有关更多信息,请参阅凭据范围

销售地区端点AWS 区域
北美(加拿大、美国、墨西哥和巴西市场)https://salespartnerapi-na.amazon.comus-east-1
欧洲(西班牙、英国、法国、荷兰、德国、意大利、瑞典、波兰、埃及、土耳其、阿拉伯联合酋长国和印度市场)https://salespartnerapi-eu.amazon.comeu-west-1
远东(新加坡、澳大利亚和日本市场)https://salespartnerapi-fe.amazon.comus-west-2

市场 ID 值

所述marketplaceId识别在请求中的市场。

北美

国家市场编号国家代码
加拿大A2EUQ1WTGCTBG2认证机构
美国ATVPDKIKX0DER我们
墨西哥A1AM78C64UM0Y8MX
巴西A2Q3Y263D00KWCBR

欧洲

国家市场编号国家代码
西班牙A1RKKUPIHCS9HSES
英国A1F83G8C2ARO7P国标
法国A13V1IB3VIYZZH阻燃剂
荷兰A1805IZSGTT6HSNL
德国A1PA6795UKMFR9
意大利APJ6JRA9NG5V4
瑞典A2NODRKZP88ZB9东南
波兰A1C3SOZRARQ6R3PL
埃及ARBP9OOSHTCHU例如
火鸡A33AVAJ2PDY3EVTR
沙特阿拉伯A17E79C6D8DWNP
阿拉伯联合酋长国A2VIGQ35RCS4UGAE
印度A21TJRUUN4KGV

远东

国家市场编号国家代码
新加坡A19VAU5U5O7RUSSG
澳大利亚A39IBJ37TRP1C6非盟
日本A1VC38T7YXB528J.P

注册为开发者

您必须先注册为 Selling Partner API 开发人员,然后才能注册您的 Selling Partner API 应用程序。根据您创建的应用程序类型,您注册为开发人员的方式略有不同。为了注册为开发人员,应用程序分为三种类型:

  • **所有公共应用程序。**公开可用并由卖方或供应商授权的应用程序。
  • **私人卖家申请。**仅对您的组织可用且自我授权的卖家应用程序。
  • **私人供应商应用程序。**供应商的应用程序,仅供您的组织使用,并且是自我授权的。

有关更多信息,请参阅术语

以下过程向您展示了如何注册为开发人员,具体取决于您要创建的应用程序类型。

注册为开发人员(适用于所有公共应用程序)

  1. 使用您要与开发者帐户关联的凭据登录卖家中心。

  2. 合作伙伴网络菜单中,单击开发应用程序

    将出现开发人员中心页面。

  3. 如果您尚未完成此销售帐户的开发者资料,请单击“继续阅读开发者资料”按钮。否则,请单击您的开发人员资料链接。

  4. 完成表格。在数据访问部分的下拉框中,选择我的组织构建并提供公开可用的应用程序

注册为开发者(私人卖家申请)

  1. 使用您要与开发者帐户关联的凭据登录卖家中心。

  2. 合作伙伴网络菜单中,单击开发应用程序

    将出现开发人员中心页面。

  3. 如果您尚未完成此销售帐户的开发者资料,请单击“继续阅读开发者资料”按钮。否则,请单击您的开发人员资料链接。

  4. 完成表格。在数据访问部分的下拉框中,选择我的组织在亚马逊上销售,我只想集成以管理我自己的业务

注册为开发人员(用于私人供应商应用程序)

  1. 前往您的市场的供应商中心。请参阅供应商中心 URL以获取按市场划分的 URL 列表。

  2. 使用 Vendor Central 帐户的凭据登录您希望应用程序访问的供应商组。

    有关供应商组的更多信息,请参阅关于供应商组

  3. 集成菜单中,单击API 集成

    将出现开发人员中心页面。

  4. 如果您尚未完成此供应商帐户的开发人员配置文件,请单击“继续开发人员配置文件”按钮。否则,请单击您的开发人员资料链接。

  5. 完成表格。在数据访问部分的下拉框中,选择我的组织在亚马逊上销售,我只想集成以管理我自己的业务

有关更多信息,请参阅术语

检查您注册为开发人员的请求的状态

在您提交注册为开发人员的请求后,亚马逊会评估所提供的信息并批准或拒绝您的请求。如果被拒绝,您可以说明拒绝的原因,然后重新提交您的开发者资料。您检查请求状态的方式因应用程序的类型而略有不同。为了检查您注册为开发人员的请求的状态,应用程序分为两种类型:

  • **所有公共应用程序和私人卖家应用程序。**它们是:(1) 公开可用且由卖方或供应商授权的应用程序,以及 (2) 仅对您的组织可用且自行授权的卖方应用程序。
  • **私人供应商应用程序。**仅对您的组织可用且自我授权的供应商应用程序。

有关更多信息,请参阅术语

以下过程向您展示了如何根据您要创建的应用程序类型检查注册为开发人员的请求的状态。

检查您的请求状态(适用于所有公共应用程序和私人卖家应用程序)

  1. 使用您注册为开发人员时使用的凭据登录卖家中心。

  2. 合作伙伴网络菜单中,单击开发应用程序

    将出现开发人员中心页面。

  3. 按照您的开发人员注册正在审核横幅中的说明进行操作。横幅将更改以反映您的申请状态。

检查您的请求状态(针对私人供应商应用程序)

  1. 使用您在注册为开发人员时使用的凭据登录 Vendor Central 。

  2. 集成菜单中,单击API 集成

    将出现开发人员中心页面。

  3. 按照您的开发人员注册正在审核横幅中的说明进行操作。横幅将更改以反映您的申请状态。

在我们将您注册为开发人员后,您可以创建和配置 IAM 策略和实体。要查看您的开发人员信息,请参阅查看您的应用程序信息和凭据

创建和配置 IAM 策略和实体

以下步骤解释了如何创建和配置 IAM 策略和实体,最终目标是创建您在注册应用程序时提供的 IAM 角色。在此工作流中,您将创建一个 IAM 用户(附加AWS STS策略),该用户承担一个有权调用销售合作伙伴 API 的 IAM 角色。

脚步

步骤 1. 创建一个 AWS 账户

步骤 2. 创建 IAM 用户

步骤 3. 创建 IAM 策略

步骤 4. 创建 IAM 角色

步骤 5. 向您的 IAM 用户添加 AWS Security Token Service 策略

步骤 1. 创建一个 AWS 账户

您需要一个 AWS 账户,因为销售合作伙伴 API 安全模型使用 AWS 身份验证凭证。如果您还不是 AWS 客户,您可以创建一个免费的 AWS 账户。有关更多信息,请参阅AWS 免费套餐

步骤 2. 创建 IAM 用户

创建 IAM 用户以获取 AWS 密钥以验证对销售合作伙伴 API 的调用。我们建议专门为此创建一个新的 IAM 用户。使用 IAM 用户代入您在步骤 4. 创建 IAM 角色中创建的 IAM 角色

创建 IAM 用户

  1. 如果您尚未登录,请登录 AWS 管理控制台并通过console.aws.amazon.com/iam打开 IAM 控制台。

  2. 在左侧导航窗格中,单击用户,然后单击添加用户按钮。

  3. 输入新用户的用户名。

  4. 选择编程访问,然后单击下一步:权限按钮。

  5. Set Permissions页面上,接受默认值并单击**Next: Tags。**您将在创建 IAM 角色时设置权限。

  6. 添加标签(可选)页面上,根据需要添加可选标签,然后单击下一步:查看按钮。

  7. Review页面上,查看您所做的选择。您可以忽略此用户没有权限警告。您将在创建 IAM 角色时设置权限。当您准备好继续时,单击创建用户按钮。

    将显示您的新 IAM 用户的 AWS 访问密钥 ID。

  8. 单击显示以查看 AWS 秘密访问密钥。要保存 AWS 访问密钥,请单击下载 .csv,然后将文件保存到安全位置。

    **重要提示:**这是您查看或下载您的 AWS 秘密访问密钥的唯一机会,您需要该密钥来验证您对销售合作伙伴 API 的调用。将 AWS 访问密钥 ID 和 AWS 秘密访问密钥保存在安全可靠的地方。**在此步骤之后,您将无法再次访问 AWS 访问密钥。**如果您丢失了 AWS 秘密访问密钥,您将需要使用自己的新密钥集创建一个新的 IAM 用户。

  9. 单击关闭

  10. 用户名列中,单击您的新 IAM 用户并记下用户 ARN。您将在步骤 4. 创建 IAM 角色中需要它。

有关更多信息,请参阅AWS 文档中的在您的 AWS 账户创建 IAM 用户

步骤 3. 创建 IAM 策略

此 IAM 策略定义了调用销售合作伙伴 API 的权限。您将其附加到您在步骤 4. 创建 IAM 角色中创建的 IAM 角色

创建 IAM 策略

  1. 登录 AWS 管理控制台并在console.aws.amazon.com/iam 上打开 IAM 控制台。

  2. 在左侧的导航窗格中,单击策略

    如果这是您第一次选择Policies,则会出现Welcome to Managed Policies页面。单击开始

  3. 单击创建策略按钮。

  4. 单击JSON选项卡。

  5. 将以下代码粘贴到文本框中,替换现有代码,然后单击Review policy

{
   “版本”:“ 2012-10-17 ”,
   “声明”:[ 
    { “效果”:“允许”,
       “动作”:“ execute-api:Invoke ”,
       “资源”:“ arn:aws:execute- api:*:*:* " 
    } 
  ] 
}
      
  1. 在“查看策略”页面上,为您正在创建的策略键入名称描述(可选)。我们建议将您的 IAM 策略命名为SellingPartnerAPI.

  2. 查看策略摘要以查看您的策略授予的权限,然后单击创建策略按钮。

    您的新 IAM 策略出现在列表中。

有关更多信息,请参阅AWS 文档中的创建 IAM 策略

步骤 4. 创建 IAM 角色

创建一个 IAM 角色,该角色信任您在第 2 步中创建的 IAM 用户。创建一个 IAM 用户并有权调用销售合作伙伴 API。

创建 IAM 角色

  1. 如果您尚未登录,请登录 AWS 管理控制台并通过console.aws.amazon.com/iam打开 IAM 控制台。

  2. 在左侧导航窗格中,单击角色,然后单击创建角色按钮。

  3. 创建角色页面上,单击另一个 AWS 账户

  4. 账户 ID框中,输入您在步骤 2 中创建 IAM 用户的 AWS 账户的账户标识符。创建 IAM 用户,然后单击下一步:权限按钮。

  5. 附加权限策略页面上的策略名称下,选择您在步骤 3. 创建 IAM 策略中创建的策略,然后单击下一步:标签。

    提示:单击过滤策略,然后选择客户管理以缩小您的选择范围。

  6. 添加标签(可选)页面上,根据需要添加可选标签,然后单击下一步:查看按钮。

  7. 创建角色页面,在角色名称框中输入角色名称,在角色描述框中输入可选的角色描述,然后单击创建角色按钮。

  8. 角色名称 下,单击新角色的名称。

    出现“**摘要”**页面

  9. 保存您的角色 ARN。你会需要它:

    1. 当您注册您的应用程序时
    2. 步骤 5. 向您的 IAM 用户添加 AWS 安全令牌服务策略

有关更多信息,请参阅AWS 文档中的创建向 IAM 用户委派权限的角色

步骤 5. 向您的 IAM 用户添加 AWS Security Token Service 策略

向您的 IAM 用户添加AWS 安全令牌服务 (AWS STS)策略使您能够请求临时 AWS 访问密钥,您可以使用这些密钥对您对销售合作伙伴 API 的请求进行身份验证。这些凭证会在一段时间后过期,帮助您控制对 AWS 资源的访问。

  1. 如果您尚未登录,请登录 AWS 管理控制台并通过console.aws.amazon.com/iam打开 IAM 控制台。

  2. 在左侧的导航窗格中,单击用户,然后单击要向其添加 AWS STS 策略的用户。在此工作流中,选择您在Step 2. Create an IAM user 中创建的用户。您可以为其他用例选择不同的 IAM 用户。

  3. 权限选项卡上,单击添加内联策略

  4. 创建策略页面上,单击选择服务

  5. 单击STS服务。

    提示。在搜索框中键入STS以缩小选择范围。

  6. 单击写入旁边的箭头将其展开。

  7. 选择AssumeRole

  8. 单击Resources旁边的箭头将其展开,然后单击Add ARN

  9. 添加 ARN(s)对话框中,输入步骤 4 中的角色 ARN 。在指定角色ARN框中创建 IAM 角色,单击添加,然后单击审核策略按钮。

  10. Review policy页面上,在Name框中输入您的策略的名称。查看您所做的选择。如果您准备好继续,请单击创建策略按钮。

注册您的应用程序

在注册您的应用程序之前,创建并配置您的 IAM 策略和实体。注册应用程序的方式因应用程序类型而略有不同。为了注册您的应用程序,应用程序分为两种类型:

  • **所有公共应用程序和私人卖家应用程序。**它们是:(1) 公开可用且由卖方或供应商授权的应用程序,以及 (2) 仅对您的组织可用且自行授权的卖方应用程序。
  • **私人供应商应用程序。**仅对您的组织可用且自我授权的供应商应用程序。

有关更多信息,请参阅术语

以下过程向您展示了如何注册您的应用程序,具体取决于应用程序类型。

注册您的应用程序(适用于所有公共应用程序和私人卖家应用程序)

  1. 使用您用于注册为开发人员的凭据登录卖家中心。

  2. 合作伙伴网络菜单中,单击开发应用程序

    将出现开发人员中心页面。

  3. 单击添加新应用程序客户端按钮。

    应用程序的注册页面出现。

  4. 完成表格。

    笔记。如果您正在注册公共应用程序,则在您选择 API 类型后会出现一个卖家复选框和一个供应商复选框。根据您的申请所针对的销售合作伙伴类型,选择SellersVendors或两者。您可以申请的角色列表因您的选择而异。

注册您的应用程序(用于私人供应商应用程序)

  1. 使用您用于注册为开发人员的凭据登录到 Vendor Central 。

  2. 集成菜单中,单击API 集成

    将出现开发人员中心页面。

  3. 单击添加新应用程序客户端按钮。

    应用程序的注册页面出现。

  4. 完成表格。

**重要的。**注册您的应用程序时,您提供的 IAM ARN 必须适用于您在步骤 3. 创建 IAM 策略 中附加了 IAM 策略的 IAM 实体 。在此工作流中,该 IAM 实体是步骤 4. 创建 IAM 角色中的 IAM 角色。如果您使用 IAM 用户注册您的应用程序,请确保 IAM 策略附加到它。否则,您对销售合作伙伴 API 的调用将失败。我们建议使用 IAM 角色注册您的应用程序,如本工作流程所示,以帮助您更好地控制对 AWS 资源的访问。

查看您的应用程序信息和凭据

你以后注册您的应用程序可以查看有关您的应用程序,以及与亚马逊(LWA)凭据登录信息。您查看此信息的方式因应用程序类型而异。为了查看您的应用程序信息和凭据,应用程序分为两种类型:

  • **所有公共应用程序和私人卖家应用程序。**它们是:(1) 公开可用且由卖方或供应商授权的应用程序,以及 (2) 仅对您的组织可用且自行授权的卖方应用程序。
  • **私人供应商应用程序。**仅对您的组织可用且自我授权的供应商应用程序。

有关更多信息,请参阅术语

以下过程向您展示了如何查看您的应用程序信息和凭据,具体取决于应用程序类型。

查看您的应用程序信息和凭据(对于私人卖家应用程序和任何类型的销售合作伙伴的公共应用程序)

  1. 使用您用于注册为开发人员的凭据登录卖家中心。

  2. 合作伙伴网络菜单中,单击开发应用程序

    开发中心有关应用程序(S),包括与之相关的IAM ARN页面显示的信息。

  3. 单击所需应用程序的LWA 凭据下的查看

    您的 LWA 客户端标识符和该应用程序的客户端机密会出现。您将需要这些凭据来请求 LWA 访问令牌。有关更多信息,请参阅步骤 1. 使用 Amazon 访问令牌请求登录

查看您的应用程序信息和凭据(针对私有供应商应用程序)

  1. 使用您在注册为开发人员时使用的凭据登录 Vendor Central 。

  2. 集成菜单中,单击API 集成

    开发中心有关应用程序(S),包括与之相关的IAM ARN页面显示的信息。

  3. 单击所需应用程序的LWA 凭据下的查看

    您的 LWA 客户端标识符和该应用程序的客户端机密会出现。您将需要这些凭据来请求 LWA 访问令牌。有关更多信息,请参阅步骤 1. 使用 Amazon 访问令牌请求登录

授权销售合作伙伴 API 应用程序

销售合作伙伴 API 的授权模型基于Login with Amazon,Amazon 的 OAuth 2.0 实现。在此模型中,销售合作伙伴通过与亚马逊和您的网站显示的页面交互来授权您的应用程序。销售合作伙伴采取的行动会触发您的网站或亚马逊的响应。销售伙伴的浏览器是在每个销售伙伴操作时在您的网站和亚马逊之间传递参数的用户代理。要实施 OAuth 授权,您必须将您的网站配置为 (1) 接受并处理亚马逊传递给它的参数,以及 (2) 重定向销售合作伙伴的浏览器并将参数传递给亚马逊。

我的申请是如何获得授权的?

您的应用程序的授权方式取决于应用程序类型。以下是按授权方式分组的应用程序类型:

  • **卖家的公开申请。**公开可用并由卖家授权的应用程序。可以使用以下方法授权这些应用程序:
  • **供应商的公共应用程序。**公开可用并由供应商授权的应用程序。可以使用以下方法授权这些应用程序:
  • **卖家或供应商的私人应用程序。**仅对您的组织可用的应用程序。这些可以是卖方或供应商应用程序。可以使用以下方法授权这些应用程序:

**笔记。**您可以在没有销售合作伙伴明确授权的情况下调用Grantless 操作

有关更多信息,请参阅术语

构建 OAuth 授权 URI

OAuth 授权 URI 是创建和测试销售合作伙伴 API 授权工作流的关键组件。OAuth 授权 URI 将浏览器重定向到亚马逊同意页面,在该页面上,销售合作伙伴可以同意您的应用程序代表他们调用销售合作伙伴 API。如果销售合作伙伴没有登录到卖家中心(对于卖家)或供应商中心(对于卖家),首先会出现一个登录页面。

如果销售合作伙伴从您自己的网站(网站授权工作流程)开始授权您的应用程序,您的网站使用 OAuth 授权 URI 将销售合作伙伴重定向到亚马逊同意页面。即使销售合作伙伴从亚马逊合作伙伴网络(亚马逊合作伙伴网络授权工作流程)开始授权您的应用程序,在亚马逊合作伙伴网络中创建实时列表之前,您仍然需要一个 OAuth 授权 URI 来测试处于草稿状态的授权工作流程。

为了构建 OAuth 授权 URI,应用程序分为两种类型:

  • **所有公共应用程序和私人卖家应用程序。**这可以是:(1) 公开可用且由卖方或供应商授权的应用程序,以及 (2) 仅对您的组织可用且自行授权的卖方应用程序。
  • **私人供应商应用程序。**仅对您的组织可用且自我授权的供应商应用程序。

有关更多信息,请参阅术语

以下过程向您展示了如何根据应用程序类型构建 OAuth 授权 URI:

构建 OAuth 授权 URI(适用于所有公共应用程序和私人卖家应用程序)

  1. 获取您希望销售合作伙伴授权您的应用程序的市场的卖家中心 URL。请参阅卖家中心 URL以获取按市场划分的 URL 列表。例子:https://sellercentral.amazon.com

  2. 将卖家中心 URL 与/apps/authorize/consent?application_id={your application ID}.

    例子: https://sellercentral.amazon.com/apps/authorize/consent?application_id=amzn1.sellerapps.app.0bf296b5-36a6-4942-a13e-EXAMPLEfcd28

构建 OAuth 授权 URI(用于私有供应商应用程序)

  1. 获取您希望销售合作伙伴授权您的应用程序所在市场的供应商中心 URL。请参阅供应商中心 URL以获取按市场划分的 URL 列表。例子:https://vendorcentral.amazon.com

  2. 将供应商中心 URL 与/apps/authorize/consent?{your application ID}.

    例子: https://vendorcentral.amazon.com/apps/authorize/consent?application_id=amzn1.sellerapps.app.0bf296b5-36a6-4942-a13e-EXAMPLEfcd28

您需要为销售合作伙伴将在其中授权您的应用程序的市场构建 OAuth 授权 URI。例如,如果卖家拥有墨西哥的卖家中心账户,他们将需要墨西哥的 OAuth 授权 URI(例如:)https://sellercentral.amazon.com.mx/apps/authorize/consent?application_id=amzn1.sellerapps.app.0bf296b5-36a6-4942-a13e-EXAMPLEfcd28来启动您的应用程序的授权。授权是区域性的,因此当授权完成后,您的申请将可以访问北美地区任何商城中的卖家账户。相同的概念适用于使用 Vendor Central 的供应商。

如果您要创建 OAuth 授权 URI 来测试您的授权工作流,请添加 version=beta 参数。这表明授权工作流程适用于处于草稿状态的应用程序。例子:https://sellercentral-europe.amazon.com/apps/authorize/consent?application_id=amzn1.sellerapps.app.0bf296b5-36a6-4942-a13e-EXAMPLEfcd28&version=beta

有关创建和测试授权工作流程的信息,请参阅亚马逊合作伙伴网络授权工作流程网站授权工作流程

从 Amazon Marketplace Web Service 迁移授权

仅适用于卖家申请。

如果卖家已授权您代表他们调用亚马逊商城网络服务,您可以使用授权 API 将该授权迁移到混合销售合作伙伴 API 应用程序。这消除了再次向销售伙伴请求授权的需要。有关更多信息,请参阅授权 API 用例指南

亚马逊合作伙伴网络授权工作流程

仅适用于卖家申请

亚马逊合作伙伴网络授权工作流程是销售合作伙伴从亚马逊合作伙伴网络详细信息页面启动的 OAuth 授权工作流程。当您在亚马逊合作伙伴网络上列出销售合作伙伴 API 应用程序时,销售合作伙伴可以通过单击详细信息页面上的立即授权按钮来授权您的应用程序。

测试您的授权工作流程

在亚马逊合作伙伴网络上列出您的应用程序之前,您应该在您的应用程序处于草稿状态时测试您的授权工作流程。您的测试工作流程不会与最终生产工作流程完全相同,但您将能够确保您的应用程序可以与亚马逊交换参数并接收授权信息。

设置测试授权工作流程

  1. 确保您的申请处于草稿状态。
  2. 为测试目的构建一个或多个 OAuth 授权 URI。version=beta在 OAuth URI 中包含参数以指示工作流用于授权处于草稿状态的应用程序。有关更多信息,请参阅构建 OAuth 授权 URI
  3. 第 3 步。销售合作伙伴登录您的网站时,请确保您的工作流程将该version=beta参数添加到亚马逊回调 URI 以指示该工作流程用于授权处于草稿状态的应用程序。

您现在已准备好与与您合作的值得信赖的销售合作伙伴测试您的授权工作流程。或者,您可以使用自己的销售帐户凭据自行测试工作流程。不是从第 1 步开始。销售合作伙伴从 Amazon Partner Network 启动授权,而是通过导航到您之前构建的 OAuth 授权 URI 来启动测试工作流程。

**注意:**如果您有多个区域 OAuth 授权 URI,请务必向销售合作伙伴提供与其经营所在区域相对应的 OAuth 授权 URI。

完成授权工作流程的测试后,您可以将其转换为生产工作流程。

将您的测试授权工作流转换为生产工作流

  1. 在亚马逊合作伙伴网络中列出您的应用程序。这会将您的应用程序从草稿状态更改为已发布状态。

  2. 更新您的工作流程,使其不再将version=beta参数添加到步骤 3 中的亚马逊回调 URI 。销售合作伙伴登录您的网站

    现在,任何销售合作伙伴都可以从第 1 步开始授权您发布的应用程序。销售合作伙伴从亚马逊合作伙伴网络启动授权

脚步

步骤 1. 销售合作伙伴从亚马逊合作伙伴网络发起授权

步骤 2. 销售伙伴同意授权您的申请

第 3 步。销售合作伙伴登录您的网站

步骤 4. 亚马逊向您发送授权信息

第 5 步。您的应用程序将 LWA 授权代码交换为 LWA 刷新令牌

步骤 1. 销售合作伙伴从亚马逊合作伙伴网络发起授权

  1. 销售合作伙伴登录卖家中心并进入亚马逊合作伙伴网络。
  2. 销售合作伙伴转到您的应用程序的详细信息页面,然后单击“**立即授权”**按钮。出现您的应用程序的同意页面。

步骤 2. 销售伙伴同意授权您的申请

  1. 销售合作伙伴查看同意页面,审查并接受您的应用程序请求的数据访问,然后单击“立即登录 [您的应用程序名称]”按钮继续。销售伙伴无需授权即可单击取消按钮退出。
  2. 亚马逊将您的登录 URI(您在应用程序注册时提供的)加载到浏览器中,并添加以下查询参数:
范围描述
amazon_callback_uri用于将浏览器重定向到 Amazon 的 URI。
亚马逊状态Amazon 生成的状态值,用于防止跨站点请求伪造攻击。
sell_partner_id授权您的应用程序的销售合作伙伴的标识符。

**注意:**如果这是一个测试工作流程(销售合作伙伴通过导航到您的 OAuth 授权 URI 开始),亚马逊会包含该version=beta参数。如果这是一个生产工作流程(销售合作伙伴从亚马逊合作伙伴网络开始),亚马逊不包括该参数。

例如:

https://d2yzyfnnpjylxu.cloudfront.net/index.html?amazon_callback_uri=https://amazon.com/apps/authorize/confirm/amzn1.sellerapps.app.2eca283f-9f5a-4d13-b16c-474EXAMPLE57&amazon_state=amazonstateexample&selling_partner_id=A3FHEXAMPLEYWS

出现您网站的登录页面。

第 3 步。销售合作伙伴登录您的网站

  1. 销售合作伙伴登录您的网站。如果销售合作伙伴还没有帐户,他们将完成您的注册过程。
  2. 您的应用程序将 Amazon 回调 URI(由 Amazon 在上一步中传递)加载到浏览器中,并添加以下参数:
范围描述
重定向uri用于将浏览器重定向到您的应用程序的 URI。这必须是您在注册应用程序时指定的 OAuth 重定向 URI 。如果不包含redirect_uri参数,则默认值为您在注册应用程序时指定的第一个 OAuth 重定向 URI。可选的
亚马逊状态amazon_state亚马逊在上一步传递的值。
状态由您的应用程序生成的状态值。您的应用程序使用此值来维护此请求和响应之间的状态,帮助防范跨站点请求伪造攻击。**重要提示:**由于 OAuth 信息是通过 URI 查询参数传递的,我们强烈建议您执行以下操作:(1) 确保状态令牌是短暂的并且对您的用户来说是唯一的,以及 (2) 设置Referrer-Policy: no-referrer HTTP标头,这可以防止将敏感信息泄露到您的网站链接到的网站。有关跨站点请求伪造和计算状态参数的更多信息,请参阅Login with Amazon 文档中的跨站点请求伪造

**注意:**如果您包含该version=beta参数,工作流将授权处于草稿状态的应用程序。如果您不包含该参数,则工作流程将授权在亚马逊合作伙伴网络上发布的应用程序。

例如:

https://amazon.com/apps/authorize/confirm/amzn1.sellerapps.app.2eca283f-9f5a-4d13-b16c-474EXAMPLE57?redirect_uri=https://d2yzyfnnpjylxu.cloudfront.net/landing.html&amazon_state=amazonstateexample&state=-37131022&version=beta

或者

https://amazon.com/apps/authorize/confirm/amzn1.sellerapps.app.2eca283f-9f5a-4d13-b16c-474EXAMPLE57?redirect_uri=https://d2yzyfnnpjylxu.cloudfront.net/landing.html&amazon_state=amazonstateexample&state=-37131022

步骤 4. 亚马逊向您发送授权信息

卖家中心会短暂显示一个页面,表明亚马逊正在授权您访问销售合作伙伴的数据。显示此页面时,会发生以下操作:

  1. 亚马逊将您的 OAuth 重定向 URI 加载到浏览器(您在注册应用程序时指定的第一个),并添加以下查询参数:
范围描述
状态您在上一步中传递的状态值。
sell_partner_id授权您的应用程序的销售合作伙伴的标识符。
mws_auth_token您在创建用于调用亚马逊商城网络服务的查询字符串时使用的MWSAuthToken值。mws_auth_token 参数仅在销售合作伙伴授权混合销售合作伙伴 API (SP-API) 应用程序时传递。请注意,如果您是授权混合 SP-API 应用程序的销售合作伙伴和应用程序所有者(意味着您自行授权自己的亚马逊 MWS 应用程序),您将不会收到 MWSAuthToken。有关更多信息,请参阅混合销售合作伙伴 API 应用程序
spapi_oauth_code用于交换 LWA 刷新令牌的 Login with Amazon (LWA) 授权代码。有关更多信息,请参阅步骤 5。您的应用程序将 LWA 授权代码交换为 LWA 刷新令牌注意: LWA 授权码会在五分钟后过期。请务必在 LWA 刷新令牌过期之前将其交换。

例如:

https://client-example.com?state=state-example&mws_auth_token=mwsauthtokenexample&selling_partner_id=sellingpartneridexample&spapi_oauth_code=spapioauthcodeexample
  1. 您的应用程序验证状态值。
  2. 您的应用程序保存selling_partner_idmws_auth_token(如果通过)和spapi_oauth_code值。
  3. 显示您网站的登录页面。

第 5 步。您的应用程序将 LWA 授权代码交换为 LWA 刷新令牌

Login with Amazon SDK for JavaScript 可以帮助您将 LWA 授权代码交换为 LWA 刷新令牌。

注意: LWA 授权码会在五分钟后过期。请务必在 LWA 刷新令牌过期之前将其交换。

有关更多信息,请参阅 Login with Amazon 文档:

为 LWA 刷新令牌交换 LWA 授权代码

  1. 您的应用程序调用 Login with Amazon (LWA) 授权服务器 ( https://api.amazon.com/auth/o2/token) 以将 LWA 授权代码交换为 LWA 刷新令牌。调用必须包含以下查询参数:
范围描述
授权类型请求的访问权限类型。必须是authorization_code
代码您在步骤 4 中收到的 LWA 授权代码。亚马逊向您发送授权信息
重定向uri应用程序的重定向 URI。
客户编号LWA 凭证的一部分。要获取此值,请参阅查看您的应用程序信息和凭据
客户秘密LWA 凭证的一部分。要获取此值,请参阅查看您的应用程序信息和凭据

例如:

POST /auth/o2/token HTTP/ll
主机: api.amazon.com
内容类型: application/x-www-form-urlencoded;charset=UTF-8 
grant_type = authorization_code & code = SplxlOexamplebYS6WxSbIA & client_id = foodev & client_secret = Y76SDl2F
  1. LWA 授权服务器返回 LWA 刷新令牌。响应采用 JSON 格式,包括以下元素。
范围描述
访问令牌授权您的应用程序代表销售合作伙伴执行某些操作的令牌。请参阅连接到销售合作伙伴 API
令牌类型返回的令牌类型。应该是承载。
过期日期在访问令牌失效前的秒数。
刷新令牌可以交换新访问令牌的长期令牌。请参阅连接到销售合作伙伴 API
HTTP/ll 200 OK
内容类型: application/json;
字符集 UTF -8
缓存 - 控制:无存储Pragma:无缓存
{ “ access_token ”:“ Atza|IQEBLjAsAexampleHpi0U-Dme37rR6CuUpSR ”,
   “ token_type ”:“ bearer ”,
   “ expires_in ”:3600,
   “ refresh_token ” |:“ Atzr IQEBLzAtAhexamplewVz2Nn6f2y-tpJX2DeX " 
}

  
  1. 您的应用程序保存了refresh_token价值。
  2. 浏览器向销售合作伙伴显示一个页面,指示使用您的应用程序的后续步骤。

LWA 刷新令牌是一个长期存在的令牌,您可以用它来交换 LWA 访问令牌。通过此令牌交换获得的访问令牌必须包含在对所有销售合作伙伴 API 操作的调用中,受限操作授权操作除外,它们使用不同的授权模型。颁发访问令牌后,它的有效期为一小时。同一个访问令牌可用于多个 API 调用,直到它过期。

要使用生成的 SDK 将刷新令牌交换为访问令牌,请参阅使用生成的 Java SDK 连接到销售合作伙伴 API。要手动交换访问令牌的刷新令牌,请参阅连接到销售合作伙伴 API

对于混合销售合作伙伴 API 应用程序

如果在步骤 4中返回了 MWS 身份验证令牌。亚马逊向您发送授权信息,您的应用程序也被授权代表销售合作伙伴调用亚马逊商城网络服务。有关更多信息,请参阅混合销售合作伙伴 API 应用程序

网站授权工作流程

网站授权工作流程是从您自己的网站启动的 OAuth 授权工作流程。销售合作伙伴登录您的网站并单击您配置的“授权”按钮以启动授权。有关详细信息,请参阅步骤 0. 设置“授权”按钮

**笔记。**以下步骤中的示例针对卖家应用程序,使用基于卖家中心 URL的 OAuth 授权 URI 。对于供应商应用程序,您可以使用供应商中心 URL替换卖方中心 URL。有关更多信息,请参阅构建 OAuth 授权 URI

测试您的授权工作流程

在创建生产网站授权工作流之前,您应该在您的应用程序处于草稿状态时测试您的授权工作流。通过测试,您可以确保您的应用程序可以与亚马逊交换参数并接收授权信息。

设置测试授权工作流程

  1. 确保您的申请处于草稿状态。
  2. 步骤 0. 设置“授权”按钮,当您构建一个或多个 OAuth 授权 URI 时,将version=beta参数添加到 OAuth URI(s) 以指示工作流用于授权处于草稿状态的应用程序。

您现在已准备好与与您合作的值得信赖的销售合作伙伴测试您的授权工作流程。或者,您可以使用自己的销售帐户凭据自行测试工作流程。从第 1 步开始。销售合作伙伴从您的网站发起授权

完成授权工作流程的测试后,您可以将其转换为生产工作流程。

将您的测试授权工作流转换为生产工作流

  1. 在亚马逊合作伙伴网络中列出您的应用程序。这会将您的应用程序从草稿状态更改为已发布状态。

    **重要的。**您的应用程序必须处于已发布状态,Webstore 授权工作流才能工作。

  2. version=beta从您在步骤 0 中构建的 OAuth 授权 URI 中删除参数。设置“授权”按钮

    现在,任何销售合作伙伴都可以从第 1 步开始授权您发布的应用程序。销售合作伙伴从您的网站启动授权

脚步

步骤 0. 设置“授权”按钮

步骤 1. 销售合作伙伴从您的网站发起授权

Step 2. 销售伙伴同意授权申请

步骤 3. 亚马逊向您发送授权信息

第 4 步。您的应用程序将 LWA 授权代码交换为 LWA 刷新令牌

步骤 0. 设置“授权”按钮

在您的应用程序网站上设置一个“授权”按钮(或类似的东西),销售合作伙伴可以点击该按钮来启动您的应用程序的授权。当销售合作伙伴单击该按钮时,您的网站会将 OAuth 授权 URI 加载到浏览器中,并且销售合作伙伴将被重定向到亚马逊登录页面。登录后,会出现一个同意页面,销售合作伙伴可以在此同意您的应用程序代表他们调用销售合作伙伴 API。有关构建 OAuth 授权 URI 的信息,请参阅构建 OAuth 授权 URI

**笔记。**如果您有多个区域的 OAuth 授权 URI,请务必设置您的“授权”按钮,以便销售合作伙伴被重定向到卖家中心(对于卖家)或供应商中心(对于供应商)登录页面以供他们自己使用地区。

设置“授权”按钮是一项一次性任务。

步骤 1. 销售合作伙伴从您的网站发起授权

  1. 销售合作伙伴登录您的网站。如果销售合作伙伴还没有帐户,他们将完成您的注册过程。
  2. 销售伙伴单击您在步骤 0 中设置的“授权”按钮设置“授权”按钮。如果您有多个区域“授权”按钮,请确保将销售合作伙伴定向到与其销售区域对应的按钮。
  3. 您的应用程序将 OAuth 授权 URI 加载到浏览器中,并添加以下查询参数:
范围描述
重定向uri用于将浏览器重定向到您的应用程序的 URI。这必须是您在注册应用程序时指定的 OAuth 重定向 URI 。如果不包含redirect_uri参数,则默认值为您在注册应用程序时指定的第一个 OAuth 重定向 URI。可选的
状态由您的应用程序生成的状态值。您的应用程序使用此值来维护此请求和响应之间的状态,帮助防范跨站点请求伪造攻击。**重要提示:**由于 OAuth 信息是通过 URL 查询参数传递的,我们强烈建议您执行以下操作:1) 确保状态令牌是短暂的并且对您的用户来说是唯一的,并且 2) 设置 Referrer-Policy: no- Referrer HTTP 标头,可防止将敏感信息泄露到您的网站链接到的网站。有关跨站点请求伪造和计算状态参数的更多信息,请参阅Login with Amazon 文档中的跨站点请求伪造

**注意:**如果您包含该version=beta参数,工作流将授权处于草稿状态的应用程序。如果您不包含该参数,则工作流程将授权在亚马逊合作伙伴网络上发布的应用程序。

例如:

https://sellercentral.amazon.com/apps/authorize/consent?application_id=appidexample&state=stateexample&version=beta

或者

https://sellercentral.amazon.com/apps/authorize/consent?application_id=appidexample&state=stateexample

销售合作伙伴到达卖家中心(对于卖家)或供应商中心(对于供应商)的登录页面。

Step 2. 销售伙伴同意授权申请

  1. 销售合作伙伴登录到卖家中心或供应商中心,具体取决于您构建的 OAuth 授权 URI 的类型。出现同意页面。有关更多信息,请参阅构建 OAuth 授权 URI
  2. 销售合作伙伴查看同意页面,查看您的应用程序请求的数据访问,然后单击“确认”按钮继续。销售伙伴无需授权即可单击取消按钮退出。

步骤 3. 亚马逊向您发送授权信息

亚马逊会短暂显示一个页面,表明我们授权您访问销售合作伙伴的数据。显示该页面时,会发生以下操作:

  1. 亚马逊将您的 OAuth 重定向 URI 加载到浏览器(您在注册应用程序时指定的第一个),并添加以下查询参数:
范围描述
状态步骤 1 中 的状态值。卖家从您的网站启动授权
sell_partner_id授权您的应用程序的销售合作伙伴的标识符。
mws_auth_token您在创建用于调用亚马逊商城网络服务的查询字符串时使用的MWSAuthToken值。mws_auth_token 参数仅在销售合作伙伴授权混合销售合作伙伴 API (SP-API) 应用程序时传递。请注意,如果您是授权混合 SP-API 应用程序的销售合作伙伴和应用程序所有者(意味着您自行授权自己的亚马逊 MWS 应用程序),您将不会收到 MWSAuthToken。有关更多信息,请参阅混合销售合作伙伴 API 应用程序仅适用于卖家申请。
spapi_oauth_code用于交换 LWA 刷新令牌的 Login with Amazon (LWA) 授权代码。有关更多信息,请参阅步骤 4。您的应用程序将 LWA 授权代码交换为 LWA 刷新令牌注意: LWA 授权码会在五分钟后过期。请务必在 LWA 刷新令牌过期之前将其交换。

例如:

https://client-example.com?state=state-example&mws_auth_token=mwsauthtokenexample&selling_partner_id=sellingpartneridexample&spapi_oauth_code=spapioauthcodeexample
  1. 您的应用程序验证状态值。
  2. 您的应用程序保存selling_partner_idmws_auth_token(如果通过)和spapi_oauth_code值。
  3. 显示您网站的登录页面。

第 4 步。您的应用程序将 LWA 授权代码交换为 LWA 刷新令牌

Login with Amazon SDK for JavaScript 可以帮助您将 LWA 授权代码交换为 LWA 刷新令牌。

注意: LWA 授权码会在五分钟后过期。请务必在 LWA 刷新令牌过期之前将其交换。

有关更多信息,请参阅 Login with Amazon 文档:

为 LWA 刷新令牌交换 LWA 授权代码

  1. 您的应用程序调用 Login with Amazon (LWA) 授权服务器 ( https://api.amazon.com/auth/o2/token) 以将 LWA 授权代码交换为 LWA 刷新令牌。调用必须包含以下查询参数:
范围描述
授权类型请求的访问权限类型。必须是authorization_code
代码您在步骤 3 中 收到的 LWA 授权代码。亚马逊向您发送授权信息
重定向uri应用程序的重定向 URI。
客户编号LWA 凭证的一部分。要获取此值,请参阅查看您的开发人员信息
客户秘密LWA 凭证的一部分。要获取此值,请参阅查看您的开发人员信息

例如:

POST /auth/o2/token HTTP/ll
主机: api.amazon.com
内容类型: application/x-www-form-urlencoded;charset=UTF-8 
grant_type = authorization_code & code = SplxlOexamplebYS6WxSbIA & client_id = foodev & client_secret = Y76SDl2F
  1. LWA 授权服务器返回 LWA 刷新令牌。响应采用 JSON 格式,包括以下元素。
范围描述
访问令牌授权您的应用程序代表销售合作伙伴执行某些操作的令牌。请参阅连接到销售合作伙伴 API
令牌类型返回的令牌类型。应该是承载。
过期日期在访问令牌失效前的秒数。
刷新令牌可以交换新访问令牌的长期令牌。请参阅连接到销售合作伙伴 API
HTTP/ll 200 OK
内容类型: application/json;
字符集 UTF -8
缓存控制:无存储
Pragma:无缓存
{ “ access_token ”:“ Atza|IQEBLjAsAexampleHpi0U-Dme37rR6CuUpSR ”,
   “ token_type ”:“ bearer ”,
   “ expires_in ”:3600,
   “ refresh_token ” |:“ Atzr IQEBLzAtAhexamplewVz2Nn6f2y-tpJX2DeX " 
}
  
  1. 您的应用程序保存 refresh_token 值。
  2. 浏览器向销售合作伙伴显示一个页面,指示使用您的应用程序的后续步骤。

LWA 刷新令牌是一个长期存在的令牌,您可以用它来交换 LWA 访问令牌。通过此令牌交换获得的访问令牌必须包含在对所有销售合作伙伴 API 操作的调用中,受限操作授权操作除外,它们使用不同的授权模型。颁发访问令牌后,它的有效期为一小时。同一个访问令牌可用于多个 API 调用,直到它过期。

要使用生成的 SDK 将刷新令牌交换为访问令牌,请参阅使用生成的 Java SDK 连接到销售合作伙伴 API。要手动交换访问令牌的刷新令牌,请参阅连接到销售合作伙伴 API

对于混合销售合作伙伴 API 应用程序

如果在步骤 3中返回了 MWS 身份验证令牌。亚马逊向您发送了授权信息,您的应用程序也被授权代表销售合作伙伴调用亚马逊商城网络服务。有关更多信息,请参阅混合销售合作伙伴 API 应用程序

自我授权

当您为自己的组织创建私人应用程序时,您可以自行授权它访问您的帐户信息。在执行此操作之前,您必须注册为开发人员注册您的应用程序。您可以在草稿状态下自行授权您的申请;没有理由发布私人应用程序。

**笔记。**如果您要创建由销售合作伙伴授权的公共应用程序,请转至授权销售合作伙伴 API 应用程序

自我授权程序因您是卖家申请还是供应商申请而异。

自我授权您的应用程序(卖方应用程序)

  1. 使用您用于注册为开发人员的凭据登录卖家中心。

  2. 合作伙伴网络菜单中,单击开发应用程序

    将出现开发人员中心页面。

  3. 对于您要授权的应用程序,单击编辑应用程序按钮旁边的箭头,然后单击授权

    授权的应用程序页面出现。

    笔记。如果您的销售合作伙伴帐户与其他地区的帐户合并,您将看到每个合并帐户的授权应用程序按钮。

  4. 单击您希望应用程序访问的每个销售合作伙伴帐户的授权应用程序按钮。的交易市场列指示其中一个帐户处于活动状态街市。

    Login with Amazon (LWA) 刷新令牌与您单击的每个授权应用程序按钮一起出现。

    笔记。如果您多次单击授权应用程序按钮,则每次都会生成一个新的刷新令牌。生成新的刷新令牌不会使以前的刷新令牌无效。

  5. 为您授权应用程序访问的每个销售合作伙伴帐户保存刷新令牌。稍后您可以将这些刷新令牌交换为访问令牌。当您调用销售合作伙伴 API 以访问销售合作伙伴帐户时,请包含与该帐户对应的访问令牌。

  6. 要授权您的应用程序访问不同的销售合作伙伴帐户,请单击页面底部的登录该帐户

    出现卖家中心登录页面。

  7. 使用您希望应用程序访问的销售合作伙伴帐户的凭据登录。

    授权的应用程序页面出现。

  8. 单击授权应用程序按钮以获取刷新令牌。

自我授权您的应用程序(供应商应用程序)

  1. 使用您用于注册为开发人员的凭据登录到 Vendor Central 。

  2. 集成菜单中,单击API 集成

    将出现开发人员中心页面。

  3. 对于您要授权的应用程序,单击编辑应用程序按钮旁边的箭头,然后单击授权

    授权的应用程序页面出现。

  4. 单击生成刷新令牌按钮。

    您的 Login with Amazon (LWA) 刷新令牌出现。如果再次单击生成刷新令牌按钮,则会生成新的刷新令牌。生成新的刷新令牌不会使以前的刷新令牌无效。

    笔记。 如果您的销售账户与其他地区的账户合并,您将收到每个地区的单独刷新令牌。您的应用程序现在有权访问您的销售帐户。

LWA 刷新令牌是一个长期存在的令牌,您可以用它来交换 LWA 访问令牌。通过此令牌交换获得的访问令牌必须包含在对所有销售合作伙伴 API 操作的调用中,受限操作授权操作除外,它们使用不同的授权模型。颁发访问令牌后,它的有效期为一小时。同一个访问令牌可用于多个 API 调用,直到它过期。

要使用生成的 SDK 将刷新令牌交换为访问令牌,请参阅使用生成的 Java SDK 连接到销售合作伙伴 API。要手动交换访问令牌的刷新令牌,请参阅连接到销售合作伙伴 API

使用受限数据令牌授权

返回受限数据(例如个人身份信息或 PII)的操作被视为受限操作,需要以受限数据令牌 (RDT) 的形式进行特殊授权。RDT 提供授权以获取执行运输、税务发票或税务汇款服务等功能所需的 PII。在调用受限操作时,您可以通过在x-amz-access-token标头中传递 RDT 来授权调用受限操作。这与在标头中传递 LWA 访问令牌形成对比,就像您在其他 SP-API 操作中所做的那样。有关更多信息,请参阅销售合作伙伴 API 开发人员指南中的步骤 3. 向 URI 添加标头

我如何获得 RDT?

除非您有受托人应用程序(请参阅令牌用例指南中的术语),否则您可以通过调用令牌 API的createRestrictedDataToken操作来获取 RDT 。如果您有一个受托人应用程序,您将从与您的应用程序集成的委托人应用程序中获得一个 RDT。有关使用 RDT 授权调用的更多信息,包括委托授权,请参阅令牌 API 用例指南

使用 LWA 令牌交换和身份验证生成 Java SDK

**C# 开发人员注意事项。**我们还提供了一个库,用于生成带有 LWA 令牌交换和身份验证的 C# SDK。有关更多信息,请参阅https://github.com/amzn/ sell-partner-api-models/tree/main/clients/ sellpartner-api-aa-csharp 中的 README.md 。

这些说明向您展示了如何在运行 Microsoft Windows 的计算机上使用Swagger 代码生成器为卖家 API 生成 Java SDK 。对于 macOS 或 Linux 等其他操作系统的用户,该过程是相同的,只是替换了 Windows 特定的语义(例如,C:\)。虽然这些说明是针对卖家 API 的,但您可以修改说明以生成用于任何其他销售合作伙伴 API 的 SDK。有关每个销售合作伙伴 API 部分的 Swagger 模型,请参阅https://github.com/amzn/ sell-partner-api-models。

使用此开发工具包,您可以使用已为您设置的以下代码向销售合作伙伴 API 发出请求:使用亚马逊令牌交换登录(将刷新令牌交换为访问令牌)和身份验证。

使用 LWA 令牌交换和身份验证生成 Java SDK

  1. 安装Java 8 或更新版本Apache Maven 3.6。或更高版本,以及GNU Wget并使它们在您的$PATH.

  2. 转到https://github.com/amzn/ sell- partner- api- models

  3. 克隆存储库以在您的计算机上制作本地副本(如果您还没有这样做的话)。

  4. 打开命令提示符窗口并转到要下载 Swagger 代码生成器的目录。

  5. 下载最新版本的 Swagger 代码生成器。

    例如:

wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar

swagger-codegen-cli.jar下载到当前目录。

**注意:**您也可以通过将浏览器指向此处从 maven.org 下载:https 😕/repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4 。 13.jar

  1. swagger-codegen-cli.jar复制到对您有意义的目录结构中。对于此示例,我们将其复制到 C:\SwaggerToCL。

  2. 导航到sellers.json销售,合作伙伴API的模型\型号\卖家-API模型本地存储库的副本的文件夹中。

  3. 复制sellers.json到C:\ SwaggerToCL。

  4. 根据您本地存储库副本的sell-partner-api-models\clients\ sellpartner-api-aa-java文件夹中的模板生成 SDK 。此文件夹包含授权和身份验证库,以及 Swagger 代码生成器的自定义模板。

    例如:

java -jar C: \S waggerToCL \s wagger-codegen-cli.jar generate -i C: \S waggerToCL \S ellers.json -l java -t [路径到销售伙伴-api -models \c lients \s ellingpartner-api-aa-java 文件夹] \r esources \s wagger- codegen \ t emplates \ -o C: \S waggerToCL \ Sellers_JavaCL

SDK 复制到 C:\SwaggerToCL\Sellers_JavaCL

  1. 构建 AA 库并将其添加为 SDK 的依赖项:

    1. 导航到您本地存储库副本的sell-partner-api-models\clients\ sellpartner-api-aa-java文件夹并运行mvn package. 这会生成一个名为“target”的文件夹。在这个文件夹中有一个名为sellpartnerapi-aa-java-1.0-jar-with-dependencies.jar(或类似的东西)的 JAR 文件和所有必需的依赖项。

    2. 在本地 Maven 存储库中安装 JAR 文件。

      例如:

MVN安装:安装文件-Dfile = [路径JAR文件在 “目标”文件夹] -DgroupId = com.amazon.sellingpartnerapi -DartifactId = sellingpartnerapi-AA-java的-Dversion = 1.0 -Dpackaging =罐子

您可以在sale-partner-api-models\clients\ sellpartner-api-aa-java文件夹中的pom.xml文件顶部附近找到实际的 groupId、artifactId 和 version 值。

  1. 在客户端库的pom.xml中添加对 AA 库的依赖:

例如:

< dependency > 
  < groupId >com.amazon. sellpartnerapi</ groupId > 
  < artifactId > sellpartnerapi-aa-java</ artifactId > 
  < version >1.0</ version > 
</ dependency >

生成 SDK 后,您可以使用它来调用 Selling Partner API。请参阅使用生成的 Java SDK 连接到销售合作伙伴 API

使用生成的 Java SDK 连接到销售合作伙伴 API

在您的应用程序可以连接到销售合作伙伴 API 之前,您必须先注册它并且它必须得到销售合作伙伴的授权。请参阅注册您的应用程序授权销售合作伙伴 API 应用程序

这些说明向您展示了如何使用生成的 Java SDK 进行调用。开发工具包公开用于配置您的 LWA 和 AWS 凭证的类,并使用这些类为您交换 LWA 令牌和签署请求。有关更多信息,请参阅使用 LWA 令牌交换和身份验证生成 Java SDK

脚步

步骤 1. 配置您的 AWS 凭证

步骤 2. 配置您的 AWS 凭证提供程序

步骤 3. 配置您的 LWA 凭证

步骤 4. 创建卖家 API 的实例并调用操作

步骤 1. 配置您的 AWS 凭证

AWSAuthenticationCredentials使用以下参数创建 的实例:

姓名描述必需的
访问密钥ID您的 AWS 访问密钥 ID,来自步骤 2. 创建 IAM 用户是的
密钥您的 AWS 秘密访问密钥,来自步骤 2. 创建 IAM 用户是的
地区您要将呼叫定向到的 AWS 区域。有关更多信息,请参阅销售合作伙伴 API 端点是的

例子:

import com.amazon.SellingPartnerAPIAA.AWSAuthenticationCredentials;

AWSAuthenticationCredentials awsAuthenticationCredentials=AWSAuthenticationCredentials.builder()
  .accessKeyId("myAccessKeyId")
  .secretKey("mySecretId")
  .region("us-east-1")
  .build();

步骤 2. 配置您的 AWS 凭证提供程序

AWSAuthenticationCredentialsProvider使用以下参数创建 的实例:

姓名描述必需的
角色Arn您在步骤 4. 创建 IAM 角色中创建的 IAM 角色的 ARN 。是的
角色会话名称您定义的会话的标识符。我们建议使用通用唯一标识符(UUID)。是的

例子:

import com.amazon.SellingPartnerAPIAA.AWSAuthenticationCredentials;

AWSAuthenticationCredentialsProvider awsAuthenticationCredentialsProvider=AWSAuthenticationCredentialsProvider.builder()
  .roleArn("myroleARN")
  .roleSessionName("myrolesessioname")
  .build();

步骤 3. 配置您的 LWA 凭证

LWAAuthorizationCredentials使用以下参数创建 的实例:

姓名描述必需的
客户编号您的 LWA 客户端标识符。有关更多信息,请参阅查看 您的开发人员信息是的
客户秘密您的 LWA 客户端机密。有关更多信息,请参阅查看您的 开发人员信息是的
刷新令牌LWA 刷新令牌。当销售合作伙伴授权您的应用程序时获取此值。有关更多信息,请参阅授权销售 合作伙伴 API 应用程序否。如果您在以下步骤中调用的操作需要销售合作伙伴授权,请包含 refreshToken。所有不是授权操作的操作都需要销售合作伙伴授权。如果包含 refreshToken,则不要包含 withScopes。
带范围LWA 授权授予的范围。您可以指定一个或多个 withScopes 值。价值观:SCOPE_NOTIFICATIONS_API。对于通知 API。SCOPE_MIGRATION_API。对于授权 API。否。如果您在以下步骤中调用的操作是无授权 操作,则包括withScopes。如果包含 withScopes,则不要包含 refreshToken。
端点LWA 身份验证服务器 URI。是的

调用需要销售合作伙伴授权的操作示例:

import com.amazon.SellingPartnerAPIAA.LWAAuthorizationCredentials;

LWAAuthorizationCredentials lwaAuthorizationCredentials = LWAAuthorizationCredentials.builder()
  .clientId("myClientId")
  .clientSecret("myClientSecret")
  .refreshToken("Aztr|...")
  .endpoint("https://api.amazon.com/auth/o2/token")
  .build();

调用无授权操作的示例:

import com.amazon.SellingPartnerAPIAA.LWAAuthorizationCredentials;
import static com.amazon.SellingPartnerAPIAA.ScopeConstants.SCOPE_NOTIFICATIONS_API;
import static com.amazon.SellingPartnerAPIAA.ScopeConstants.SCOPE_MIGRATION_API;

LWAAuthorizationCredentials lwaAuthorizationCredentials =
  LWAAuthorizationCredentials.builder()
  .clientId("myClientId")
  .clientSecret("myClientSecret")
  .withScopes(SCOPE_NOTIFICATIONS_API, SCOPE_MIGRATION_API)
  .endpoint("https://api.amazon.com/auth/o2/token")
  .build();

步骤 4. 创建卖家 API 的实例并调用操作

有了您AWSAuthenticationCredentialsAWSAuthenticationCredentialsProvider以及LWAAuthorizationCredentials配置的情况下,您可以创建SellersApi的实例,并调用运行。

例子:

SellersApi sellersApi = new SellersApi.Builder()
  .awsAuthenticationCredentials(awsAuthenticationCredentials)
  .lwaAuthorizationCredentials(lwaAuthorizationCredentials)
  .awsAuthenticationCredentialsProvider(awsAuthenticationCredentialsProvider)
  .endpoint("https://sellingpartnerapi-na.amazon.com")
  .build();

生成 Java 客户端库

这些说明向您展示了如何在运行 Microsoft Windows 的计算机上使用Swagger 代码生成器为卖家 API 生成 Java 客户端库。对于 macOS 或 Linux 等其他操作系统的用户,该过程是相同的,只是替换了 Windows 特定的语义(例如,C:\)。虽然这些说明是针对卖家 API 的,但您可以修改说明,为销售合作伙伴 API 中的其他 API 制作客户端库。有关每个销售合作伙伴 API 部分的 Swagger 模型,请参阅https://github.com/amzn/ sell-partner-api-models/tree/main/models。

虽然生成的客户端库可以帮助您调用销售合作伙伴 API,但它不包含用于 LWA 令牌交换和身份验证的代码。为此,请参阅步骤 1. 使用 Amazon 访问令牌请求登录步骤 4. 创建并 签署您的请求。或者,对于包含 LWA 令牌交换和身份验证的SDK ,请参阅使用 LWA 令牌交换和身份验证生成 Java SDK

生成 Java 客户端库

  1. 安装Java 8 或更新版本Apache Maven 3.6。或更高版本,以及GNU Wget并使它们在您的 $PATH 中可用。

  2. 转到https://github.com/amzn/ sell- partner- api- models

  3. 克隆存储库以在您的计算机上制作本地副本(如果您还没有这样做的话)。

  4. 打开命令提示符窗口并导航到要下载 Swagger 代码生成器的目录。

  5. 下载最新版本的 Swagger 代码生成器。

    例如:

wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar

swagger-codegen-cli.jar下载到当前目录。

**注意:**您也可以通过将浏览器指向此处从 maven.org 下载:https 😕/repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4 。 13.jar

  1. swagger-codegen-cli.jar复制到对您有意义的目录结构中。对于此示例,我们将其复制到 C:\SwaggerToCL。

  2. 导航到sellers.json销售,合作伙伴API的模型\型号\卖家-API模型本地存储库的副本的文件夹中。

  3. 复制sellers.json到C:\ SwaggerToCL。

  4. 生成客户端库。

    例如:

java -jar C:\SwaggerToCL\swagger-codegen-cli.jar generate -i C:\SwaggerToCL\Sellers.json -l java -o C:\SwaggerToCL\Sellers_JavaCL

客户端库被复制到 C:\SwaggerToCL\Sellers_JavaCL。

生成客户端库后,您可以使用它来帮助您调用销售合作伙伴 API。请参阅连接到销售合作伙伴 API

连接到销售合作伙伴 API

在您的应用程序可以连接到销售合作伙伴 API 之前,您必须先注册它并且它必须得到销售合作伙伴的授权。请参阅注册您的应用程序授权销售合作伙伴 API 应用程序

这些说明向您展示了调用 Selling Partner API 的步骤。有关构建销售合作伙伴 API URI 并向其添加标头的帮助,请参阅生成 Java 客户端库。有关包含用于交换 LWA 令牌和身份验证的代码的更完整的解决方案,请参阅使用 LWA 令牌交换 和身份验证生成 Java SDK

脚步

步骤 1. 使用 Amazon 访问令牌请求登录

步骤 2. 构建销售合作伙伴 API URI

步骤 3. 向 URI 添加标头

步骤 4. 创建并签署您的请求

步骤 1. 使用 Amazon 访问令牌请求登录

Login with Amazon (LWA) 访问令牌授权您的应用程序代表销售合作伙伴执行某些操作。LWA 访问令牌在颁发后一小时到期。

**注意限制操作。**LWA 访问令牌必须包含在对所有操作的调用中,受限操作除外,这些操作返回个人身份信息 (PII)。调用受限操作时,不是包含 LWA 访问令牌,而是包含受限访问令牌 (RDT)。有关获取 RDT 和调用受限操作的信息,请参阅教程:获取 RDT 并调用受限操作令牌 API 用例指南。

要请求 LWA 访问令牌,请https://api.amazon.com/auth/o2/token使用以下参数向 LWA 身份验证服务器 ( )进行安全 HTTP POST :

姓名描述必需的
授权类型请求的访问权限类型。价值观:刷新令牌。用于调用需要销售合作伙伴授权的操作。所有非 授权操作的操作都需要来自销售合作伙伴的授权。指定此值时,请包含refresh_token参数。客户端凭据。使用它来调用无授权操作。指定此值时,请包含scope参数。是的
刷新令牌LWA 刷新令牌。当销售合作伙伴授权您的应用程序时获取此值。有关更多信息,请参阅授权销售合作伙伴 API 应用程序否。包括 refresh_token 以调用需要销售合作伙伴授权的操作。如果包含 refresh_token,则不包含范围。
范围LWA 授权授予的范围。价值观:sellpartnerapi::notifications。对于通知 API。sellpartnerapi::migration。对于授权 API。否。包括调用无授权操作的范围。如果包含范围,则不要包含 refresh_token。
客户编号注册应用程序时获取此值。请参阅查看您的开发人员信息是的
客户秘密注册应用程序时获取此值。请参阅查看您的开发人员信息是的

调用需要销售伙伴授权的操作的示例:

POST /auth/o2/token HTTP/ll
主机: api.amazon.com
内容类型: application/x-www-form-urlencoded;charset=UTF-8 
grant_type = refresh_token 
& refresh_token = Aztr|... 
& client_id = foodev 
& client_secret = Y76SDl2F

调用无授权操作的示例:

POST /auth/o2/token HTTP/ll
主机: api.amazon.com
内容类型: application/x-www-form-urlencoded;charset=UTF-8 
grant_type = client_credentials 
& scope = sellpartnerapi::notifications 
& client_id = foodev 
& client_secret = Y76SDl2F

**提示:**为避免在调用 LWA 授权服务器时出现不受信任的证书颁发机构 (CA) 错误,请务必更新您的信任库,以便您的应用程序信任 LWA 授权服务器。

回复

成功的响应包括以下值。

姓名描述
访问令牌LWA 访问令牌。最大大小:2048 字节。
令牌类型返回的令牌类型。必须是来人
过期日期在LWA 访问令牌失效前的秒数。
刷新令牌您在请求中提交的 LWA 刷新令牌。最大大小:2048 字节。
HTTP/ll 200 OK
 Content-Type: application/json;charset UTF-8 
Cache-Control: no-store 
Pragma:no-cache 
{ " access_token " : " Atza|IQEBLjAsAhRmHjNgHpi0U-Dme37rR6CuUpSREXAMPLE " ,
   " token_type " : " bearer " ,
   " expires_in " : 3600 ,
   " refresh_token " : " Atzr|IQEBLzAtAhRPpMJxdwVz2Nn6f2y-tpJX2DeXEXAMPLE " 
}
  

有关更多信息,请访问Login with Amazon 文档中的授权代码授予页面。

步骤 2. 构建销售合作伙伴 API URI

以下是销售合作伙伴 API URI 的组成部分。

姓名描述例子
HTTP方法HTTP 方法。GET
端点一个销售合作伙伴API端点https://sellingpartnerapi-na.amazon.com
小路销售合作伙伴 API 部分/版本。部分/资源的编号。/fba/inbound/v0/shipments/{shipmentId}/preorder/confirm
请求参数查询参数。?marketplace=ATVPDKIKX0DER
路径参数路径参数。shipmentId1

例如:

PUT https://salespartnerapi-na.amazon.com/fba/inbound/v 0 /shipments/shipmentId 1 /preorder/confirm ? MarketplaceId = ATVPDKIKX0DER & NeedByDate = 2020-10-10

步骤 3. 向 URI 添加标头

将标头添加到您在第 2 步中构造的 URI构造一个销售合作伙伴 API URI。以下是您在向销售合作伙伴 API 发出的请求中包含的 HTTP 标头:

请求头

姓名描述
主持人市场端点。请参阅销售合作伙伴 API 端点
x-amz-access-tokenLWA 访问令牌。请参阅步骤 1. 使用 Amazon 访问令牌请求登录。 **注意限制操作。**如果您正在调用受限操作,请在此处传入受限数据令牌 (RDT) 而不是 LWA 访问令牌。有关获取 RDT 和调用受限操作的信息,请参阅令牌 API 用例指南中的令牌 API 用例指南。
x-amz-日期您请求的日期和时间。
用户代理您的应用程序名称和版本号、平台和编程语言。这些有助于亚马逊诊断和解决您在使用该服务时可能遇到的问题。请参阅在所有 请求中包含 User-Agent 标头

以下是向 Selling Partner API 发出请求的示例,其中包含 URI 和标头但没有签名信息:

PUT /fba/inbound/v0/shipments/shipmentId1/preorder/confirm?MarketplaceId=ATVPDKIKX0DER&NeedByDate=2020-10-10 HTTP/1.1
主机: salespartnerapi-na.amazon.com
用户代理:我的销售工具/2.0(语言=Java /1.8.0.221;
平台= Windows/10) 
x-amz-access-token = Atza|IQEBLjAsAhRmHjNgHpi0U-Dme37rR6CuUpSREXAMPLE 
x-amz-date: 20190430T123600Z

要签署对销售合作伙伴 API 的请求,请参阅步骤 4. 创建并签署您的请求

步骤 4. 创建并签署您的请求

销售合作伙伴 API 使用 AWS签名版本 4 签名流程来验证请求。当您向销售合作伙伴 API 发送 HTTP 请求时,您对请求进行签名,以便亚马逊可以识别谁发送了这些请求。您使用 AWS 访问密钥签署请求,该密钥由访问密钥 ID 和秘密访问密钥组成。Amazon 建议使用AWS Security Token Service (AWS STS)请求临时 AWS 访问密钥来签署您的请求。请参阅创建和配置 IAM 策略和实体以创建承担 IAM 角色的 IAM 用户(附加 AWS STS 策略)。然后,您使用 IAM 角色注册您的应用程序。有关使用 AWS STS 和可帮助您实施的 AWS 开发工具包的更多信息,请参阅在 AWS 文档中请求临时安全凭证

**注意:**只有在手动创建 HTTP 请求时,您才需要学习如何对它们进行签名。当您使用 AWS 开发工具包之一为您计算签名时,开发工具包会自动使用您在配置时指定的 AWS 访问密钥对请求进行签名。使用 SDK 时,您无需学习如何自行签署请求。例如,Java 开发人员可以使用AWS SDK for Java 中的AWS4Signer.java作为计算签名的模型。您可以在AWS GitHub 存储库中找到适用于其他语言的开发工具包。

要创建并签署您的请求,请完成以下操作:

  1. 创建规范请求

    按照AWS 文档中的任务 1:为签名版本 4 创建规范请求中的说明,使用以下指南:

    • 有关创建规范请求时要开始的未签名请求示例,请参阅步骤 3. 向 URI 添加标头
    • 使用 SHA-256 作为哈希算法。
    • 不要在查询参数中放入认证信息。把它放在Authorizationheader 参数中。有关使用Authorizationheader 参数作为身份验证信息的信息,请参阅Authorization header
  2. 创建要签名的字符串

    按照AWS 文档中的任务 2:为签名版本 4 创建要签名的字符串中的说明,使用以下指南:

    • 算法指定值为 AWS4-HMAC-SHA256
    • 要确定凭证范围,请参阅凭证范围
  3. 计算签名

    按照AWS 文档中的任务 3:计算 AWS 签名版本 4 的签名中的说明进行操作。

    **重要提示:**请参阅凭据范围以帮助您完成此步骤。

  4. 添加签名信息

    按照AWS 文档中的任务 4:将签名添加到 HTTP 请求中的说明,使用以下指南:

    • 不要将签名信息添加到查询字符串中。将其添加到Authorizationheader 参数中。
    • 有关创建标头参数的详细信息,请参阅授权标Authorization头。

    以下示例显示了在您使用 Authorization 标头将签名信息添加到请求之后的样子。

PUT /fba/inbound/v0/shipments/shipmentId1/preorder/confirm?MarketplaceId=ATVPDKIKX0DER&NeedByDate=2020-10-10HTTP/1.1
授权: AWS4-HMAC-SHA256 Credential=AKIAIHV6HIXXXXXXXX/20201021/execute- aws4_request,SignedHeaders =主机;用户代理; X-AMZ-接入令牌,
签名= 5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924aEXAMPLE
主机: sellingpartnerapi-na.amazon.com
用户代理:我的销售工具/ 2.0(语言=爪哇/ 1.8.0.221;
平台= Windows/10) 
x-amz-access-token = Atza|IQEBLjAsAhRmHjNgHpi0U-Dme37rR6CuUpSREXAMPLE 
x-amz-date: 20190430T123600Z

凭证范围

凭证范围是您在对销售合作伙伴 API 的请求进行签名时创建的“签名字符串”的组成部分。请参阅创建并签署您的请求

凭证范围由斜杠分隔的维度字符串表示,如下表所示:

尺寸描述例子
日期表示请求的年 (YYYY)、月 (MM) 和日 (DD) 的八位字符串。20190430
AWS 地区您要向其发送请求的地区。请参阅销售合作伙伴 API 端点us-east-1
服务您请求的服务。您可以在端点中找到此值。请参阅销售合作伙伴 API 端点execute-api
终止字符串一个特殊的终止字符串。对于 AWS 签名版本 4,值为 aws4_requestaws4_request

例如:

20190430/us-east-1/execute-api/aws4_request

**重要提示:**您用作凭证范围一部分的日期必须与您的请求日期相匹配,如 x-amz-date 标头中所指定。有关更多信息,请参阅AWS 文档中的签名版本 4中的处理日期

有关更多信息,请参阅步骤 4. 创建并签署您的请求

授权头

Authorization 标头包含请求的签名信息。尽管标头名为“Authorization”,但签名信息用于身份验证。

以下是 Authorization 标头的组件:

成分描述
用于签名的算法整个签名过程中使用的哈希算法。销售合作伙伴 API 需要 SHA-256。您在第 4 步中指定了这一点。创建并签署您的请求
凭据您的 AWS 访问密钥 ID 加上Credential 范围。您在步骤 2. 创建 IAM 用户中获取您的 AWS 访问密钥 ID 。
签名头包含在签名请求中的所有 HTTP 标头的列表。有关示例,请参阅步骤 3. 向 URI 添加标头
签名步骤 4 中计算的签名。创建并签署您的请求

例如:

Authorization: AWS4-HMAC-SHA256 Credential=AKIAIHV6HIXXXXXXX/20201022/us-east-1/execute-api/aws4_request, SignedHeaders=host;user-agent;x-amz-access-token;x-amz-date, Signature=5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924aEXAMPLE

有关更多信息,请参阅步骤 4. 创建并签署您的请求

响应格式

为响应 HTTP 请求,销售合作伙伴 API 会返回响应标头和 JSON 响应消息。

响应头

姓名描述
内容长度标准 HTTP 响应标头。
内容类型标准 HTTP 响应标头。
日期标准 HTTP 响应标头。
x-amzn-RequestId请求标识符。如果您联系我们寻求支持,请包括此内容。

成功响应

如果您的请求成功,Selling Partner API 将返回请求的数据。以下是成功响应的示例:

HTTP/ 1.1  200 OK
 Content-Length: 368 
Content-Type: application/json 
Date: Thu, 01 Jun 2020 22:23:31 GMT 
x-amzn-RequestId: 6875f61f-6aa1-11e8-98c6-9bExample 
{ " payload " : {
     “ ConfirmedNeedByDate ”:“ 2020-04-23 ”,
     “ ConfirmedFulfillableDate ”:“ 2020-04-23 ” 
  } 
}
  

错误响应

如果您的请求不成功,则销售合作伙伴 API 会返回错误响应。以下是错误响应中响应消息的元素:

响应消息

元素描述必需的
代码HTTP 状态代码。是的
信息错误情况的说明。是的
细节链接到其他信息。

以下是错误响应的示例:

HTTP/ 1.1  400错误请求
内容长度: 117
内容类型: application/json
日期: 2020 年 6 月 1日星期五 21:48:02 GMT 
x-amzn-ErrorType: ValidationException 
x-amzn-RequestId: a8c8d99a-6ab5-11e8- b0f8-19363980175b 
{ “错误”:[ 
    { “消息”:“拒绝访问请求的资源。”,
       “代码”:“未经授权”,
       “详细信息”:”
  
      请求标头中缺少访问令牌。" 
    } 
  ] 
}

免授权操作

仅适用于卖家申请。

无授权操作是无需销售合作伙伴的明确授权即可调用的操作。这意味着当您在调用无授权操作之前请求使用 Amazon 访问令牌登录时,您不需要提供刷新令牌。相反,您可以使用scope参数来提供 LWA 授权授予的范围。如果您使用生成的 Java SDK(请参阅使用生成的 Java SDK连接到销售合作伙伴 API)来调用无授权操作,请在配置 LWA 凭证时使用withScopes参数为 LWA 授权授权设置一个或多个范围。

有关 Selling Partner API 中的无授权操作,请参阅下表。

免授权操作

操作名称HTTP 方法和路径
创建目的地POST /notifications/v1/destinations
删除目的地删除 /notifications/v1/destinations/{destinationId}
deleteSubscriptionById删除 /notifications/v2/subscriptions/{notificationType}/{subscriptionId}
获取目的地GET /notifications/v1/destinations/{destinationId}
获取目的地获取 /notifications/v1/destinations
getSubscriptionByIdGET /notifications/v1/subscriptions/{notificationType}/{subscriptionId}
获取授权码获取 /authorization/v1/authorizationCode

在所有请求中包含 User-Agent 标头

User-Agent 标头标识您的应用程序、其版本号以及您使用的平台和编程语言。您必须在提交给销售合作伙伴 API 的每个请求中包含一个 User-Agent 标头。这样做有助于亚马逊更有效地诊断和解决问题,从而帮助改善您使用该服务的体验。

要创建 User-Agent 标头,请以应用程序名称开头,后跟正斜杠,后跟应用程序版本,后跟空格、左括号、语言名称/值对和右括号. Language 参数是必需的属性,但您可以添加以分号分隔的其他属性。

以下伪代码说明了最低限度可接受的 User-Agent 标头:

AppId/AppVersionId (Language=LanguageNameAndOptionallyVersion)

以下是应用程序开发人员可能使用的 User-Agent 标头示例:

My Selling Tool/2.0 (Language=Java/1.8.0.221; Platform=Windows/10)

如果您是通过自己的 IT 部门进行集成的大型销售合作伙伴,请考虑创建一个包含 Host 属性的 User-Agent 标头,如下例所示。这可以帮助亚马逊支持工程师更有效地为您排查问题。

MyCompanyName/build1611 (Language=Perl; Host=jane.desktop.example.com)

要指定其他属性,请使用格式 AttributeName=Value;,用分号分隔每个名称/值对。如果您需要使用反斜杠 (),请用另一个反斜杠 (\) 引用它。类似地,在应用程序名称 (/) 中引用一个正斜杠,在应用程序版本中引用一个左括号 ((),在属性名称中引用一个等号 (=),以及两个右括号 ()),以及属性值中的分号 (😉。

因为 User-Agent 头是在每个请求中传输的,所以限制头的大小是一个很好的做法。如果用户代理标头超过 500 个字符,则销售合作伙伴 API 将拒绝该标头。

混合销售合作伙伴 API 应用程序

仅适用于卖家申请

混合销售合作伙伴 API 应用程序是一种可以调用销售合作伙伴 API 和亚马逊商城网络服务 (Amazon MWS) 的应用程序。当您的解决方案需要两种服务的功能时,请使用混合应用程序。当销售合作伙伴授权您的混合销售合作伙伴 API 应用程序时,他们 (1) 授权您的亚马逊 MWS 开发人员 ID 代表他们调用亚马逊 MWS,以及 (2) 授权应用程序调用他们的销售合作伙伴 API代表。

Amazon 将混合应用程序视为单个应用程序。例如,当您将混合应用程序发布到亚马逊合作伙伴网络时,您将其作为单个应用程序进行管理。

创建混合销售合作伙伴 API 应用程序

创建混合应用程序

  1. 将您的亚马逊 MWS 应用程序发布到亚马逊合作伙伴网络。有关发布应用程序的信息,请参阅亚马逊 MWS 文档中的亚马逊合作伙伴网络上架指南

  2. 使用您用于注册为开发人员的凭据登录卖家中心。

  3. 合作伙伴网络菜单中,单击开发应用程序

    将出现开发人员中心页面。

  4. 在您的亚马逊 MWS 应用程序旁边,单击编辑应用程序按钮。

  5. 按照说明注册您的应用程序。

创建混合应用程序后,您可以:

  1. 设置和测试 OAuth 授权工作流。有关更多信息,请参阅授权销售合作伙伴 API 应用程序
  2. 将现有的亚马逊 MWS 授权迁移到您的混合销售合作伙伴 API 应用程序。有关更多信息,请参阅授权 API 用例指南

销售合作伙伴 API 沙箱

销售合作伙伴 API 提供了一个沙盒环境,允许您在不影响生产数据或触发实际事件的情况下测试您的应用程序。对 Selling Partner API 进行沙箱调用与进行生产调用相同,除非您将调用定向到Selling Partner API 沙箱端点。调用沙箱端点会返回所有销售合作伙伴 API 的静态模拟响应。您可以在要调用的 API 的 Swagger 模型 JSON 文件中引用这些模拟响应。有关更多信息,请参阅如何对销售合作伙伴 API 进行沙箱调用

销售合作伙伴 API 沙箱的工作方式与许多模拟框架类似,因为它使用模式匹配在指定参数存在时返回指定响应。当开发人员发送包含指定参数的请求时,他们会收到在以下对象中定义的响应:

静态沙箱 JSON 对象

"x-amzn-api-sandbox":
{
  "static": [
    {
      "request":
      {
        "parameters": 
        {
          …
        }
      },
      "response":
      {
        …
      }
    }
  ]
}

请注意,虽然这些对象将包含匹配模拟响应所需的参数,但它们不一定包含成功响应所需的所有参数。要获得成功的响应,请确保您的请求有效并包含相应 Swagger 模型中定义的所有必需参数

**重要提示:**沙箱用于测试功能,而不是可扩展性测试。对沙箱端点的调用受以下限制:速率= 每秒 5 个请求;burst = 15。有关限制的更多信息,请参阅销售合作伙伴 API 文档中的“使用计划和速率限制”。

如何对销售合作伙伴 API 进行沙箱调用

步骤 1. 检查请求参数的 JSON 文件

  1. 转到https://github.com/amzn/ sell- partner- api- models/tree/main/models

  2. 打开要对其进行沙箱调用的 API 的文件夹。

  3. 单击所需 API 的 Swagger 模型 JSON 文件。

    将显示 JSON 代码。

  4. 在代码中搜索x-amzn-api-sandbox包含"static"数组的对象。

静态沙箱JSON对象将包含静态沙箱呼叫在它们出现的API操作请求和响应的例子。如果请求示例包含参数,请在以下步骤中使用它们。

步骤 2. 对 API 进行沙箱调用

以与进行生产调用相同的方式对 API 进行沙箱调用,但存在以下差异:

  1. 包括步骤 1 中的参数。检查 JSON 文件以获取调用中的请求参数。如果 API 需要除这些参数之外的参数,请确保在您的调用中也包含这些必需的参数。

  2. 将您的呼叫定向到Selling Partner API 沙箱端点之一

    您应该收到与步骤 1 中静态沙箱 JSON 对象中包含的负载对象匹配的响应。

销售合作伙伴 API 沙盒端点

销售合作伙伴 API 具有适用于北美、欧洲和远东销售区域的沙盒端点。

销售地区端点AWS 区域
北美(加拿大、美国、墨西哥和巴西市场)https://sandbox.sellingpartnerapi-na.amazon.comus-east-1
欧洲(西班牙、英国、法国、荷兰、德国、意大利、瑞典、波兰、埃及、土耳其、阿拉伯联合酋长国和印度市场)https://sandbox.sellingpartnerapi-eu.amazon.comeu-west-1
远东(新加坡、澳大利亚和日本市场)https://sandbox.sellingpartnerapi-fe.amazon.comus-west-2

销售合作伙伴 API 与亚马逊商城网络服务有何不同?

尽管销售合作伙伴 API 和亚马逊商城网络服务 (Amazon MWS) 都是支持以编程方式访问客户数据的网络服务,但仍存在显着差异。以下是销售合作伙伴 API 和亚马逊 MWS 之间的一些主要区别:

  • 使用销售合作伙伴 API,您可以为卖家和供应商开发应用程序。
  • 销售合作伙伴 API 将数据视为可通过标准 HTTP 方法访问和修改的 REST 兼容资源。相比之下,亚马逊 MWS 使用特定于亚马逊 MWS 的操作公开数据。
  • 销售合作伙伴 API 授权利用 LWA,亚马逊的 OAuth 2.0 实施。该模型无需按照亚马逊 MWS 的要求手动交换身份验证令牌。请参阅授权销售合作伙伴 API 应用程序
  • 借助亚马逊 MWS,销售合作伙伴可以授权开发人员。通过销售合作伙伴 API,销售合作伙伴可以授权应用程序。使用销售合作伙伴 API,开发人员可以创建多个应用程序,这些应用程序需要对销售合作伙伴数据进行不同级别的访问。
  • 销售合作伙伴 API 提供比亚马逊 MWS 更精细的数据访问控制。开发者可以只请求访问他们需要的数据,销售合作伙伴可以在 API 部分、操作或数据资源级别授予权限。
  • 销售合作伙伴 API 让您可以使用 AWS Identity and Access Management (IAM) 直接获取和管理您自己的身份验证凭证。使用亚马逊 MWS,您可以通过特殊的注册工作流程接收亚马逊提供的身份验证凭证,并通过与亚马逊 MWS 支持部门建立联系来获取新凭证。请参阅步骤 2. 创建 IAM 用户
  • 销售合作伙伴 API 使用 AWS 签名版本 4 进行身份验证。亚马逊 MWS 使用签名版本 2。请参阅步骤 4. 创建并签署您的请求

关于供应商组

仅适用于供应商应用程序

当您授权您的销售合作伙伴 API 应用程序访问您的数据时,您将授予对与您的供应商中心帐户的登录凭据关联的供应商组的访问权限。通过扩展,您授予访问供应商组中存在的所有供应商代码的权限。因此,为您的销售合作伙伴 API 集成使用正确的供应商中心凭据和供应商组非常重要。

使用单个供应商组

如果您使用单个供应商组来管理所有供应商代码,您可以授权应用程序访问该供应商组中的数据。为此,请使用与供应商组关联的供应商中心帐户的凭据注册为开发人员

要确保您的供应商组包含您希望应用程序访问的所有供应商代码,请检查您的供应商组中的供应商代码。如果需要,您可以随时在供应商组中添加或删除供应商代码。

检查供应商组中的供应商代码

  1. 前往您的市场的供应商中心。请参阅供应商中心 URL以获取按市场划分的 URL 列表。
  2. 使用 Vendor Central 帐户的凭据登录您希望应用程序访问的供应商组。
  3. 在“**设置”**菜单上,单击“联系人”
  4. 查看联系人页面以确定您希望应用程序访问的供应商代码是否存在。

在供应商组中添加或删除供应商代码

  1. 前往您的市场的供应商中心。请参阅供应商中心 URL以获取按市场划分的 URL 列表。
  2. 使用供应商中心帐户的凭据登录您要为其添加或删除供应商代码的供应商组。
  3. 单击页面顶部的支持链接。
  4. 支持页面上,单击联系我们按钮。
  5. 联系亚马逊支持页面上,点击设置和账户管理,然后选择账户设置
  6. 设置和帐户管理框中的底部,单击仍然需要帮助?.
  7. 按照说明联系亚马逊支持。

使用多个供应商组

也许您使用多个供应商组来管理您的供应商代码。如果是这样,对于销售合作伙伴 API 集成,我们建议您 1) 创建一个包含您需要的所有供应商代码的新供应商组,或 2) 选择现有供应商组并添加您需要的供应商代码。您可以随时在供应商组中添加或删除供应商代码。但是,一旦您注册为开发人员,就无法更改与该开发人员关联的供应商组。如果您想为不同的业务维护单独的 API 集成,您可以。为此,请为您要访问的每个供应商组分别注册为开发人员。然后,您可以与每个注册的开发人员开发单独的 API 集成。

创建新的供应商组

  1. 前往您的市场的供应商中心。请参阅供应商中心 URL以获取按市场划分的 URL 列表。
  2. 使用 Vendor Central 帐户的凭据登录您希望应用程序访问的供应商组。
  3. 单击页面顶部的支持链接。
  4. 支持页面上,单击联系我们按钮。
  5. 联系亚马逊支持页面上,点击设置和账户管理,然后选择账户设置
  6. 设置和帐户管理框中的底部,单击仍然需要帮助?.
  7. 按照说明联系亚马逊支持。

供应商中心 URL

仅适用于供应商应用程序

以下是各个市场的供应商中心 URL。

北美

市场供应商中心 URL
加拿大https://vendorcentral.amazon.ca
我们https://vendorcentral.amazon.com
墨西哥https://vendorcentral.amazon.com.mx
巴西https://vendorcentral.amazon.com.br

欧洲

市场供应商中心 URL
西班牙https://vendorcentral.amazon.es
英国https://vendorcentral.amazon.co.uk
法国https://vendorcentral.amazon.fr
荷兰https://vendorcentral.amazon.nl
德国https://vendorcentral.amazon.de
意大利https://vendorcentral.amazon.it
瑞典https://vendorcentral.amazon.se
波兰https://vendorcentral.amazon.pl
埃及https://vendorcentral.amazon.me
火鸡https://vendorcentral.amazon.com.tr
阿联酋https://vendorcentral.amazon.me
印度https://www.vendorcentral.in

远东

市场供应商中心 URL
新加坡https://vendorcentral.amazon.com.sg
澳大利亚https://vendorcentral.amazon.com.au
日本https://vendorcentral.amazon.co.jp

卖家中心 URL

仅适用于卖家申请

以下是各个市场的卖家中心 URL。

北美

市场卖家中心网址
加拿大https://sellercentral.amazon.ca
我们https://sellercentral.amazon.com
墨西哥https://sellercentral.amazon.com.mx
巴西https://sellercentral.amazon.com.br

欧洲

市场卖家中心网址
西班牙https://sellercentral-europe.amazon.com
英国https://sellercentral-europe.amazon.com
法国https://sellercentral-europe.amazon.com
荷兰https://sellercentral.amazon.nl
德国https://sellercentral-europe.amazon.com
意大利https://sellercentral-europe.amazon.com
瑞典https://sellercentral.amazon.se
波兰https://sellercentral.amazon.pl
火鸡https://sellercentral.amazon.com.tr
阿联酋https://sellercentral.amazon.ae
印度https://sellercentral.amazon.in

远东

市场卖家中心网址
新加坡https://sellercentral.amazon.sg
澳大利亚https://sellercentral.amazon.com.au
日本https://sellercentral.amazon.co.jp
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值