Binance Api[buy limit]它说我没有资金进行购买,但事实上有

Binance Api[buy limit]它说我没有资金进行购买,但事实上有,api,binance,Api,Binance,大家好,我正在尝试使用比纳斯的蜜蜂,到目前为止一切都很好,我已经使用市场订单模式进行了一些购买和销售,一切都很完美,现在我正在尝试下限价订单 但我总是得到同样的答案 {“代码”:-2010,“消息”:“帐户余额不足,无法执行请求的操作。”} 我的钱包由两种测试加密货币组成: BNB->free 0.07100 | Locked 0 USDT->免费50.69828637 |锁定0 我试着提出这样的要求: symbol=BNBUSDT&type=LIMIT&timeInForce=GTC&quan

大家好,我正在尝试使用比纳斯的蜜蜂,到目前为止一切都很好,我已经使用市场订单模式进行了一些购买和销售,一切都很完美,现在我正在尝试下限价订单

但我总是得到同样的答案

{“代码”:-2010,“消息”:“帐户余额不足,无法执行请求的操作。”}

我的钱包由两种测试加密货币组成:

BNB->free 0.07100 | Locked 0

USDT->免费50.69828637 |锁定0

我试着提出这样的要求:

symbol=BNBUSDT&type=LIMIT&timeInForce=GTC&quantity=0.333&price=120.001&side=BUY&recvWindow=5000×tamp=1616195182000

这是我的主要代码,正如您所看到的,我正确设置了参数,这是什么

这是在类二进制文件中用于发出请求的两个方法

    /**
     * @param string $signature
     * @return string
     */
    private function getSignature(string $signature)
    {
        return hash_hmac('sha256', $signature, $this->secretKey);
    }
    /**
     * @param string $urlApi
     * @param array $request
     * @return array|null
     */
    public function openClosePosition(string $urlApi,array $request) {
        $request['timestamp'] = time() * 1000;
        $buildQuery = http_build_query($request);
        $signature = $this->getSignature($buildQuery);

        if(!empty($buildQuery)) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $urlApi);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, FALSE);
            curl_setopt($ch, CURLOPT_POST, TRUE);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $buildQuery . "&signature=" . $signature);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "X-MBX-APIKEY: " . $this->apiKey));
            $response = curl_exec($ch);
            curl_close($ch);

            return [
                'request' => $buildQuery,
                'response' => $response
            ];
        }else {
            return NULL;
        }
    }

我做错了什么?

我解决了问题,我昨天打了相同的电话,没有做任何更改,似乎binance没有立即更新我钱包的状态。

binance定义了几种类型的钱包和各自的API组(现货、保证金、储蓄和期货——也许还有其他一些我不知道的)。您的问题没有显示完整的请求路径或您是如何获得资金信息的,请检查您是否尝试从您的资金所在的同一个钱包发送订单。今晚我尝试进行其他测试,我重新加载了今天早上使用的同一个钱包,显然刷新速度太慢,因此即使我将资金转移到指定的货币,它并不总是告诉我资金不足。提出请求的API是:
    /**
     * @param string $signature
     * @return string
     */
    private function getSignature(string $signature)
    {
        return hash_hmac('sha256', $signature, $this->secretKey);
    }
    /**
     * @param string $urlApi
     * @param array $request
     * @return array|null
     */
    public function openClosePosition(string $urlApi,array $request) {
        $request['timestamp'] = time() * 1000;
        $buildQuery = http_build_query($request);
        $signature = $this->getSignature($buildQuery);

        if(!empty($buildQuery)) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $urlApi);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, FALSE);
            curl_setopt($ch, CURLOPT_POST, TRUE);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $buildQuery . "&signature=" . $signature);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "X-MBX-APIKEY: " . $this->apiKey));
            $response = curl_exec($ch);
            curl_close($ch);

            return [
                'request' => $buildQuery,
                'response' => $response
            ];
        }else {
            return NULL;
        }
    }