我要发送GetReport请求以获取卖方帐户的报告。
但是,当我发送给我签名时,签名不匹配,并且我无法弄清问题所在并停留了几个小时,我尝试创建签名并检查请求的格式,但是没有得到通过,暂存器上的请求运行正常。这是我的以下代码
check=(evt)=>{
evt.preventDefault();
let d=new Date();
let reqDate=d.toISOString();
let url='POST\nmws.amazonservices.com/\n'+'AWSAccessKeyId'=+accesskey+'&Action=GetReport'+'&Merchant='+sellerid
+'&MWSAuthToken='+token+'&SignatureVersion=2'+'&Timestamp='+ reqDate +'&Version=2009-01-01'+'&SignatureMethod=HmacSHA256'+'&ReportId=14941942615018036';
let signature=base64.encode(SHA256(url,secretkey));
agent
.post(`https://mws.amazonservices.com/`)
.query({
AWSAccessKeyId:accesskey,
Action:'GetReport',
Merchant:sellerid,
MWSAuthToken:token,
SignatureVersion:2,
Timestamp:reqDate,
Version:'2009-01-01',
Signature:signature,
SignatureMethod:'HmacSHA256',
ReportId:'14941942615018036'
})
.then(res=>(this.setState({category:res.text},()=>{
console.log('category==>',this.state.category)
})))
};
请求 :
在执行上述步骤后,将发出以下请求:
Request URL:https://mws.amazonservices.com/?AWSAccessKeyId=accesskey&Action=GetReport&Merchant=sellerid&MWSAuthToken=token&SignatureVersion=2&Timestamp=2019-05-22T09:19:15.213Z&Version=2009-01-01&Signature=ZWZiZjAxNGVlODZlYzc3NDlhYjljMmQ1NGI1NDNiZmY5N2VmMDIzY2YwMTdjNjgzYzkxM2MxMDllNzVjNzI1Mw==&SignatureMethod=HmacSHA256&ReportId=14941942615018036
当我在上面发送请求时,在上面提到的标头中生成了以下请求,在创建签名或在base64或其他代码中进行编码时是否存在任何问题,请提供建议