возможность помнить кудав вернуться в квизе
This commit is contained in:
parent
0948e41294
commit
ddc1467089
@ -16,15 +16,25 @@ interface PaymentBody {
|
|||||||
|
|
||||||
export const sendPayment = async ({
|
export const sendPayment = async ({
|
||||||
userId,
|
userId,
|
||||||
|
wayback,
|
||||||
body,
|
body,
|
||||||
fromSquiz,
|
fromSquiz,
|
||||||
paymentPurpose,
|
paymentPurpose,
|
||||||
}: {
|
}: {
|
||||||
userId: string;
|
userId: string;
|
||||||
|
wayback: string;
|
||||||
body: PaymentBody;
|
body: PaymentBody;
|
||||||
fromSquiz: boolean;
|
fromSquiz: boolean;
|
||||||
paymentPurpose: "paycart" | "replenishwallet";
|
paymentPurpose: "paycart" | "replenishwallet";
|
||||||
}): Promise<[SendPaymentResponse | null, string?]> => {
|
}): Promise<[SendPaymentResponse | null, string?]> => {
|
||||||
|
|
||||||
|
|
||||||
|
let returnUrl= `https://${isStaging}hub.pena.digital/afterpay?from=${
|
||||||
|
fromSquiz ? "quiz" : "hub"
|
||||||
|
}&purpose=${paymentPurpose}&userid=${userId}`
|
||||||
|
|
||||||
|
if (wayback) returnUrl += `&wayback=${wayback}`
|
||||||
|
|
||||||
const reqeustBody = {
|
const reqeustBody = {
|
||||||
currency: "RUB",
|
currency: "RUB",
|
||||||
bankCard: {
|
bankCard: {
|
||||||
@ -36,9 +46,7 @@ export const sendPayment = async ({
|
|||||||
},
|
},
|
||||||
phoneNumber: "79000000000",
|
phoneNumber: "79000000000",
|
||||||
login: "login_test",
|
login: "login_test",
|
||||||
returnUrl: `https://${isStaging}hub.pena.digital/afterpay?from=${
|
returnUrl,
|
||||||
fromSquiz ? "quiz" : "hub"
|
|
||||||
}&purpose=${paymentPurpose}&userid=${userId}`,
|
|
||||||
...body,
|
...body,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ export default () => {
|
|||||||
const userId = useUserStore((state) => state.user?._id);
|
const userId = useUserStore((state) => state.user?._id);
|
||||||
const [searchParams] = useSearchParams();
|
const [searchParams] = useSearchParams();
|
||||||
const paymentUserId = searchParams.get("userid");
|
const paymentUserId = searchParams.get("userid");
|
||||||
|
const wayback = searchParams.get("wayback");
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const from = searchParams.get("from") || "hub";
|
const from = searchParams.get("from") || "hub";
|
||||||
@ -70,9 +71,10 @@ export default () => {
|
|||||||
const domain = (host.includes("s") ? "s" : "") + from;
|
const domain = (host.includes("s") ? "s" : "") + from;
|
||||||
const pathname = from === "hub" ? "/tariffs" : "/list";
|
const pathname = from === "hub" ? "/tariffs" : "/list";
|
||||||
|
|
||||||
setRedirectUrl(
|
let redirect = `https://${domain}.pena.digital${pathname}?afterpay=${true}&userid=${userId}`
|
||||||
`https://${domain}.pena.digital${pathname}?afterpay=${true}&userid=${userId}`
|
if (wayback) redirect += `&wayback=${wayback}`
|
||||||
);
|
|
||||||
|
setRedirectUrl(redirect);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -133,3 +135,5 @@ export default () => {
|
|||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//https://shub.pena.digital/quizpayment?action=squizpay&dif=50000&data=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4NDZlODc4hLWF1d__aACP1IpA&userid=6846e878c149e4d24ebf50f3&from=AI&wayback=ai_27964
|
@ -65,14 +65,18 @@ export default function Payment() {
|
|||||||
const [sorryModalOpen, setSorryModalOpen] = useState<boolean>(false);
|
const [sorryModalOpen, setSorryModalOpen] = useState<boolean>(false);
|
||||||
const [paymentValueField, setPaymentValueField] = useState<string>("0");
|
const [paymentValueField, setPaymentValueField] = useState<string>("0");
|
||||||
const [paymentLink, setPaymentLink] = useState<string>("");
|
const [paymentLink, setPaymentLink] = useState<string>("");
|
||||||
const [fromSquiz, setIsFromSquiz] = useState<boolean>(false);
|
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const verificationStatus = useUserStore((state) => state.verificationStatus);
|
const verificationStatus = useUserStore((state) => state.verificationStatus);
|
||||||
const userId = useUserStore((state) => state.userId);
|
const userId = useUserStore((state) => state.userId);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const handleCustomBackNavigation = useHistoryTracker();
|
const handleCustomBackNavigation = useHistoryTracker();
|
||||||
|
|
||||||
const {diffMoney, setNewDiff} = useDiffMoney()
|
|
||||||
|
const [fromSquiz, setIsFromSquiz] = useState<boolean>(false);
|
||||||
|
const [waybackToSomeSite, setWaybackToSomeSite] = useState<string>("");
|
||||||
|
|
||||||
|
|
||||||
|
const { diffMoney, setNewDiff } = useDiffMoney()
|
||||||
|
|
||||||
const notEnoughMoneyAmount =
|
const notEnoughMoneyAmount =
|
||||||
(location.state?.notEnoughMoneyAmount as number) ?? 0;
|
(location.state?.notEnoughMoneyAmount as number) ?? 0;
|
||||||
@ -81,12 +85,12 @@ export default function Payment() {
|
|||||||
bigDecimal.multiply(parseFloat(paymentValueField), 100)
|
bigDecimal.multiply(parseFloat(paymentValueField), 100)
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (diffMoney > 0) {
|
if (diffMoney > 0) {
|
||||||
setNewDiff(0)
|
setNewDiff(0);
|
||||||
setPaymentValueField((diffMoney / 100).toString())
|
setPaymentValueField((diffMoney / 100).toString());
|
||||||
}
|
}
|
||||||
}, [diffMoney])
|
}, [diffMoney])
|
||||||
|
|
||||||
useLayoutEffect(() => {
|
useLayoutEffect(() => {
|
||||||
setPaymentValueField((notEnoughMoneyAmount / 100).toString());
|
setPaymentValueField((notEnoughMoneyAmount / 100).toString());
|
||||||
@ -96,10 +100,14 @@ export default function Payment() {
|
|||||||
setIsFromSquiz(true);
|
setIsFromSquiz(true);
|
||||||
setPaymentValueField((Number(params.get("dif") || "0") / 100).toString());
|
setPaymentValueField((Number(params.get("dif") || "0") / 100).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const wayback = params.get("wayback");
|
||||||
|
if (wayback) setWaybackToSomeSite(wayback);
|
||||||
|
|
||||||
navigate(`/payment`, {
|
navigate(`/payment`, {
|
||||||
replace: true,
|
replace: true,
|
||||||
});
|
});
|
||||||
}, [ ]);
|
}, []);
|
||||||
|
|
||||||
async function handleChoosePaymentClick() {
|
async function handleChoosePaymentClick() {
|
||||||
if (!selectedPaymentMethod) {
|
if (!selectedPaymentMethod) {
|
||||||
@ -116,6 +124,7 @@ export default function Payment() {
|
|||||||
const [sendPaymentResponse, sendPaymentError] = await sendPayment({
|
const [sendPaymentResponse, sendPaymentError] = await sendPayment({
|
||||||
userId: userId ?? "",
|
userId: userId ?? "",
|
||||||
fromSquiz,
|
fromSquiz,
|
||||||
|
wayback: waybackToSomeSite,
|
||||||
body: {
|
body: {
|
||||||
type: selectedPaymentMethod,
|
type: selectedPaymentMethod,
|
||||||
amount: Number(
|
amount: Number(
|
||||||
|
Loading…
Reference in New Issue
Block a user