fix: payment
This commit is contained in:
parent
1170b0bdc6
commit
822a6a2535
@ -44,6 +44,8 @@ const { domain, pathname } = (() => {
|
|||||||
export default () => {
|
export default () => {
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
const phone = useMediaQuery(theme.breakpoints.down(375));
|
const phone = useMediaQuery(theme.breakpoints.down(375));
|
||||||
|
const redirectUrl = new URL(`https://${domain}.pena.digital${pathname}`);
|
||||||
|
redirectUrl.searchParams.append("afterpay", "true");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box
|
<Box
|
||||||
@ -89,7 +91,7 @@ export default () => {
|
|||||||
>Ваш платеж принят и в течение 10 минут товары будут зачислены</Typography>
|
>Ваш платеж принят и в течение 10 минут товары будут зачислены</Typography>
|
||||||
<Button
|
<Button
|
||||||
component={Link}
|
component={Link}
|
||||||
to={`https://${domain}.pena.digital${pathname}`}
|
to={redirectUrl.toString()}
|
||||||
replace={true}
|
replace={true}
|
||||||
variant="pena-contained-dark"
|
variant="pena-contained-dark"
|
||||||
>На главную</Button>
|
>На главную</Button>
|
||||||
|
@ -1,70 +1,87 @@
|
|||||||
import { useEffect, useState } from "react"
|
import { useEffect, useState } from "react";
|
||||||
import axios, { AxiosResponse } from "axios"
|
import axios, { AxiosResponse } from "axios";
|
||||||
import { ApologyPage } from "../ApologyPage"
|
import { ApologyPage } from "../ApologyPage";
|
||||||
import { useNavigate } from "react-router-dom"
|
import { useNavigate } from "react-router-dom";
|
||||||
import { clearAuthToken, getAuthToken, getMessageFromFetchError, setAuthToken, useUserAccountFetcher, useUserFetcher } from "@frontend/kitui";
|
import {
|
||||||
import { clearUserData, setUser, setUserAccount, setUserId, useUserStore } from "@root/stores/user";
|
clearAuthToken,
|
||||||
|
getMessageFromFetchError,
|
||||||
|
setAuthToken,
|
||||||
|
useUserAccountFetcher,
|
||||||
|
useUserFetcher,
|
||||||
|
getAuthToken,
|
||||||
|
} from "@frontend/kitui";
|
||||||
|
import {
|
||||||
|
clearUserData,
|
||||||
|
setUser,
|
||||||
|
setUserAccount,
|
||||||
|
setUserId,
|
||||||
|
useUserStore,
|
||||||
|
} from "@root/stores/user";
|
||||||
import { logout } from "@root/api/auth";
|
import { logout } from "@root/api/auth";
|
||||||
import { clearCustomTariffs } from "@root/stores/customTariffs";
|
import { clearCustomTariffs } from "@root/stores/customTariffs";
|
||||||
import { clearTickets } from "@root/stores/tickets";
|
import { clearTickets } from "@root/stores/tickets";
|
||||||
|
|
||||||
|
|
||||||
function refresh(token: string) {
|
function refresh(token: string) {
|
||||||
return axios<never, AxiosResponse<{ accessToken: string; }>>(process.env.REACT_APP_DOMAIN + "/auth/refresh", {
|
return axios<never, AxiosResponse<{ accessToken: string }>>(
|
||||||
|
process.env.REACT_APP_DOMAIN + "/auth/refresh",
|
||||||
|
{
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": "Bearer " + token,
|
Authorization: "Bearer " + token,
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
},
|
},
|
||||||
method: "POST"
|
method: "POST",
|
||||||
});
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const params = new URLSearchParams(window.location.search)
|
const params = new URLSearchParams(window.location.search);
|
||||||
const action = params.get("action")
|
const action = params.get("action");
|
||||||
const dif = params.get("dif")
|
const dif = params.get("dif");
|
||||||
const token = params.get("data")
|
const token = params.get("data");
|
||||||
const userId = params.get("userid")
|
const userId = params.get("userid");
|
||||||
|
|
||||||
|
let first = true;
|
||||||
let first = true
|
|
||||||
|
|
||||||
export default function QuizPayment() {
|
export default function QuizPayment() {
|
||||||
const navigate = useNavigate()
|
const navigate = useNavigate();
|
||||||
const [message, setMessage] = useState("Идёт загрузка")
|
const [message, setMessage] = useState("Идёт загрузка");
|
||||||
const user = useUserStore((state) => state.user);
|
const user = useUserStore((state) => state.user);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
useEffect(
|
useEffect(
|
||||||
function redirectIfSignedIn() {
|
function redirectIfSignedIn() {
|
||||||
console.log(user)
|
if (!first && user?._id === userId)
|
||||||
if (user && !first && user._id === userId) navigate(`/payment?action=${action}&dif=${dif}`, { replace: true })
|
navigate(`/payment?action=${action}&dif=${dif}`, { replace: true });
|
||||||
},
|
},
|
||||||
[navigate, user]
|
[navigate, user]
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log("Я начал работать")
|
console.log("Я начал работать");
|
||||||
|
|
||||||
if (first) {
|
if (first) {
|
||||||
history.pushState(null, document.title, "/quizpayment");
|
history.pushState(null, document.title, "/quizpayment");
|
||||||
try {
|
try {
|
||||||
first = false
|
first = false;
|
||||||
|
|
||||||
|
if (user?._id === userId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (action && dif && token) {
|
if (action && dif && token) {
|
||||||
(async () => {
|
(async () => {
|
||||||
// const data = await refresh(token)
|
// const data = await refresh(token)
|
||||||
// console.log(token)
|
// console.log(token)
|
||||||
console.log(getAuthToken())
|
|
||||||
if (getAuthToken()) {
|
if (getAuthToken()) {
|
||||||
await logout()
|
await logout();
|
||||||
clearAuthToken();
|
clearAuthToken();
|
||||||
clearUserData();
|
clearUserData();
|
||||||
clearCustomTariffs();
|
clearCustomTariffs();
|
||||||
clearTickets();
|
clearTickets();
|
||||||
}
|
}
|
||||||
setAuthToken(token)
|
|
||||||
|
setAuthToken(token);
|
||||||
|
|
||||||
// setAuthToken(data.data.accessToken)
|
// setAuthToken(data.data.accessToken)
|
||||||
console.log("делаем юзера ", userId)
|
console.log("делаем юзера ", userId);
|
||||||
setUserId(userId);
|
setUserId(userId);
|
||||||
|
|
||||||
// useUserFetcher({
|
// useUserFetcher({
|
||||||
@ -77,8 +94,8 @@ history.pushState(null, document.title, "/quizpayment");
|
|||||||
// },
|
// },
|
||||||
// onError: () => { },
|
// onError: () => { },
|
||||||
// })
|
// })
|
||||||
return
|
return;
|
||||||
})()
|
})();
|
||||||
} else {
|
} else {
|
||||||
var link = document.createElement("a");
|
var link = document.createElement("a");
|
||||||
link.href = "https://quiz.pena.digital/tariffs";
|
link.href = "https://quiz.pena.digital/tariffs";
|
||||||
@ -86,8 +103,8 @@ history.pushState(null, document.title, "/quizpayment");
|
|||||||
link.click();
|
link.click();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e);
|
||||||
setMessage("Произошла ошибка")
|
setMessage("Произошла ошибка");
|
||||||
var link = document.createElement("a");
|
var link = document.createElement("a");
|
||||||
link.href = "https://quiz.pena.digital/tariffs";
|
link.href = "https://quiz.pena.digital/tariffs";
|
||||||
document.body.appendChild(link);
|
document.body.appendChild(link);
|
||||||
@ -95,7 +112,5 @@ history.pushState(null, document.title, "/quizpayment");
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return <ApologyPage message={message} />;
|
||||||
<ApologyPage message={message} />
|
}
|
||||||
)
|
|
||||||
};
|
|
||||||
|
Loading…
Reference in New Issue
Block a user