$string_to_sign = $http_method . "\n";
if ($this->getMode() == 'live') {
$string_to_sign .= "payments.amazon.co.uk\n";
} else {
$string_to_sign .= "payments-sandbox.amazon.co.uk\n";
}
$string_to_sign .= "/cba/api/purchasecontract/\n";
uksort($parameters, 'strcmp');
$string_to_sign .= $this->getParametersAsString($parameters);
$parameters['Signature'] = base64_encode(hash_hmac('sha256', $string_to_sign, $this->getSecretKey(), true));
if ($this->getMode() == 'live') {
$end_point = "payments.amazon.co.uk";
} else {
$end_point = "payments-sandbox.amazon.co.uk";
}
$request_url = 'https://' . $end_point . '/cba/api/purchasecontract/?' . $this->getParametersAsString($parameters);
$curl_options = array(
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_POST => $http_method == 'POST' ? 1 : 0,
);
$ch = curl_init();
curl_setopt_array($ch, $curl_options);
$response = curl_exec($ch);
curl_close($ch);
return $response;