update pay function
This commit is contained in:
@@ -270,6 +270,46 @@ export default function SubscriptionContentNew() {
|
||||
try {
|
||||
const price = priceInfo?.final_amount || getCurrentPrice(selectedPlan);
|
||||
|
||||
// 检查是否为免费升级(剩余价值足够抵扣新套餐价格)
|
||||
if (price === 0 && priceInfo?.is_upgrade) {
|
||||
const response = await fetch('/api/subscription/free-upgrade', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
credentials: 'include',
|
||||
body: JSON.stringify({
|
||||
plan_name: selectedPlan.name,
|
||||
billing_cycle: selectedCycle,
|
||||
}),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
if (data.success) {
|
||||
subscriptionEvents.trackPaymentSuccessful({
|
||||
planName: selectedPlan.name,
|
||||
paymentMethod: 'free_upgrade',
|
||||
amount: 0,
|
||||
orderId: 'free_upgrade',
|
||||
transactionId: 'free_upgrade',
|
||||
});
|
||||
|
||||
toast({
|
||||
title: '升级成功!',
|
||||
description: data.message,
|
||||
status: 'success',
|
||||
duration: 5000,
|
||||
isClosable: true,
|
||||
});
|
||||
|
||||
onClose();
|
||||
setTimeout(() => window.location.reload(), 2000);
|
||||
return;
|
||||
} else {
|
||||
throw new Error(data.error || '免费升级失败');
|
||||
}
|
||||
}
|
||||
|
||||
subscriptionEvents.trackPaymentInitiated({
|
||||
planName: selectedPlan.name,
|
||||
paymentMethod: 'wechat_pay',
|
||||
@@ -1122,7 +1162,9 @@ export default function SubscriptionContentNew() {
|
||||
<HStack spacing={2}>
|
||||
<Icon as={FaCheck} color="green.400" />
|
||||
<Text color="green.400" fontSize="sm" fontWeight="medium">
|
||||
升级到{selectedPlan.displayName},立即生效!按差价补缴费用
|
||||
{priceInfo.final_amount === 0
|
||||
? `恭喜!您的当前订阅剩余价值足够直接升级到${selectedPlan.displayName},无需支付额外费用!`
|
||||
: `升级到${selectedPlan.displayName},立即生效!按差价补缴费用`}
|
||||
</Text>
|
||||
</HStack>
|
||||
</Box>
|
||||
@@ -1293,7 +1335,9 @@ export default function SubscriptionContentNew() {
|
||||
bgGradient: 'linear-gradient(135deg, #F4E3A7, #D4AF37)',
|
||||
}}
|
||||
>
|
||||
创建微信支付订单
|
||||
{priceInfo?.is_upgrade && priceInfo?.final_amount === 0
|
||||
? '立即免费升级'
|
||||
: '创建微信支付订单'}
|
||||
</Button>
|
||||
</VStack>
|
||||
) : (
|
||||
|
||||
@@ -163,7 +163,7 @@ export const subscriptionConfig = {
|
||||
},
|
||||
{
|
||||
question: 'Pro用户如何升级到Max?',
|
||||
answer: '从Pro升级到Max需要补差价,升级后立即生效。系统会根据您Pro订阅的剩余价值计算需要补缴的费用。支付成功后,您将立即获得Max版本的所有功能。',
|
||||
answer: '从Pro升级到Max需要补差价,升级后立即生效。系统会根据您Pro订阅的剩余价值计算需要补缴的费用。支付成功后,您将立即获得Max版本的所有功能。\n\n特别说明:如果您的Pro订阅剩余价值超过或等于Max套餐的价格,系统将自动为您免费升级到Max版本,无需支付额外费用。升级后的有效期将根据剩余价值按比例计算。例如:您的Pro年付版本剩余价值为1200元,选择Max月付版本(998元/月),系统将为您提供约36天的Max版本使用时长(1200÷998×30天)。',
|
||||
},
|
||||
{
|
||||
question: 'Max用户可以切换到Pro吗?',
|
||||
|
||||
Reference in New Issue
Block a user