首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# SP给出了getReportDocument的签名错误,但对于其他方法却很好。

C# SP给出了getReportDocument的签名错误,但对于其他方法却很好。
EN

Stack Overflow用户
提问于 2021-07-13 21:11:18
回答 1查看 85关注 0票数 0

我使用的是C# Amazon库,我使用swagger转换了C#包装器类,所有这些都可以很好地处理定价,以及Reports中的一些功能。

但是当我试图调用getReportDocument时,它会给出与AWS签名不匹配的错误。

https://github.com/amzn/selling-partner-api-docs/blob/main/references/reports-api/reports_2020-09-04.md#getreportdocument

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-23 11:50:05

如果您能够确认此问题仅在按id调用单个项(如GetOrder、GetReport )时发生,并且您正在使用亚马逊提供的Amazon.SellingPartnerAPIAA.csproj进行签名,则很可能是AWSSigV4Signer.CreateCanonicalRequest方法使用段占位符而不是id本身对url进行签名。

例如,"/reports/2021-06-30/documents/{reportDocumentId}“而不是"/reports/2021-06-30/documents/0356cf79-b8b0-4226-b4b9-0ee058ea5760”,一个可能的解决方案是在调用ExtractCanonicalURIParameters之前先“手动”解析url

代码语言:javascript
运行
复制
foreach(var par in restRequest.Parameters)
{
   if(restRequest.Resource.Contains($"{{{par.Name}}}"))
   {
        restRequest.Resource = restRequest.Resource.Replace($"{{{par.Name}}}", par.Value.ToString());
   }
}

//CanonicalURI
canonicalizedRequest.AppendFormat("{0}\n", AwsSignerHelper.ExtractCanonicalURIParameters(restRequest.Resource));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68369374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档