import React, { useState, useEffect } from 'react' import { View, Text, Image, Input } from '@tarojs/components' import Taro, { useRouter } from '@tarojs/taro' import { useUser } from '@/hooks/useUser' import { useScrollHeight } from '@/hooks/useScrollHeight' import { getRegisterPayInfo, getMyRegisterStatus, RegisterPayInfo } from '@/api/shop/shopMemberRegister' import { getUserInfo } from '@/api/passport/login' import PayModal from '@/components/business/PayModal' definePageConfig({ navigationBarTitleText: '支付注册费', }) const RegisterPayPage: React.FC = () => { const router = useRouter() const { user, isLoggedIn, refreshUser } = useUser() const scrollHeight = useScrollHeight() const [loading, setLoading] = useState(true) const [payInfo, setPayInfo] = useState(null) const [showPayModal, setShowPayModal] = useState(false) const [userStatus, setUserStatus] = useState(null) // 获取URL参数 const phone = router.params.phone || '' const registerId = router.params.registerId ? Number(router.params.registerId) : 0 useEffect(() => { if (!isLoggedIn) { Taro.navigateTo({ url: '/passport/login' }) return } checkAndFetchData() }, [isLoggedIn]) // 检查用户状态并获取支付信息 const checkAndFetchData = async () => { try { setLoading(true) // 检查当前用户状态 const status = await getMyRegisterStatus() setUserStatus(status) // 如果已经是会员,跳转到会员中心 if (status?.isDealer) { Taro.showModal({ title: '提示', content: '您已经是会员,无需再次支付注册费', showCancel: false, success: () => { Taro.navigateBack() }, }) return } // 获取支付信息 if (phone) { const info = await getRegisterPayInfo(phone) if (info) { setPayInfo(info) } else { Taro.showToast({ title: '未找到支付信息,请联系上级会员', icon: 'none' }) } } else { // 如果没有传入手机号,尝试获取当前用户的注册记录 if (status?.register) { setPayInfo({ id: status.register.id, phone: status.register.phone, realName: status.register.realName, registerFee: status.register.registerFee, dealerName: status.register.dealerName, dealerPhone: status.register.dealerPhone, }) } } } catch (e: any) { console.error('获取数据失败:', e) Taro.showToast({ title: e.message || '获取数据失败', icon: 'none' }) } finally { setLoading(false) } } // 发起支付 const handlePay = () => { if (!payInfo) { Taro.showToast({ title: '支付信息加载中,请稍候', icon: 'none' }) return } setShowPayModal(true) } // 支付成功回调 const handlePaySuccess = async () => { setShowPayModal(false) Taro.showModal({ title: '支付成功', content: '恭喜!您已成为平台会员,请使用手机号登录查看。', showCancel: false, success: () => { // 刷新用户信息 refreshUser?.() Taro.redirectTo({ url: '/pages/user/index' }) }, }) } // 支付失败回调 const handlePayFail = (err: string) => { setShowPayModal(false) Taro.showToast({ title: err || '支付失败', icon: 'none' }) } if (!isLoggedIn) return null if (loading) { return ( 加载中... ) } return ( {/* 支付卡片 */} {/* 顶部背景 */} 注册费 ¥ 198 .00 {/* 支付信息 */} 💡 成为平台会员 支付注册费后,您将成为平台正式会员,享受会员专属权益和分佣待遇。 {/* 费用明细 */} 费用明细 会员费(上级代收) ¥298.00 注册费(平台收取) ¥198.00 合计 ¥496.00 {/* 提示 */} ⚠️ 会员费(¥298)由上级会员线下收取,请联系您的上级确认。注册费(¥198)通过平台支付。 {/* 会员权益 */} 会员权益 {[ { icon: '💰', text: '下级消费获得佣金' }, { icon: '🎁', text: '兑换权益包' }, { icon: '📈', text: '团队业绩统计' }, { icon: '💳', text: '佣金提现到微信' }, ].map((item, idx) => ( {item.icon} {item.text} ))} {/* 下一步按钮 */} 立即支付 ¥198.00 {/* 联系客服 */} Taro.navigateTo({ url: '/pages/user/customer-service/index' })} > 遇到问题?联系客服 {/* 支付弹窗 */} {showPayModal && payInfo && ( setShowPayModal(false)} /> )} ) } export default RegisterPayPage