2017-12-02 26 views
0

PHP로 내 웹 사이트의 cryptocoins를 거래하는 WordPress 플러그인을 만들고자하는데,이 목적으로 Bittrex API를 사용하려고합니다.거래 봇을 만들 때 예외가 발생했습니다.

내 문제는 API를 사용하여 클래스에서 메서드를 호출하려고하면 예외가 throw된다는 것입니다. 누군가 내 코드에서 문제를 찾도록 도와 줄 수 있습니까?

다음은 주 클래스의 코드입니다. 여기서는 Client 클래스의 Object를 만듭니다. 여기

require 'bittrex-master/src/edsonmedina/bittrex/Client.php'; 
use edsonmedina\bittrex\Client; 

$keya = "xxx"; 
$secreta = "xxx"; 

$b = new Client ($keya, $secreta); 

try{ 
    $list = $b->getMarkets(); 
    echo "$list"; 

}catch (Exception $e) { 
    echo 'Caught exception: ', $e->getMessage(), "\n"; 
} 

echo "\n\n"; 

call 방법에 apiKey에이 거짓 기본적으로 클라이언트 클래스 의견 및 예외 APIKEY_NOT_PROVIDED 당으로

namespace edsonmedina\bittrex; 

class Client 
{ 
private $baseUrl; 
private $apiVersion = 'v1.1'; 
private $apiKey; 
private $apiSecret; 

public function __construct ($apiKey, $apiSecret) 
{ 
    $this->apiKey = $apiKey; 
    $this->apiSecret = $apiSecret; 
    $this->baseUrl = 'https://bittrex.com/api/'.$this->apiVersion.'/'; 
} 

/** 
* Invoke API 
* @param string $method API method to call 
* @param array $params parameters 
* @param bool $apiKey use apikey or not 
* @return object 
*/ 
private function call ($method, $params = array(), $apiKey = false) 
{ 
    $uri = $this->baseUrl.$method; 

    if ($apiKey == true) { 
     $params['apikey'] = $this->apiKey; 
     $params['nonce'] = time(); 
    } 

    if (!empty($params)) { 
     $uri .= '?'.http_build_query($params); 
    } 

    $sign = hash_hmac ('sha512', $uri, $this->apiSecret); 

    $ch = curl_init ($uri); 
    curl_setopt ($ch, CURLOPT_HTTPHEADER, array('apisign: '.$sign)); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 

    $answer = json_decode($result); 

    if ($answer->success == false) { 
     throw new \Exception ($answer->message); 
    } 

    return $answer->result; 
} 

/** 
* Get the open and available trading markets at Bittrex along with other meta data. 
* @return array 
*/ 
public function getMarkets() 
{ 
    return $this->call ('public/getmarkets'); 
} 
+1

예외는 무엇입니까? – valtron

+0

특별한 예외는 없습니다. 유일한 출력은 "예외가 잡힌 것"입니다. 이것은 excpetion이 던져 질 때의 결과입니다 –

+0

Debug! 원시인에게 가서 예외가있는 곳을 찾기 위해 print 문을 추가하십시오. – zaph

답변

1

에서 코드의 일부이다.

return $this->call ('public/getmarkets', null, true); 
+0

문제가 해결되어 도움을 주셔서 대단히 감사합니다. –