🐛 fix(payment): Refactor purchaseCheckout usage and remove redundant code

This commit is contained in:
web@ppanel 2025-03-08 20:04:33 +07:00
parent 35f92c9329
commit a5e2079ddc
5 changed files with 6 additions and 43 deletions

View File

@ -49,12 +49,15 @@ export default function Page() {
const { data: payment } = useQuery({
enabled: !!orderNo && data?.status === 1,
queryKey: ['checkoutOrder', orderNo],
queryKey: ['purchaseCheckout', orderNo],
queryFn: async () => {
const { data } = await purchaseCheckout({
orderNo: orderNo!,
returnUrl: window.location.href,
});
if (data.data?.type === 'link' && data.data.checkout_url) {
window.location.href = data.data.checkout_url;
}
return data?.data;
},
});

View File

@ -5,7 +5,6 @@ import DurationSelector from '@/components/subscribe/duration-selector';
import PaymentMethods from '@/components/subscribe/payment-methods';
import useGlobalStore from '@/config/use-global';
import { preCreateOrder, purchase } from '@/services/user/order';
import { purchaseCheckout } from '@/services/user/portal';
import { useQuery } from '@tanstack/react-query';
import { Button } from '@workspace/ui/components/button';
import { Card, CardContent } from '@workspace/ui/components/card';
@ -70,20 +69,11 @@ export default function Purchase({ subscribe, setSubscribe }: Readonly<PurchaseP
const response = await purchase(params as API.PurchaseOrderRequest);
const orderNo = response.data.data?.order_no;
if (orderNo) {
const { data } = await purchaseCheckout({
orderNo,
returnUrl: `${window.location.origin}/payment?order_no=${orderNo}`,
});
const type = data.data?.type;
const checkout_url = data.data?.checkout_url;
if (type === 'link') {
window.location.href = checkout_url!;
}
getUserInfo();
router.push(`/payment?order_no=${orderNo}`);
}
} catch (error) {
console.log(error);
/* empty */
}
});
}, [params, router, getUserInfo]);

View File

@ -3,7 +3,6 @@
import useGlobalStore from '@/config/use-global';
import { recharge } from '@/services/user/order';
import { getAvailablePaymentMethods } from '@/services/user/payment';
import { purchaseCheckout } from '@/services/user/portal';
import { useQuery } from '@tanstack/react-query';
import { Button, ButtonProps } from '@workspace/ui/components/button';
import {
@ -134,15 +133,6 @@ export default function Recharge(props: Readonly<ButtonProps>) {
const response = await recharge(params);
const orderNo = response.data.data?.order_no;
if (orderNo) {
const { data } = await purchaseCheckout({
orderNo,
returnUrl: `${window.location.origin}/payment?order_no=${orderNo}`,
});
const type = data.data?.type;
const checkout_url = data.data?.checkout_url;
if (type === 'link') {
window.location.href = checkout_url!;
}
router.push(`/payment?order_no=${orderNo}`);
setOpen(false);
}

View File

@ -5,7 +5,6 @@ import DurationSelector from '@/components/subscribe/duration-selector';
import PaymentMethods from '@/components/subscribe/payment-methods';
import useGlobalStore from '@/config/use-global';
import { preCreateOrder, renewal } from '@/services/user/order';
import { purchaseCheckout } from '@/services/user/portal';
import { useQuery } from '@tanstack/react-query';
import { Button } from '@workspace/ui/components/button';
import { Card, CardContent } from '@workspace/ui/components/card';
@ -78,20 +77,11 @@ export default function Renewal({ id, subscribe }: Readonly<RenewalProps>) {
const response = await renewal(params as API.RenewalOrderRequest);
const orderNo = response.data.data?.order_no;
if (orderNo) {
const { data } = await purchaseCheckout({
orderNo,
returnUrl: `${window.location.origin}/payment?order_no=${orderNo}`,
});
const type = data.data?.type;
const checkout_url = data.data?.checkout_url;
if (type === 'link') {
window.location.href = checkout_url!;
}
getUserInfo();
router.push(`/payment?order_no=${orderNo}`);
}
} catch (error) {
console.log(error);
/* empty */
}
});
}, [params, router, getUserInfo]);

View File

@ -3,7 +3,6 @@
import { Display } from '@/components/display';
import useGlobalStore from '@/config/use-global';
import { resetTraffic } from '@/services/user/order';
import { purchaseCheckout } from '@/services/user/portal';
import { Button } from '@workspace/ui/components/button';
import {
Dialog,
@ -85,15 +84,6 @@ export default function ResetTraffic({ id, replacement }: Readonly<ResetTrafficP
const response = await resetTraffic(params);
const orderNo = response.data.data?.order_no;
if (orderNo) {
const { data } = await purchaseCheckout({
orderNo,
returnUrl: `${window.location.origin}/payment?order_no=${orderNo}`,
});
const type = data.data?.type;
const checkout_url = data.data?.checkout_url;
if (type === 'link') {
window.location.href = checkout_url!;
}
getUserInfo();
router.push(`/payment?order_no=${orderNo}`);
}