【问题标题】:Selling partner Aws Sign4 wrong calcualation for vendor销售伙伴 Aws Sigv4 供应商计算错误
【发布时间】:2020-10-15 04:33:36
【问题描述】:

我正在使用 API 方法“直接调用销售伙伴 API”。

我正确地遵循了所有步骤:

  1. 使用 Amazon 访问令牌请求登录 - 此 API 正在成功运行并正在获取访问令牌。
  2. 构造一个 Selling Partner API URI - 之后,我使用 access_token 并将其传递给 options 标头 request-'x-amz-access-token'。
  3. 向 URI 添加标头
  4. 创建并签署您的请求

调用API后https://sellingpartnerapi-eu.amazon.com/vendor/orders/v1/purchaseOrders 我收到带有错误的签名响应- The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method.

我的代码:-

let options = {
    service: 'execute-api',
    region:'eu-west-1',
    method: 'GET',
    url: 'https://sellingpartnerapi-eu.amazon.com/vendor/orders/v1/purchaseOrders/?includeDetails=true&createdBefore=2020-04-20T14:00:00-08:00&createdAfter=2020-04-14T00:00:00-08:00',
    headers: {
      'Content-Type': 'application/json',
      'host':'sellingpartnerapi-eu.amazon.com',
      'x-amz-access-token':access_token,
      'x-amz-date': '20200604T061745Z',
      'user-agent':'My App(Language=Node.js;Platform=Windows/10)'
    }
  }

let signedRequest = aws4.sign(options,
{
  secretAccessKey: secretAccessKey,
  accessKeyId: accessKeyId,
})

console.dir("signedRequest");
console.dir(signedRequest);

delete signedRequest.headers['Host']
delete signedRequest.headers['Content-Length']

request(awsres, function(err, res, body) {
    console.dir("err");
    console.dir(err);
    console.dir("res");
    console.dir(res.body);
});

【问题讨论】:

  • 您能否分享更多详细信息。从最初的调查来看,您似乎没有提供 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。
  • @Dipak 你有没有得到这个工作?

标签: amazon-web-services


【解决方案1】:

我想签名的计算方式与其他 AWS 服务中的计算方式相同。

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2022-07-29
    相关资源
    最近更新 更多