ALIEZ преди 1 месец
родител
ревизия
587bd60586
променени са 2 файла, в които са добавени 16 реда и са изтрити 10 реда
  1. 8 2
      src/components/site-header.tsx
  2. 8 8
      src/lib/checkout-api.ts

+ 8 - 2
src/components/site-header.tsx

@@ -104,6 +104,12 @@ export function SiteHeader() {
   const [open, setOpen] = useState(false);
   const [mega, setMega] = useState<string | null>(null);
   const { user, logout, isReady } = useAuth();
+  const handleLogout = () => {
+    logout();
+    if (typeof window !== "undefined") {
+      window.location.reload();
+    }
+  };
 
   useEffect(() => {
     document.body.style.overflow = open ? "hidden" : "";
@@ -253,7 +259,7 @@ export function SiteHeader() {
                 aria-hidden
               />
             ) : user ? (
-              <UserAvatarMenu user={user} onLogout={logout} />
+              <UserAvatarMenu user={user} onLogout={handleLogout} />
             ) : (
               <>
                 <Link
@@ -384,8 +390,8 @@ export function SiteHeader() {
                     type="button"
                     className="rounded-xl bg-slate-800 py-3 text-center text-sm font-semibold text-white transition hover:bg-slate-900"
                     onClick={() => {
-                      logout();
                       setOpen(false);
+                      handleLogout();
                     }}
                   >
                     {ta("logout")}

+ 8 - 8
src/lib/checkout-api.ts

@@ -161,12 +161,8 @@ function normalizeChannelList(raw: unknown): RemittanceChannel[] {
 }
 
 export async function fetchRemittanceChannels(): Promise<RemittanceChannel[]> {
-  let raw: unknown;
-  try {
-    raw = await postRemittance<unknown>("/remit/channel/list", {});
-  } catch {
-    raw = await postRemittance<unknown>("/remittance/channel/list", {});
-  }
+  // 存款通道固定走 remittance 路径,避免误取到提款通道(/remit/channel/list)。
+  const raw = await postRemittance<unknown>("/remittance/channel/list", {});
   return normalizeChannelList(raw);
 }
 
@@ -208,10 +204,14 @@ export async function submitXfgPayOrder(input: {
   payPhone: string;
 }): Promise<{ raw: unknown; resultUrl: string | null }> {
   const normalizedRequestUrl = `/${input.requestUrl.replace(/^\/+|\/+$/g, "")}`;
+  // 仍以后端下发 requestUrl 为准(动态);仅当明显是提款路径时兜底,避免误打提款申请。
+  const payRequestPath = /^\/withdraw(\/|$)/i.test(normalizedRequestUrl)
+    ? "/xfgpay/pay"
+    : normalizedRequestUrl;
   const amount = String(input.amount);
   const path = input.bankCode
-    ? `${normalizedRequestUrl}/1/${encodeURIComponent(amount)}/${encodeURIComponent(input.bankCode)}/0`
-    : `${normalizedRequestUrl}/1/${encodeURIComponent(amount)}/0`;
+    ? `${payRequestPath}/1/${encodeURIComponent(amount)}/${encodeURIComponent(input.bankCode)}/0`
+    : `${payRequestPath}/1/${encodeURIComponent(amount)}/0`;
   const body = {
     goodIds: input.goodIds,
     payName: input.payName,