Bitfinex API v2使用PHP和cURL对端点进行身份验证

Bitfinex API v2使用PHP和cURL对端点进行身份验证,php,curl,Php,Curl,我相信我离得很近,但我刚刚离开。我试图用Bitfinex v2 API返回我的钱包余额,但我一直收到“无效密钥”错误 查看后,我认为我的问题可能与此相关,但使用utf8\u encode更新我的代码并没有解决问题 这是我第一次使用cURL,所以我不太相信我已经正确设置了所有选项 提前感谢您提供的任何帮助 到目前为止我的代码(您必须相信\u APISECRET和\u APIKEY已设置): 我今天也面临同样的问题。以下是我的工作解决方案: /** * Bitfinex API V2 REST A

我相信我离得很近,但我刚刚离开。我试图用Bitfinex v2 API返回我的钱包余额,但我一直收到“无效密钥”错误

查看后,我认为我的问题可能与此相关,但使用
utf8\u encode
更新我的代码并没有解决问题

这是我第一次使用cURL,所以我不太相信我已经正确设置了所有选项

提前感谢您提供的任何帮助

到目前为止我的代码(您必须相信
\u APISECRET
\u APIKEY
已设置):


我今天也面临同样的问题。以下是我的工作解决方案:

/**
 * Bitfinex API V2 REST AUTHENTICATED ENDPOINT
 *
 * @param $method
 * @param array $request
 *
 * @return mixed
 */
private function queryPrivate($method, array $request = array())
{
    // build the POST data string
    $postData = (count($request)) ? '/' . implode("/", $request) : '';

    $nonce      = (string) number_format(round(microtime(true) * 100000), 0, ".", "");
    $path       = "/api/v2".'/auth/r/'.$method.$postData.$nonce;
    $signature  = hash_hmac("sha384", utf8_encode($path), utf8_encode($this->secret));

    $headers = array(
        "content-type: application/json",
        "content-length: ",
        "bfx-apikey: " . $this->key,
        "bfx-signature: " . $signature,
        "bfx-nonce: " . $nonce
    );

    $url = $this->url.'/auth/r/' . $method . $postData;

    curl_setopt($this->curl, CURLOPT_URL, $url);
    curl_setopt($this->curl, CURLOPT_POST, true);
    curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($this->curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER, true);

    if (!$result=curl_exec($this->curl)) {
        return $this->curl_error($this->curl);
    } else {
        // var_dump($result);
        return $result;
    }
}
我正在用

    $param = array();
    $this->queryPrivate("wallets", $param);

    $param = array('tIOTETH','hist');
    $this->queryPrivate("trades", $param);

祝你好运

这不是javascript,PHP字符串是二进制安全的,如果编码不正确,您从哪里获得此api密钥?api密钥绑定到我的帐户(您从帐户接口中获得)。我确信我输入的是正确的。我刚刚发现
bfx签名
字符串必须是小写。当有postdata时,这是否有效?这一行似乎偏离了$url=$this->url'/auth/r/'$方法$postData;
    $param = array();
    $this->queryPrivate("wallets", $param);

    $param = array('tIOTETH','hist');
    $this->queryPrivate("trades", $param);