Coinbase Pro post 下订单 php

Coinbase Pro post place order php

我正在尝试使用 php 通过 coinbase pro api 下订单。 只是从一开始就告诉你,当我使用 get 方法时,身份验证工作正常,所以那部分没问题。例如,我得到我的帐户、我的订单和所有相关的东西。

当我尝试使用 post(或其他 post 方法)下订单时出现问题,因为这是我尝试的第一个 post 方法。

所以这就是我正在尝试做的事情:

请注意,值仅供说明:

正在创建订单:

$_eur = $_eur - ($_eur*$this->Eurfee); //Eur is i get the amount i have and subtract the fee of 0.15% for terms an purposes lets say i have 100
$_order = array(
            'product_id' => 'LTC-EUR',
            'side' => $side, //buy
            'price' => $this->lowPrice, //112.2
            'size' => $_eur / $this->lowPrice
          );

现在发送请求;

$request = '/orders';
$this->__sendRequest($request, $_order, 'POST', true);

这里是发送请求函数:

private function __sendRequest($request, $body='', $method='GET', $auth=false)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $this->endpoint.$request);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if (strcasecmp($method, 'POST') === 0)
    {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
    }
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

    if ($auth) {
        $headers = array();
        $headers[] = "Content-Type: application/json";
        $headers[] = "CB-ACCESS-KEY: " . $this->key;
        $headers[] = "CB-ACCESS-SIGN: " . $this->__signature($request, $body, $method);
        $headers[] = "CB-ACCESS-TIMESTAMP: " . $this->timestamp;
        $headers[] = "CB-ACCESS-PASSPHRASE: " . $this->passphrase;
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    }

    $output = curl_exec($ch);
    $output = json_decode($output);

    if(curl_getinfo($ch, CURLINFO_HTTP_CODE) !== 200) {
        return $output;
    }

    curl_close($ch);
    return $output;
}

如果 post 请求有问题,这里是签名:

private function __signature($request_path='', $body='', $method='GET') {
    $body = is_array($body) ? json_encode($body) : $body;

    $what = $this->timestamp.$method.$request_path.$body;

    return base64_encode(hash_hmac("sha256", $what, base64_decode($this->secret), true));
}

当我发送请求时,输出为 null,当然没有下订单。谁能帮帮我。我认为我在那里做错事的卷曲可能是 post 方法?

另一个问题可能是一个了解 coinbase 费用的人。 我应该计算包含费用的大小,完成后 coibase 会收取费用,还是我应该只计算大小,让 coinbase 自己计算费用?

此致,

功能正常!在我发现我从 coinbase 收到的消息后,我发现我发送的大小不满足最小值!