当前位置: 首页 > 知识库问答 >
问题:

我无法在php中使用bittrex v3 api

那昊
2023-03-14

我正试图让v3 api在PHP中工作,你能帮我找出我做错了什么吗?

我得到的当前响应是“未经授权”(旧版本1.1使用我拥有的api密钥和机密)。


    $timestamp = time()*1000;
    $url = "https://api.bittrex.com/v3/balances";
    $method = "GET";
    $contentHash = hash('sha512', '');
    $auth = $timestamp . $url . $method . $contentHash;
    $sign=hash_hmac('sha512',$auth,$apisecret);
    $headers = array (
        'Api-Key' => $apikey,
        'Api-Timestamp' => $timestamp,
        'Api-Content-Hash' => $contentHash,
        'Api-Signature' => $sign,
    );

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    $execResult = curl_exec($ch);
    curl_close($ch);
    $obj = json_decode($execResult, TRUE);

共有1个答案

逄俊贤
2023-03-14

    use Http\Promise\Promise;
    use GuzzleHttp\Client;
    use GuzzleHttp\Exception\RequestException;
    use GuzzleHttp\HandlerStack;
    use GuzzleRetry\GuzzleRetryMiddleware;
    use GuzzleHttp\Psr7\Request;
    use guzzle\guzzle;
    use Monolog\Logger;
    include '../vendor/autoload.php';

    function requestTimestamp()
    {
     list($usec, $sec) = explode(' ', microtime());
     return (int) ((int) $sec * 1000 + ((float) $usec * 1000));
    }

    $apiKey = 'YOUR_API_KEY';
    $apiSecret = 'YOUR_SECRET_KEY';
    $url = 'https://api.bittrex.com/v3/balances';

    $method = 'GET';
    $content = '';

    $timestamp = requestTimestamp();
    $contentHash = hash('sha512', $content);
    $preSignature = ($timestamp.$url.$method.$contentHash);

    $signature = hash_hmac('sha512', $preSignature, $apiSecret);

    $headers = ['Api-Timestamp'=> $timestamp, 'Api-Key'=> $apiKey, 'Api-Content-Hash' => $contentHash, 'Api-Signature' => $signature, 'Accept'=> 'application/json', 'Content-Type'=> 'application/json'];

    $client = new \GuzzleHttp\Client();
    $response = $client->request($method, $url, ['headers' => $headers], json_encode($content));

    echo $response->getBody();

 类似资料:
  • 问题内容: 我正在使用David Walsh(http://davidwalsh.name/backup-mysql-database- php )的数据库备份脚本将MYSQL数据库作为.sql文件备份到服务器。 我创建了一个名为backup的用户,并为其赋予了所有特权(只是为了确保)。然后,我将代码放入php文件中,并设置cron作业以运行php文件。 这是代码: 在执行cron作业时,备份无法

  • 我无法在我的应用程序中使用proguard。当我将minify启用为true时,布局屏幕中的textinputlayout工作正常,但我有一个alertdialog,其中包含一个膨胀的XML,该XML没有膨胀(该XML包含一个textinputlayout。请帮助大家。这是代码片段。 PS:我正在使用手机应用程序发帖,请不要抨击对齐不当。我真的需要帮助。 建筑渐变条目-- XML屏幕中的TextI

  • 问题内容: 据我所知,它正在使用相同的CSS在网站上的其他地方工作。它适用于Chrome。 这是无效的部分: 和CSS 问题答案: 看起来FF不会转换默认值。必须在原始元素上声明它们,然后才能转换为新属性。

  • 问题内容: 我似乎无法理解QueryDSL的elasticsearch方面。以下是我的查询对象以及我的数组的映射。我正在尝试将它们放入基于标签的多面导航中。每个“元素”将在标签数组中关联多个标签[并非所有元素都具有标签。一些将有一个空数组。]。每个标签都是具有id和tag属性的对象。 我尝试了嵌套的构面方法,并得到“标签未嵌套”的错误,因此我在下面尝试了此方法。我没有收到错误,但是返回JSON中没

  • 问题内容: 每当我尝试调用repaint()方法时,都会说不能从静态方法引用非静态方法。顺便说一句,它与paintComponent方法在同一类中。我尝试首先在类之外创建一个对象,然后使用对象名称引用它,但是它也没有用。请帮忙。 问题答案: 主要方法是静态的。您的p对象不是:它是P类的实例字段。试试这个: 您应该始终从事件分发线程访问Swing组件,这就是为什么我将它们全部放在EventQueue

  • 问题内容: 我正在研究要与Jenkins 2.0一起使用的Jenkinsfile。无法识别该方法。我缺少一些配置以使其可用吗? 我的Jenkinsfile: 运行时,出现以下错误: among [AWSEBDeployment, archive, bat, build, catchError, checkout, deleteDir, dir, echo, emailext, error, fil