2. Ошибка проверки ресурса не найдена (RESTAPI 5.0) - PullRequest
0 голосов
/ 28 марта 2020

Я получаю сообщение об ошибке «ресурс не найден» при получении продукта по коду в 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 ($ ответ); ?>
...