Post запрос к серверу steam

Я хотел создать заказ при нажатии на кнопку

1 запрос к серверу

globalThis.httpPostErrorPause = async function(httpUrl, httpParams) {
    return new Promise((resolve, reject) => {
        const myHeaders = new Headers();
        myHeaders.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
        let request = new Request(httpUrl,
            {
                method: 'POST',
                headers: myHeaders,
                body: httpParams,
            });
    
            let fetchRequest = (window.content !== undefined) ? window.content.fetch : fetch;
    
        fetchRequest(request).then((response) => {
            if (!response.ok) {
                console.log(`Code: ${response.status} Text: ${response.statusText}`);
                reject({ status: response.status, statusText: response.statusText });
            }
            return response.json();
        }).then((nextResponseJSON) => {
            if (nextResponseJSON === null){
                reject('Error!');
            }
            else if (nextResponseJSON.success === 1) {
                resolve(nextResponseJSON);
            }
            else if (nextResponseJSON.success === 29) {
                resolve(nextResponseJSON);
            }
            else {
                reject(nextResponseJSON.message);
            }
        }).catch((error) => {
            console.log(error);
            reject(error);
        });
    });
    }

Функция обработчика кнопки

async function createBuyOrder() {
    let appid = this.getAttribute("appid");
    let hashname = encodeURIComponent(this.getAttribute("hashname"));
    let item_id = this.getAttribute("item_id");
    let inputPriceDom = document.getElementById(`myItemPrice${item_id}`);
    let itemCountDom =document.getElementById(`myItemQuality${item_id}`);
    if (inputPriceDom.value.trim() == '' || itemCountDom.value.trim() == '' || itemCountDom.value.trim() <= 0) {
        if (document.getElementById(`error${item_id}`)) return; 
        let error = document.createElement('p');
        error.innerText = "input value";
        error.id = `error${item_id}`;
        itemCountDom.after(error);
        return; 
    }
    let inputPrice = inputPriceDom.value.trim();
    let itemCount = itemCountDom.value.trim();
    if(appid !== null && hashname !== null && item_id !== null) {
        let params = `sessionid=${sessionId}&currency=1&appid=${appid}&market_hash_name=${hashname}&price_total=${Math.round(inputPrice * 100 * itemCount)}&quantity=${itemCount}&billing_state=&save_my_address=0`;
        let url = "https://steamcommunity.com/market/createbuyorder/";
        let serverResponse = await globalThis.httpPostErrorPause(url, params);
        console.log(serverResponse.success , +serverResponse.success, typeof serverResponse.success);
        let htmlResponce = document.getElementById(`responceServerRequest_${item_id}`);
        if (+serverResponse.success == 1) {
            document.getElementById(`cancelBuyOrder_${item_id}`).setAttribute("buyOrderId", +serverResponse.buy_orderid);
        }
        htmlResponce.innerText = (+serverResponse.success == 29) ? serverResponse.message : 
        (+serverResponse.success == 1) ? "Price updated" : "Eroor"; // message: "У вас уже есть заказ на этот предмет. Вы должны либо ." success: 29{buy_orderid: "4562009753" success: 1}
    }
}

функцию обращения к северу я проверял в консоли и она работает, но в программе она возврашает Code: 400 Text: Bad Request и из за неё он ругается uncaught exception: Object

код программы https://drive.google.com/file/d/1addqGO_6SlaZIJyWYjdWQXSIfHxGmbFv/view?usp=sharing

заранее спасибо за помощь


Ответы (0 шт):