여러 상점 앞에서 동기화하기 위해 Delphi에서 응용 프로그램을 작성했습니다. 서명과 관련하여 문제가있는 것 같습니다. 내 시나리오는 다음과 같습니다.Amazon MWS Signature - Delphi
Amazon 용 주문 API를 실행하면 서명을 수락하고 모든 주문을 성공적으로 다운로드합니다. 나는이 문제에 관해서 어떤 문제도 가지지 않았다.
이제 Reports API로 전환하면 서명을 제외하고는 표시되지 않습니다. 여기에 내가 내가 signaures을 비교하는 MWS 스크래치와 같은 타임 스탬프이 실행도 한
hmac_SHA256_inits(hmc, FSecretAccessKey);
s := StringToSign;
hmac_SHA256_update(hmc, @(s[1]), Length(s));
hmac_SHA256_final(hmc, hmd);
SetLength(sBin, 32);
for i := 0 to 31
do sBin[i+1] := AnsiChar(hmd[i]);
Result := Base64Encode(sBin);
Result := StringReplace(Result, '+', '%2B', [rfReplaceAll]);
Result := StringReplace(Result, '=', '%3D', [rfReplaceAll]);
을 사용하고 서명 기능, 그리고 서로 다른 나와. 그러나 서명 할 문자열은 단어와 대문자가 정확히 동일합니다. 나는 그것이 서명 루틴일지도 모른다고 생각 하겠지만, Orders API는 루틴이 잘못 되었다면 아무런 문제없이 어떻게 작동 할까? 나는 두에서 볼 수있는 유일한 큰 차이는 주문 API에 대한 사용해야한다는 것입니다
POST /주문/2011-01-01 ParamterString및 보고서 하나가
POST입니다 / ParamterString
솔로 슬래시로 인해 서명이 실패 할 수 있습니까? 이 문제를 해결하기 위해 내가 생각할 수있는 모든 것을 시도했으며 현재 프로젝트를 포기하고 다른 언어를 선호하고 있습니다.
어떤 도움을 크게 감상 할 수
사용중인 SHA256 기능의 근원은 무엇입니까? 쓰지 않았습니까, 제 3 자 라이브러리 또는 ...? – alcalde
해결 했습니까? 나도 델파이에서 MWS 요청에 대한 서명을 생성하려고 애 쓰고있다. 성공했다면, SHA/HMAC 라이브러리를 사용할 올바른 방향을 지적 해 주시겠습니까? – user1595471