在C#中对接Amazon SP-API:如何获取Refresh Token?
解决Amazon SP-API调用中“Unsuccessful LWA token exchange”错误及Refresh Token获取问题
核心问题定位
你遇到的Error getting LWA Access Token和内部异常Unsuccessful LWA token exchange,根源是使用了错误的Refresh Token——Amazon界面里的“SP-API-Token”并非LWA(Login With Amazon)所需的Refresh Token,必须通过正规LWA授权流程获取。
正确获取LWA Refresh Token的步骤
1. 获取LWA授权码(Authorization Code)
构造授权URL,替换以下参数后用卖家账号打开:
client_id:你的SP-API应用的Client ID(在开发者控制台应用详情页获取)scope:对应接口权限,比如调用订单接口填sellingpartnerapi::ordersredirect_uri:必须和开发者控制台配置的重定向URI完全一致
示例URL结构:
https://sellercentral.amazon.com/apps/authorize/consent?client_id=YOUR_CLIENT_ID&scope=sellingpartnerapi::orders&response_type=code&redirect_uri=YOUR_REDIRECT_URI
授权成功后,跳转的URL中会携带code参数,这就是10分钟内有效的授权码。
2. 用授权码兑换Refresh Token
调用LWA的token接口,请求方式为POST,参数采用x-www-form-urlencoded格式:
grant_type:固定为authorization_codeclient_id:同上client_secret:你的SP-API应用的Client Secretcode:刚拿到的授权码redirect_uri:和配置的重定向URI一致
接口返回结果中,refresh_token字段就是你需要的长期有效Token(除非卖家主动撤销授权),将其填入AmazonCredential的RefreshToken字段即可。
关于Postman和mwsAuthToken的疑问
- 需要
mwsAuthToken的请求是MWS迁移至SP-API的兼容流程,仅针对之前使用MWS的老卖家。如果你是全新开发SP-API,完全不需要这个参数,直接走上述LWA授权流程即可。 - 官方Postman集合可能未默认包含“Get LWA Refresh token”请求,你可以手动构造上述POST请求,无需依赖预设模板。
验证配置
替换正确的Refresh Token后,重新调用订单查询接口,即可解决Token兑换失败的问题。
内容的提问来源于stack exchange,提问作者Shaggydog
相关产品推荐
相关产品推荐

