PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
Lipost Отправлено: 27 Июня, 2018 - 11:45:02 • Тема: API ошибка авторизации. Что не так? • Форум: Напишите за меня, пожалуйста

Ответов: 10
Просмотров: 157
Vladimir Kheifets пишет:

У Вас $row не передаётся в функцию btce_query
Удачи!


Спасибо за помощь. Все заработало.

P.S. Не могу поставить спасибо. При клике выдает "Пожалуйста, только корректным способом входите в скрипт"
Lipost Отправлено: 26 Июня, 2018 - 21:51:53 • Тема: API ошибка авторизации. Что не так? • Форум: Напишите за меня, пожалуйста

Ответов: 10
Просмотров: 157
Вопрос не решился пока.
Попробовал вывести после присваивания значения
CODE (htmlphp):
скопировать код в буфер обмена
  1. $key = $strapi_key;
  2. echo $key;

не хочет.
Хотя, если вывести за функцию,
CODE (htmlphp):
скопировать код в буфер обмена
  1. $query = $db->query("SELECT * FROM test WHERE id='1'");
  2. $row = $query->fetch_assoc();
  3. $codeapi_key = $row['api_key'];
  4. $strapi_key = __decode(hexToStr($codeapi_key),'$k');
  5. $codeapi_secret = $row['api_secret'];
  6. $strapi_secret = __decode(hexToStr($codeapi_secret),'$k');
  7. function btce_query($method, array $req = array()) {
  8.  

то $strapi_key выводится.
Может что-то с функцией btce_query не так? Точнее она рабочая, но только без этого кода
CODE (htmlphp):
скопировать код в буфер обмена
  1. $codeapi_key = $row['api_key'];
  2. $strapi_key = __decode(hexToStr($codeapi_key),'$k');
  3. $codeapi_secret = $row['api_secret'];
  4. $strapi_secret = __decode(hexToStr($codeapi_secret),'$k');

ну и, естественно, тогда необходимо прописывать в файле данные API
CODE (htmlphp):
скопировать код в буфер обмена
  1. $key = 'ключ';
  2. $secret = 'секрет';
Lipost Отправлено: 25 Июня, 2018 - 12:03:35 • Тема: API ошибка авторизации. Что не так? • Форум: Напишите за меня, пожалуйста

Ответов: 10
Просмотров: 157
Если без шифрования данные API добавляются в базу, то все-равно на выходе ошибка Огорчение
Прошу помочь советом. Что еще может быть?
Lipost Отправлено: 24 Июня, 2018 - 13:23:54 • Тема: API ошибка авторизации. Что не так? • Форум: Напишите за меня, пожалуйста

Ответов: 10
Просмотров: 157
Я воспользовался Вашим советом и, как результат - строки разные, т.е. '0' не выводит. Вы же это имели ввиду? Кодировку файла менял, БД тоже, не помогло.

Попробую без шифрования и расшифровки из базы вывести и отправить.
Lipost Отправлено: 23 Июня, 2018 - 22:51:40 • Тема: API ошибка авторизации. Что не так? • Форум: Напишите за меня, пожалуйста

Ответов: 10
Просмотров: 157
Благодарю за ответ. Естественно, строки разные. Именно поэтому и выдает ошибку API. Проблема как раз в том, что не так, почему разные строки и как решить эту проблему.
Ведь после расшифровки
CODE (htmlphp):
скопировать код в буфер обмена
  1. echo $strapi_key;
  2. echo $strapi_secret;
выводит верно.

Затем присваиваем
CODE (htmlphp):
скопировать код в буфер обмена
  1. $key = $strapi_key;  
  2. $secret = $strapi_secret;

и дальше почему-то ошибка.

Почему? Где "собака зарыта"?
Lipost Отправлено: 23 Июня, 2018 - 09:31:20 • Тема: API ошибка авторизации. Что не так? • Форум: Напишите за меня, пожалуйста

Ответов: 10
Просмотров: 157
Прошу помочь, подскажите что не так.
Если указать значение $key = 'Здесь ключ API'; и $secret = 'Здесь секретный ключ'; непосредственно в файле, то все работает.
Но я решил эти данные хранить в Mysql в зашифрованном виде. Все нормально шифруется, расшифровывается и выводится echo $strapi_key; echo $strapi_secret;
Но в таком вот виде в ответ получаю ошибку "api key not specified" или "invalid"
Заранее благодарю за помощь.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $query = $db->query("SELECT * FROM test WHERE id='1'");
  3. $row = $query->fetch_assoc();
  4. function btce_query($method, array $req = array()) {
  5.  
  6. $codeapi_key = $row['api_key'];
  7. $strapi_key = __decode(hexToStr($codeapi_key),'$k');
  8. $codeapi_secret = $row['api_secret'];
  9. $strapi_secret = __decode(hexToStr($codeapi_secret),'$k');
  10.        
  11.        $key = $strapi_key;
  12.        $secret = $strapi_secret;
  13.  
  14.        $req['method'] = $method;
  15.        $mt = explode(' ', microtime());
  16.       $req['nonce'] = $mt[1];
  17.      // generate the POST data string
  18.       $post_data = http_build_query($req, '', '&');
  19.        $sign = hash_hmac('sha512', $post_data, $secret);
  20.        // generate the extra headers
  21.       $headers = array(
  22.                      'Sign: '.$sign,
  23.                      'Key: '.$key,
  24.       );
  25.      // our curl handle (initialize if required)
  26.        static $ch = null;
  27.       if (is_null($ch)) {
  28.             $ch = curl_init();
  29.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  30.              curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; WEX PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
  31.      }
  32.       curl_setopt($ch, CURLOPT_URL, 'https://site.com/api/');
  33.       curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  34.           curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  35.           curl_setopt($ch, CURLOPT_POST, true);
  36.       curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  37.       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  38.           curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
  39.       // run the query
  40.      $res = curl_exec($ch);
  41.       if ($res === false) throw new Exception('Could not get reply: '.curl_error($ch));
  42.      $dec = json_decode($res, true);
  43.       if (!$dec) throw new Exception('Invalid data received, please make sure connection is working and requested API exists');
  44.      return $dec;
  45. }
  46.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB