对接亚马逊 SP-API(Amazon Selling Partner API) 第二章:授权

目录

1. 授权销售伙伴 API 应用程序

1.1. Marketplace Appstore workflow

1.2. Website workflow(推荐使用)

1.3. 自行授权(仅限店铺本身为开发者)

2. 全局变量(后续将会使用绿色加粗字体表示)

AMAZON_ENDPOINT

APPLICATION_ID

OAUTH_LOGIN_URI & OAUTH_REDIRECT_URI

​CLIENT_ID & CLIENT_SECRET

3. OAuth authorization URIs

4. Marketplace Appstore workflow

Step 1. The seller initiates authorization from the Marketplace Appstore

Step 2. The seller consents to authorize your application

Step 3. The seller signs into your website

Step 4. Amazon sends you the authorization information

BUG 合集

Step 5. Your application exchanges the LWA authorization code for an LWA refresh token

BUG 合集

5. Website workflow

Step 0. Set up an "Authorize" button

Step 1. The seller initiates authorization from your website

Step 2. The seller consents to authorize the application

Step 3. Amazon sends you the authorization information

Step 4. Your application exchanges the LWA authorization code for a LWA refresh token

6. Self authorization

6.1. 应用商店 --> 开发应用程序

6.2. 生成刷新令牌

总结

对接亚马逊 SP-API(Selling Partner API) 第三章:对接 SDK


1. 授权销售伙伴 API 应用程序

销售伙伴可以使用下列其中一个工作流程授权您的应用程序:

1.1. Marketplace Appstore workflow

从商城应用商店详情页面启动的 OAuth 授权工作流程。

1.2. Website workflow(推荐使用)

从您自己的网站启动的 OAuth 授权工作流程。

1.3. 自行授权(仅限店铺本身为开发者)

https://github.com/amzn/selling-partner-api-docs/blob/main/guides/en-US/developer-guide/SellingPartnerApiDeveloperGuide.md#self-authorization

获取 Refresh token

2. 全局变量(后续将会使用绿色加粗字体表示)

AMAZON_ENDPOINT

Selling regionEndpoint
North America (Canada, US, Mexico, and Brazil marketplaces)Amazon
Europe (Spain, UK, France, Netherlands, Germany, Italy, Sweden, Poland, Turkey, U.A.E, and India marketplaces)https://sellercentral-europe.amazon.com

Far East (Singapore, Australia, and Japan marketplaces)

日本:Amazon

备注:其他区域我没帐号了。不能提供准确的 endpoint。

这个应该跟亚马逊后台的域名是一致的。

 Seller Central URLs

APPLICATION_ID

OAUTH_LOGIN_URI & OAUTH_REDIRECT_URI

关于这两个我有句MMP一定要讲!这两个是可以随便填,但是要保证域名是一样的。不能是下图。(这个地方花了我两天时间!!!)并且是https开头的。


CLIENT_ID & CLIENT_SECRET

3. OAuth authorization URIs

构建授权链接,让各个店铺去登录这个链接完成授权。

链接结构如下:

{AMAZON_ENDPOINT}/apps/authorize/consent?{APPLICATION_ID}

Example:

Amazon Sign-In

注意要点

3.1. 每个亚马逊区域都需要一个单独的授权链接。
3.2. 如果是测试,链接需要加上 version=beta,且应用程序必须为草稿状态。

4. Marketplace Appstore workflow

Step 1. The seller initiates authorization from the Marketplace Appstore

这个我没找到【Authorize Now】按钮在哪里和有什么作用.. --> 答案见评论。

Step 2. The seller consents to authorize your application

Request

 3. OAuth authorization URIs 拼接的链接

授权页面如下:

Response

{OAUTH_LOGIN_URI}/?amazon_callback_uri={amazon_callback_uri}&amazon_state={amazon_state}&version=beta&selling_partner_id={selling_partner_id}

参数描述
amazon_callback_uri用于将浏览器重定向到亚马逊的 URI。
amazon_state亚马逊生成的状态值,用于防范跨站点请求伪造攻击。
selling_partner_id授权您的应用程序的卖家的卖家编号。

Step 3. The seller signs into your website

Step 4. Amazon sends you the authorization information

step 3 和 step 4 似乎是一套的,分别解释了请求和相应的格式。

Request

{amazon_callback_uri}?redirect_uri={OAUTH_REDIRECT_URI}&amazon_state={amazon_state}&state={随机码}&version=beta

Response

{OAUTH_REDIRECT_URI}?spapi_oauth_code={spapi_oauth_code}&state={你传的state是什么,接收的就是什么}&selling_partner_id={selling_partner_id}

参数描述
state您在上一步中传递的状态值。
selling_partner_id授权您的应用程序的卖家的卖家编号。
mws_auth_token不一定会有。您在为调用亚马逊商城网络服务创建查询字符串时使用的 MWSAuthToken 值。只有当卖家授权混合销售伙伴 API 应用程序时,才会传递 mws_auth_token 参数。
spapi_oauth_code您用来交换 LWA 刷新令牌的“使用亚马逊账户登录”(LWA) 授权码。

BUG 合集

1. 每次请求的时候都会一闪而过这个页面,然后才报错。我一度以为是我手速不够快,超过了15秒去点击 click reconfirm 的链接导致授权失败。

实际上,这个页面仅表示授权进行到这一步,并且卡在授权这个地方而已。

 

下面两个 Error Code 的问题,我是通过文档的 Issues 得出的解决方案,仅供参考。

issues 里面提到的 case,如果不是自己开的是无法查看的。(不用费心思找了)

2. MD5100

这个似乎是 OAUTH_LOGIN_URI 和 OAUTH_REDIRECT_URI  填的时候,LOGIN的域名不在 REDIRECT中才出现的。

3. MD9999

BUG 可能原因:application 的 IAM RAM 填成用户的。

这个似乎是你已经激活了校验,但是实际上并没有得到相应的返回值。

 

至于判断激活了校验的依据是:可以看到 App & Service --> manage your apps 里面的状态变成了 active。

官方解释

4. MD1000

官方解释

Step 5. Your application exchanges the LWA authorization code for an LWA refresh token

cURL

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={spapi_oauth_code}&client_id={CLIENT_ID}&client_secret={CLIENT_SECRET}
参数描述
grant_type请求的访问授权类型。必须是 authorization_code
code您在Step 4. Amazon sends you the authorization information中收到的 LWA 授权码。即 {spapi_oauth_code}
redirect_uri您的应用程序的重定向 URI。(可选
client_id{CLIENT_ID}
client_secret{CLIENT_SECRET}

Response

{
  "access_token": "Atza|qwert",
  "token_type": "bearer",
  "expires_in": 3600,
  "refresh_token": "Atzr|asdfg"
}
参数描述
access_token授权您的应用程序代表卖家采取某些操作的令牌。
token_type返回的令牌类型。应该是 bearer。
expires_in访问令牌失效之前的秒数。(1小时有效期
refresh_token必须保存)可以交换为新访问令牌的长期令牌。(access_token 过期后,可以刷新出新的 access_token

BUG 合集

1. The request has an invalid grant parameter : code

大概率是code 过期了。好像是 5 分钟的有效期?

5. Website workflow

Step 0. Set up an "Authorize" button

按区域(三个)的不同添加按钮。重定向的链接是 3. OAuth authorization URIs

Step 1. The seller initiates authorization from your website

Step 2. The seller consents to authorize the application

Step 3. Amazon sends you the authorization information

Step 1-3 解释

Request

 3. OAuth authorization URIs 拼接的链接并且添加 state 状态值(随机生成即可)

Reponse

{OAUTH_REDIRECT_URI}?spapi_oauth_code={spapi_oauth_code}&state={你传的state是什么,接收的就是什么}&selling_partner_id={selling_partner_id}

Step 4. Your application exchanges the LWA authorization code for a LWA refresh token

同 Marketplace Appstore workflow 的 Step 5。

6. Self authorization

6.1. 应用商店 --> 开发应用程序

6.2. 生成刷新令牌

每次点击按钮都会生成一个的令牌。

总结

1. 获取 refresh_token 的方式有三种。店铺授权、网站授权和自行授权。自行授权需要店铺本身是开发者。

2. 对比店铺授权和网站授权。

网站授权方式会简单一点。相对店铺授权来说少一次操作。后续对多个帐号的授权情况,网站授权会方便很多。

两种方式授权的实际效果暂时不知道有什么区别。

3. 流程设计:使用【网站授权】

3.1. LWA Application OAUTH_REDIRECT_URI 设计成自己的接口。

3.2. 让运营将店铺的 seller id(selling_partner_id) 维护到系统中。并自动拼接 OAuth authorization URIs。

3.3. 在 OAUTH_REDIRECT_URI 接口中根据 spapi_oauth_code 直接请求 refresh_token。并根据 selling_partner_id 将 refresh_token 更新到相应的记录中。

3.4. 这样运营就只需要到亚马逊后台登录帐号即可完成授权操作。

对接亚马逊 SP-API(Amazon Selling Partner API) 第三章:对接 SDK

1、亚马逊授权直接进后台操作授权即可【不同账号请在账号对应的电脑和网络上进行账号授权操作】 2323.jpg 2、点击左边About Amazon MWS,然后sign up for mws 002亚马逊点击授权.png 3、登陆amazon帐号 未命名.jpg 4、将亚马逊授权给开发者(ECPP) 未命名1.jpg Developer's Name(开发者名称)可自定义;account number(开发者帐号)根据相应站点填写: US:9324-7604-8104 UK:2187-1416-6381 FR:2187-1416-6381 DE:2187-1416-6381 IT:2187-1416-6381 ES:2187-1416-6381 CA:9324-7604-8104 CN:0984-0933-7104 JP: 9105-5609-8614 MX:9324-7604-8104 AU: 9105-5609-8614 IN:4899-1932-3920 BR:(联系客服) 5、同意授权 未命名2.jpg 6、授权成功 20150331015738.jpg 7、将相关信息填入ECPP系统 亚马逊授权.png 系统-销售账号-Amazon-创建,选择对应的站点、Amazon Account可以自定义、停用选NO、MCID为SellerID、MKID为Marketplace ID(与下方提供的数据确认一下)、Auth Token为Authorisation Token、最后两项可以不填(如果AM上选授权给自己使用,这两项使用自己的开发者账号授权对接,不填的话默认使用ECPP的开发者账号去对接)。【如果没有Auth Token,请在销售账户-亚马逊账户界面,右键-此框架-重新载入,更新页面即可】 备注:MKID填写下列提供的数据 US:ATVPDKIKX0DER CA:A2EUQ1WTGCTBG2 UK:A1F83G8C2ARO7P DE:A1PA6795UKMFR9 FR:A13V1IB3VIYZZH IT:APJ6JRA9NG5V4 ES:A1RKKUPIHCS9HS JP:A1VC38T7YXB528 CN:AAHKV2X7AFYLW MX:A1AM78C64UM0Y8 AU:A39IBJ37TRP1C6 IN:A21TJRUUN4KGV BR:A2Q3Y263D00KWC 8、用户管理编辑权限勾选帐号
评论 85
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值