"use client"; import React, { useState, useEffect, useCallback } from "react"; import { generateSignature } from "@/utils/crypto"; import webviewBaseRequest from "@/utils/webviewBaseRequest"; import Link from "next/link"; import { Toast } from "antd-mobile"; import { useRouter, useSearchParams } from "next/navigation"; export default function Vip() { const router = useRouter(); const searchParams = useSearchParams(); //检查用户是否是vip const [isVip, setIsVip] = useState(false); const [name, setName] = useState(""); const [isFetching, setIsFetching] = useState(true); const getBase = useCallback( (webviewBase) => { let searchParamsObj = null; let currentBaseCode = searchParams.get("base"); if (currentBaseCode) { let currentBase = JSON.parse(currentBaseCode); searchParamsObj = { ...currentBase }; } return searchParamsObj || webviewBase; }, [searchParams] ); const getUserData = async () => { const webviewBase = webviewBaseRequest(); let base = getBase(webviewBase); try { const signature = generateSignature({ ...base, mid: base.b_mid, }); const detailResponse = await fetch( `/api/account/list_by_mid?signature=${signature}`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ ...base, mid: base.b_mid, }), } ); const detailData = await detailResponse.json(); if (detailData.ret === -1) { Toast.show({ content: detailData.msg, }); return; } setName(detailData.data.account.name); if (detailData.data.account.is_a_member === 1) setIsVip(true); setIsFetching(false); } catch (error) { console.error(error); } }; //轮询请求 useEffect(() => { setTimeout(() => { getUserData(); }, 500); const intervalId = setInterval(() => { getUserData(); }, 2000); return () => clearInterval(intervalId); }, []); //创建充值订单 const [isLoading, setIsLoading] = useState(false); const createOrder = async (type = "alipay_h5") => { const webviewBase = webviewBaseRequest(); let base = getBase(webviewBase); if (base?.b_dt === 1 && base?.b_ver !== "1.5.0") { Toast.show({ content: "ios暂时无法开通会员,请等待版本更新", }); return; } const body = { ...base, product_id: "membership", pay_type: type, redirect_url: type === "yeepay_wxpay_h5" ? window.location.href : "", from: searchParams.get("base") ? "web" : "app", }; //如果是微信jsapi支付直接跳转到中间页 if (type === "wxpay_jsapi") { router.push(`/pay/${encodeURIComponent(JSON.stringify(body))}`); return; } setIsLoading(true); const signature = generateSignature(body); try { const response = await fetch( `/api/vas/create_order?signature=${signature}`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(body), } ); const data = await response.json(); if (data.ret === -1) { Toast.show({ content: data.msg, }); return; } switch (type) { case "yeepay_alipay_h5": router.push(`${data.data.yeepay_alipay_h5_param_str}`); break; case "yeepay_wxpay_h5": router.push(`${data.data.yeepay_wxpay_h5_param_str}`); break; case "alipay_h5": router.push(`${data.data.alipay_h5_param_str}`); break; case "wxpay_h5": router.push( `https://shop.tiefen.fun/pay/wxpay_h5/${encodeURIComponent( data.data.wxpay_h5_param_str )}` ); break; default: router.push(`${data.data.alipay_h5_param_str}`); break; } } catch (error) { console.error(error); } finally { setIsLoading(false); } }; if (isFetching) { return ( ); } return ( {isLoading && ( )} {isVip ? ( {name} ) : ( )} 会员权益 高清图片 下载保存 搜索筛选 发现心仪 身份标签 专属标识 专属客服 极速服务 会员规则 1、会员权限永久有效,开通后请勿传播平台付费内容; 2、更多特权内容敬请期待,详情请关注本页面会员权益信息变化。 注意事项 1、会员特权属于虚拟商品,一经售出概不退换; 2、请确保支付时您的网络环境保持畅通,避免因第三方网络环境导致的支付失败; 3、本项特权内容最终解释权归铁粉空间运营方所有。 {!isVip && ( createOrder("alipay_h5")} className="flex flex-row cursor-pointer gap-1.5 h-11 items-center justify-center bg-primary rounded-full" > 支付宝支付 确认购买即视为同意 《用户充值协议》 )} ); }
{name}
会员权益
高清图片
下载保存
搜索筛选
发现心仪
身份标签
专属标识
专属客服
极速服务
会员规则
1、会员权限永久有效,开通后请勿传播平台付费内容;
2、更多特权内容敬请期待,详情请关注本页面会员权益信息变化。
注意事项
1、会员特权属于虚拟商品,一经售出概不退换;
2、请确保支付时您的网络环境保持畅通,避免因第三方网络环境导致的支付失败;
3、本项特权内容最终解释权归铁粉空间运营方所有。
支付宝支付
确认购买即视为同意 《用户充值协议》