Coinbase API可捕获致命错误null参数到Live Server中的httpexception :: exceptionClass()

时间:2018-02-19 02:32:58

标签: coinbase-api coinbase-php

在localhost中一切正常。但是在实时服务器中,它会导致致命错误并且不会进一步执行。

    /* ======== API CONFIG ========== */
require __DIR__.'/dev_components/wallet_api_components/vendor/autoload.php';
use Coinbase\Wallet\Client;
use Coinbase\Wallet\Configuration;
use Coinbase\Wallet\Resource\Account;
use Coinbase\Wallet\Resource\Address;
use Coinbase\Wallet\Resource\Transaction;
use Katzgrau\KLogger\Logger;
/* Settings */
$apiKey = "XXXXXXXXXX";
$apiSecret = "YYYYYYYYYYYYYYY";
$configuration = Configuration::apiKey($apiKey, $apiSecret);
$logger = new Logger(__DIR__.'/errorlog', Psr\Log\LogLevel::WARNING, array (
    'logFormat' => '{date} - {level} - {message}',
    'filename'  => 'error_log',
    'extension' => 'txt'
));
$logger->info('INFO message');
$configuration->setLogger($logger);
$client = Client::create($configuration);
// I have used print_r($configuration) ; print_r($client) to check the full 
//configuration and client object and in both localhost and Live server its 
//showing same data


$account_btc = $client->getAccount('BTC'); // From this line nothing executing
$account_eth = $client->getAccount('ETH');

错误是

  

stderr:PHP Catchable致命错误:参数1传递给Coinbase \ Wallet \ Exception \ HttpException :: exceptionClass()必须是Psr \ Http \ Message \ ResponseInterface的一个实例,给定null,在/ path / vendor / coinbase中调用第33行的/coinbase/src/Exception/HttpException.php,在第98行的/path/vendor/coinbase/coinbase/src/Exception/HttpException.php中定义

在Live Server中获取上述致命错误以及如何摆脱这个错误的原因是什么?

2 个答案:

答案 0 :(得分:1)

我在设置 coinbase api 时也收到此错误。 此错误是由于 ssl 证书造成的,因此我从 https://curl.se/docs/caextract.html 下载了 cacert.pem 文件并将其放在 etc 文件夹中。 之后,我更改了 vert 名称 第 58 行的“src/Configuration.php” “$this->caBundle = DIR.'/../etc/ca-coinbase.crt'” 到 “$this->caBundle = DIR.'/../etc/cacert.pem'”。 因此我的错误解决了。

答案 1 :(得分:0)

我假设您没有发布整个错误转储,但查看错误:stderr: PHP Catchable fatal error: Argument 1 passed to Coinbase\Wallet\Exception\HttpException::exceptionClass() must be an instance of Psr\Http\Message\ResponseInterface

这意味着当调用HTTPException:exceptionClass()时,您必须使用参数中的ResponseInterface对象来调用它。

如果以上内容无法解决您的问题,请发布整个错误转储。如果您不发布整个错误转储,则很难知道根本原因。