Поздно к вечеринке, но подумал, что я отвечу, когда я наконец понял это, и представлю, что это будет полезно для всех, кто пытается использовать Bitmex API с PHP (особенно, если вы используете упаковщик bitmex-api-php наkstka's github).
Сначала поместите порядковый номер Id в массив, даже если он всего один:
public function cancelOrder($orderId) {
$orderArr = array($orderId);
$symbol = self::SYMBOL;
$data['method'] = "DELETE";
$data['function'] = "order";
$data['params'] = array(
'orderID' => $orderArr,
);
return $this->authQuery($data);
}
Затем необходимо убедиться, что ваши параметры закодированы в формате json, но толькодля DELETE
if($method == "GET" || $method == "POST" || $method == "PUT") {
$params = http_build_query($data['params']);
} elseif($method == "DELETE") {
$params = json_encode($data['params']);
}
, а затем, что наиболее важно, вы должны убедиться, что заголовки CURL закодированы в формате json:
if($data['method'] == "DELETE") {
curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);
$headers[] = 'X-HTTP-Method-Override: DELETE';
$headers[] = 'Content-Type: application/json';
}
Вы, должно быть, смеетесь.Это заняло у меня целую вечность, чтобы понять!