You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter项目使用Amazon Product API遇InvalidSignature错误求助

解决Amazon Product API Scratchpad InvalidSignature错误的排查方向

1. 签名核心细节校验

  • 确认Access Key ID和Secret Access Key完全匹配,复制时别带空格、换行符这类多余字符,哪怕一个空格都会导致签名失效。
  • 检查请求时间戳:Scratchpad默认用当前时间,但如果本地时区和亚马逊服务器偏差太大,会触发签名过期。手动设置UTC格式时间戳,严格遵循yyyy-MM-dd'T'HH:mm:ss'Z'格式。
  • 验证参数编码:所有参数值必须按RFC 3986标准编码,比如空格要转成%20而非+,&、=这类特殊字符必须转义。Scratchpad自动编码可能有遗漏,手动核对每个参数的编码结果。

2. Scratchpad自身问题排查

  • 用无痕模式打开Scratchpad:浏览器缓存的旧凭证或参数可能干扰新请求,清空缓存后重新输入所有配置信息测试。
  • 核对区域选择:确保Scratchpad选的区域(如US、EU)和你的AWS凭证所属区域完全一致,不同区域的签名算法逻辑有差异。
  • 手动生成签名对比:用AWS CLI的aws sign命令生成签名,和Scratchpad生成的签名比对。如果不一致,说明Scratchpad的签名逻辑存在问题。

3. 亚马逊账户配置核查

  • 确认账户关联状态:Amazon Product API要求AWS账户和亚马逊卖家/开发者账户绑定,检查关联是否有效,有没有被平台限制。
  • 检查IAM权限:确保你的IAM用户已被授予ProductAdvertisingAPIFullAccess权限,或者自定义权限包含所有必要操作。
  • 尝试全新IAM用户:如果旧凭证一直有问题,创建一个全新的IAM用户,仅分配Product API相关权限,再测试签名是否有效。

4. 请求结构正确性验证

  • 确认请求方法:必须用GET请求,Amazon Product API不支持POST请求用于签名验证。
  • 核对端点URL:不同区域的端点不同,比如美国区是webservices.amazon.com,欧盟区是webservices.amazon.co.uk,确保端点和所选区域匹配。
  • 检查必填参数:Service=AWSECommerceService、Operation(如ItemLookup)、Timestamp、SignatureVersion=2、SignatureMethod=HmacSHA256这些参数必须齐全,缺一个都会导致签名错误。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 18:39:51