Я получаю сообщение об ошибке «ресурс не найден» при получении продукта по коду в 2checkout API (остальные). Не знаю, почему это происходит, потому что вся информация указана правильно. Метод JSON SOAP работает нормально и извлекает продукт, а REST API - нет. Нужна помощь!
Вот код:
<code><?php
function hmac($key, $data)
{
$b = 64; // byte length for md5
if (strlen($key) > $b) {
$key = pack("H*", md5($key));
}
$key = str_pad($key, $b, chr(0x00));
$ipad = str_pad('', $b, chr(0x36));
$opad = str_pad('', $b, chr(0x5c));
$k_ipad = $key ^ $ipad;
$k_opad = $key ^ $opad;
return md5($k_opad . pack("H*", md5($k_ipad . $data)));
}
$merchantCode = "";// your account's merchant code available in the 'System
$key = "";
$string = strlen($merchantCode) . $merchantCode . strlen(gmdate('YYYY-MM-DD HH:MM:SS')) . gmdate('YYYY-MM-DD HH:MM:SS');
$hash = hmac($key, $string);
$url = "https://api.2checkout.com/rest/5.0/products/10439";
$ch = curl_init($url);
$date = gmdate('YYYY-MM-DD HH:MM:SS');
$headers = array(
"X-Avangate-Authentication: code='{$merchantCode}' date='{$date}' hash='{$hash}'",
"Content-Type: application/json",
"Accept: application/json"
);
curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/5.0/products/10439");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSLVERSION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// $ss = array(
// "X-Avangate-Authentication: code='{$merchantCode}' date='{$date}' hash='{$hash}'",
// "Content-Type: application/json",
// "Accept: application/json"
// );
// echo '<pre>';
// print_r($ss);
// echo '
'; $ response = curl_exe c ($ ch); echo '
';
var_dump($ch);
echo '
'; curl_close ($ ч); var_dump ($ ответ); ?>