0

Amazon MWS にフィードを送信しようとしています。問題は、私が送信した Md5 ハッシュが Amazon の計算と一致しないと Amazon が言っているため、私の要求が拒否されたことです。

これは、ハッシュを計算するために使用するコードです。

    var
        StringStream: TStringStream;
        MessageDigest: TIdHashMessageDigest5;
        XMLString: string;
    begin
        MessageDigest := TIdHashMessageDigest5.Create;
        StringStream := TStringStream.Create;
        try
            StringStream.WriteString(XMLString);
            HashString := MessageDigest.HashStream(StringStream);

        finally
            StringStream.Free;
            MessageDigest.Free;
        end;
    end;

そして、これがAmazonからの応答です:

    <ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
        <Error>
            <Type>Sender</Type>
            <Code>ContentMD5DoesNotMatch</Code>
            <Message>the Content-MD5 HTTP header you passed for your feed (H3GnH3X3H3auHZ0mGZ8mD4KvE30mEJauHKD6E3GoDqK) did not match the Content-MD5 we calculated for your feed (fSEMn6SCuSia5YVdz/1NqQ==)</Message>
            <Detail />
        </Error>
        <RequestID>9c3e0b2a-c418-41dc-b733-e55ac01343b1</RequestID>
    </ErrorResponse>

base64 でエンコードされた MD5 ハッシュを計算する適切な方法は何ですか? 私のコードに何か問題がありますか?

よろしくお願いします。

P.

4

1 に答える 1