Код: Выделить всё
interceptCartRequests() {
const originalFetch = window.fetch;
const self = this;
window.fetch = async function (...args) {
const response = await originalFetch.apply(this, args);
const url = args[0]?.toString() || "";
if (url.includes("/cart/add") || url.includes("/cart/update") || url.includes("/cart/change")) {
setTimeout(() => {
self.checkCartChanges();
}, 100);
}
return response;
};
}
async checkCartChanges() {
const cartToken = await this.getCartToken();
...
}
async getCartToken() {
try {
const response = await fetch("/cart.js");
if (!response.ok) throw new Error("Failed to fetch cart");
const cart = await response.json();
return cart.token;
} catch (error) {
utils.error("Error fetching cart token:", error);
return null;
}
}
< /code>
Как вы можете видеть выше, я использую API Ajax для извлечения GID телеги из моего расширения. b3d1fd695ce07e26efeb33ae82f8aec1z это, если, конечно, пока я не добавлю продукт в корзину, то я получу постоянную корзину, что -то вроде hwn2cubdcg4axclftjnh761l? Key = 285D69273147954feed138de29d4f8b7 .
Дело в том, что GID не будет установлен, пока я не могу отслеживать. Я имею в виду, что я пытаюсь получить /cart.js < /code> после того, как добавление в корзину было завершено, но я все равно получу временную идентификатор корзины, но если я получу /cart.js < /code> через несколько секунд, я получу постоянную GID. Как бы вы порекомендовали мне это сделать?
Подробнее здесь: https://stackoverflow.com/questions/797 ... o-the-cart
Мобильная версия