主页文档代码示例API 参考公告模型发行说明常见问题GitHub视频
开发者中心API 状态支持
文档
开发者中心API 状态支持

销售伙伴应用商店授权工作流程

使用销售伙伴应用商店对应用程序进行授权。

销售合作伙伴可以使用销售合作伙伴应用商店发现并连接与 SP-API 集成的第三方应用程序。销售合作伙伴可以使用这些应用程序更有效地管理其亚马逊销售业务。要使用来自销售合作伙伴应用商店的应用程序,卖方合作伙伴必须授权该应用程序访问其亚马逊销售合作伙伴账户信息。应用程序访问权限是通过 OAuth 工作流程授予的,该工作流程涉及以下步骤:

第 1 步:从销售伙伴应用商店启动授权

  1. 登录卖家平台并导航至销售伙伴应用商店。
  2. 打开 Detail 您的应用程序页面。
  3. 选择 Authorize Now

第 2 步:同意授权您的应用程序

  1. 查看并接受您的应用程序请求的数据访问权限。

  2. 选择 Login to < your application name > now

    亚马逊将您的登录 URI(您在应用程序注册时提供的)加载到浏览器中,并添加以下查询参数:

    参数描述
    amazon_callback_uri用于将浏览器重定向到亚马逊的 URI。
    amazon_state亚马逊生成的状态值,用于防范跨站点请求伪造攻击。
    selling_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. 您的应用程序将亚马逊回调 URI(在上一步中由亚马逊传递)加载到浏览器中,并添加以下参数:

参数描述
redirect_uri用于将浏览器重定向到您的应用程序的 URI。这必须是您在注册您的应用程序时指定的 OAuth 重定向 URI。如果您不包括 redirect_uri 参数,则默认为您在注册应用程序时指定的第一个 OAuth 重定向 URI。

可选

amazon_state亚马逊在上一步中传递的 amazon_state 值。
state

您的应用程序生成的状态值。您的应用程序使用此值来维护此请求和响应之间的状态,从而帮助防范跨站点请求伪造攻击。

重要说明:由于 OAuth 信息是通过 URI 查询参数传递的,因此我们强烈建议您执行以下操作:(1) 确保状态令牌对您的用户属于短期令牌,并且具有可验证的唯一性,(2) 设置 Referrer-Policy: no-referrer HTTP 标头,防止将敏感信息泄露到您的网站链接到的网站。有关跨站点请求伪造和计算状态参数的详细信息,请参阅跨站点请求伪造

📘

注意

如果您正在测试工作流程,则还必须包括 version=beta 参数,用于确保工作流程对应用程序进行授权 Draft 州。如果您不包含该参数,则工作流程会授权在销售合作伙伴应用商店上发布的应用程序。

例如:

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 加载到浏览器中,并添加以下查询参数:

    参数描述
    state您在上一步中传递的状态值。
    selling_partner_id授权您应用程序的销售伙伴的标识符。
    spapi_oauth_code您用来交换 LWA 刷新令牌的“使用亚马逊账户登录”(LWA) 授权码。有关详细信息,请参阅第 5 步:您的应用程序用 LWA 授权码交换 LWA 刷新令牌
    注意:LWA 授权码将在五分钟后过期。您必须在过期之前将它换成 LWA 刷新令牌。

    例如:

    https://client-example.com?state=state-example&selling_partner_id=sellingpartneridexample&spapi_oauth_code=spapioauthcodeexample
  2. 您的应用程序可以验证状态值。

  3. 您的应用程序会保存 selling_partner_idspapi_oauth_code 价值观。

  4. 您网站的登录页面启动。

🚧

重要说明

开发者应注意,如果注册过程花费的时间超过 10 分钟,亚马逊回调 URI 和状态将过期,从而中断工作流程。如果注册后未检测到亚马逊回调 URI 的重定向,则开发者应让销售合作伙伴使用网站工作流程启动 OAuth 流程构建。或者,销售伙伴可以返回应用程序的销售合作伙伴应用商店详情页面,并重新启动工作流程。

第 5 步:将 LWA 授权码换成 LWA 刷新令牌

提示

注意:您可以选择使用适用于 JavaScript 的“使用亚马逊账户登录”SDK 来帮助将 LWA 授权码换成 LWA 刷新令牌。有关详细信息,请参阅“使用亚马逊账户登录”文档:

  1. 您的应用程序调用“使用亚马逊账户登录 (LWA)”授权服务器 (https://api.amazon.com/auth/o2/token),使用 LWA 授权码交换 LWA 刷新令牌。调用必须包含以下查询参数。

    参数描述
    grant_type请求的访问权限的类型。必须是 authorization_code
    code您在第 4 步:亚马逊向您发送授权信息中收到的 LWA 授权码。
    redirect_uri您的应用程序的重定向 URI。
    client_id您的 LWA 凭证的一部分。要获取此值,请参阅查看您的应用程序信息和凭证
    client_secret您的 LWA 凭证的一部分。要获取此值,请参阅查看您的应用程序信息和凭证

    例如:

    POST /auth/o2/token HTTP/l.l Host: api.amazon.com Content-Type: application/x-www-form-urlencoded;charset=UTF-8 grant_type=authorization_code&code=SplxlOexamplebYS6WxSbIA&client_id=foodev&client_secret=Y76SDl2F
  2. LWA 授权服务器返回 LWA 刷新令牌。响应采用 JSON 格式并包括以下元素:

    参数描述
    access_token授权您的应用程序代表销售伙伴采取某些操作的令牌。有关详细信息,请参阅连接到销售伙伴 API
    token_type返回的令牌的类型(应为 bearer)。
    expires_in访问令牌失效之前的秒数。
    refresh_token可以交换为新访问令牌的长期令牌。有关详细信息,请参阅连接到销售伙伴 API
    HTTP/l.l 200 OK Content-Type: application/json; charset UTF-8 Cache - Control: no-store Pragma: no-cache { "access_token": "Atza|IQEBLjAsAexampleHpi0U-Dme37rR6CuUpSR", "token_type": "bearer", "expires_in": 3600, "refresh_token": "Atzr|IQEBLzAtAhexamplewVz2Nn6f2y-tpJX2DeX" }
  3. 您的应用程序会保存 refresh_token 值。

  4. 浏览器会打开一个页面,指示使用应用程序的后续步骤。

    📘

    注意

    LWA 刷新令牌是您交换 LWA 访问令牌的长期令牌。通过此令牌交换获得的访问令牌必须包括在对所有销售伙伴 API 操作的调用中,但受限操作免授权操作除外,这两种操作使用的授权模式有些不同。访问令牌发出后,有效期为一小时。相同的访问令牌可用于多个 API 调用,直到它过期。

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

第 6 步。(可选)测试您的授权工作流程

我们建议您测试您的授权工作流程,以确保您的应用程序可以与亚马逊交换参数并接收授权信息。您必须在应用程序启动时测试您的授权工作流程 Draft 状态。

  1. 确保您的应用程序已启用 Draft 状态。

  2. 为测试目的构造一个或多个 OAuth 授权 URI。包括 version=beta OAuth URI 中的参数,表示该工作流程用于授权应用程序 Draft 状态。有关更多信息,请参阅 构建 OAuth 授权 URI

    您可以通过导航到现有的 OAuth 授权 URI 来启动测试工作流程,而不用从第 1 步:销售伙伴从销售伙伴应用商店启动授权开始。

    提示

    如果您正在与值得信赖的销售合作伙伴一起测试您的工作流程,请确保他们拥有与其运营区域相对应的 OAuth 授权 URI。

    如果您的测试授权工作流程成功,则可以将其转换为生产工作流程。

第 7 步。(可选)将您的测试授权工作流程转换为生产工作流程

  1. 在销售合作伙伴应用商店中列出您的应用程序。此操作会自动将您的应用程序更改为 DraftPublished

  2. 更新您的工作流程以删除 version=beta 亚马逊回调 URI 的参数。移除该参数可确保任何卖家合作伙伴都可以授权您发布的应用程序 第 1 步

工作流程图

下图概述了销售合作伙伴应用商店和网站 OAuth 工作流程。

The Selling Partner OAuth 2.0 workflows diagram for seller, vendor, and developer integration.


此页面对您有帮助吗?