$string_to_sign = $http_method . "\nmws.amazonservices.co.uk\n" . $uri . "\n";
if (!empty($get_args)) {
uksort($get_args, 'strcmp');
$string_to_sign .= $this->getParametersAsString($get_args);
$get_args['Signature'] = base64_encode(hash_hmac('sha256', $string_to_sign, $this->getSecretKey(), true));
} else {
uksort($post_args, 'strcmp');
$string_to_sign .= $this->getParametersAsString($post_args);
$post_args['Signature'] = base64_encode(hash_hmac('sha256', $string_to_sign, $this->getSecretKey(), true));
}
if (empty($post_body)) {
$post_data = $this->getParametersAsString($post_args);
} else {
$post_data = $post_body;
}
$request_url = 'https://mws.amazonservices.co.uk' . $uri;
if (!empty($get_args)) {
$request_url .= '?' . $this->getParametersAsString($get_args);
}
$defaults = array(
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_URL => $request_url,
CURLOPT_FRESH_CONNECT => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FORBID_REUSE => 1,
CURLOPT_TIMEOUT => 0,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_BINARYTRANSFER => 1,
CURLOPT_POSTFIELDS => $post_data,
);
$ch = curl_init();
curl_setopt_array($ch, $defaults);
$response = curl_exec($ch);
return $response;