나는 아마존 MWS 스크래치 패드가 작동 얻기 위해 노력하고 있지만, 그것은 나에게 메시지를주고 계속 : 우리는 당신이 제공하는 서명과 일치하지 않습니다 계산아마존 MWS 스크래치 API
요청 서명. AWS Secret Access Key 및 서명 방법을 확인하십시오. 자세한 내용은 서비스 설명서를 참조하십시오.
나는 비슷한 주제를 찾고 있었지만 정말 도움이되지 않았습니다. 그래서, 여기에 코드입니다 : 내가 Amazon Scratchpad 요청 세부 사항 페이지, SHA 256 HMAC
필드와 비교있을 때
$params = array(
'AWSAccessKeyId' => AWS_ACCESS_KEY_ID,
'Action' => "GetLowestOfferListingsForASIN",
'SellerId' => MERCHANT_ID,
'SignatureMethod' => "HmacSHA256",
'SignatureVersion' => "2",
'Timestamp' => gmdate("Y-m-d\TH:i:s\Z", time()),
'Version' => "2011-10-01",
'MarketplaceId' => MARKETPLACE_ID,
'ItemCondition' => "new",
'ASINList.ASIN.1' => "B001T6OP32");
$url = array();
foreach($params as $key => $val){
$val = str_replace('%7E', '~', rawurlencode($val));
$url[] = $key . '=' . $val;
}
$uri = implode('&', $url);
$string_to_sign = 'POST';
$string_to_sign .= "\n";
$string_to_sign .= 'mws.amazonservices.co.uk' . "\n";
$string_to_sign .= '/Products/2011-10-01' . "\n";
$string_to_sign .= $uri;
$signature = hash_hmac("sha256", $string_to_sign, AWS_SECRET_ACCESS_KEY, TRUE);
$signature = base64_encode($signature);
$signature = urlencode($signature);
$signature = str_replace("%7E", "~", $signature);
$url = 'https://mws.amazonservices.co.uk/';
$url .= 'Products/2011-10-01' . '?' . $uri . "&Signature=" . $signature;
내가 print $signature
로 인쇄하고있을 때 항상 %
심볼을 포함, 그 문제는 서명과 함께 내기, 그리고 - 아무 것도 없다.
내가 볼 수없는 것이 있습니까? 나는 Secret Access Key에서 공간을 확인하고 있었는데, 괜찮아 보인다.
많은 감사.
서명 부분을 지나칠 때 바로 머리를 맞 춥니 다. 스크래치 패드는 XML 테스트를 시작할 때 전혀 도움이되지 않습니다. 스크래치 패드의 xml 섹션에 원하는 것을 입력 할 수 있으며, 유효하고 "200"응답을 제공합니다. –