Я хочу отправить запрос 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 :
Этот запрос ниже выполняется после вышеперечисленных шагов:
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 или в других случаях. Пожалуйста, присылайте предложения