оплата через хаб
All checks were successful
Deploy / CreateImage (push) Successful in 7m43s
Deploy / DeployService (push) Successful in 24s

This commit is contained in:
Nastya 2025-06-08 23:23:24 +03:00
parent eb5f8168c8
commit ac7c001738
2 changed files with 45 additions and 21 deletions

@ -11,6 +11,10 @@ import { useSnackbar } from "notistack";
import { PayModal } from "./PayModal"; import { PayModal } from "./PayModal";
import { useUserStore } from "@/stores/user"; import { useUserStore } from "@/stores/user";
import { cartApi } from "@/api/cart"; import { cartApi } from "@/api/cart";
import { outCart } from "../Tariffs/Tariffs";
import { inCart } from "../Tariffs/Tariffs";
import { isTestServer } from "@/utils/hooks/useDomainDefine";
import { useToken } from "@frontend/kitui";
const tariff = "6844b8858258f5cc35791ef7"; const tariff = "6844b8858258f5cc35791ef7";
export default function PersonalizationAI() { export default function PersonalizationAI() {
@ -22,6 +26,9 @@ export default function PersonalizationAI() {
const quiz = useCurrentQuiz(); const quiz = useCurrentQuiz();
const { enqueueSnackbar } = useSnackbar(); const { enqueueSnackbar } = useSnackbar();
const privilegesOfUser = useUserStore((state) => state.userAccount?.privileges); const privilegesOfUser = useUserStore((state) => state.userAccount?.privileges);
const user = useUserStore((state) => state.customerAccount);
const token = useToken();
const userId = useUserStore((state) => state.userId);
const [isStartCreate, setStartCreate] = useState(false); const [isStartCreate, setStartCreate] = useState(false);
const [gender, setGender] = useState<string>(''); const [gender, setGender] = useState<string>('');
@ -177,27 +184,44 @@ export default function PersonalizationAI() {
} }
}; };
const tryBuy = () => { const tryBuy = async ({ id, price }: { id: string; price: number }) => {
alert("старт покупки") //Если в корзине что-то было - выкладываем содержимое и запоминаем чо там лежало
/* if (user.cart.length > 0) {
// Добавляем тариф в корзину outCart(user.cart);
}
//Добавляем желаемый тариф в корзину
const [_, addError] = await cartApi.add(tariff); const [_, addError] = await cartApi.add(tariff);
if (addError) { if (addError) {
enqueueSnackbar('Не удалось добавить тариф в корзину', { variant: 'error' }); //Развращаем товары в корзину
return false; inCart();
return;
} }
// Пытаемся оплатить //Если нам хватает денежек - покупаем тариф
const [data, payError] = await cartApi.pay(); const [data, payError] = await cartApi.pay();
if (payError) {
enqueueSnackbar('Не удалось оплатить тариф', { variant: 'error' }); if (payError || !data) {
return false; //если денег не хватило
if (payError?.includes("insufficient funds") || payError?.includes("Payment Required")) {
var link = document.createElement("a");
link.href = `https://${isTestServer ? "s" : ""}hub.pena.digital/quizpayment?action=squizpay&dif=50000&data=${token}&userid=${userId}&from=AI`;
document.body.appendChild(link);
link.click();
return;
} }
return true; //другая ошибка
*/ enqueueSnackbar("Произошла ошибка. Попробуйте позже");
return;
} }
//Развращаем товары в корзину
inCart();
};
return ( return (
<> <>
<Container id="PersonalizationAI" maxWidth={false} sx={{ minHeight: "100%", p: "20px", height: " calc(100vh - 80px)", overflow: "auto", pt: "55px" }}> <Container id="PersonalizationAI" maxWidth={false} sx={{ minHeight: "100%", p: "20px", height: " calc(100vh - 80px)", overflow: "auto", pt: "55px" }}>

@ -387,7 +387,7 @@ export const inCart = () => {
localStorage.setItem("saveCart", "[]"); localStorage.setItem("saveCart", "[]");
} }
}; };
const outCart = (cart: string[]) => { export const outCart = (cart: string[]) => {
//Сделаем муторно и подольше, зато при прерывании сессии данные потеряются минимально //Сделаем муторно и подольше, зато при прерывании сессии данные потеряются минимально
if (cart.length > 0) { if (cart.length > 0) {
cart.forEach(async (id: string) => { cart.forEach(async (id: string) => {