hookehuyr

feat(支付): 添加订单状态处理逻辑

在微信支付组件中添加订单状态检查,根据状态决定是否初始化支付流程或直接标记为成功。同时在购物车上下文中返回订单状态,并在结账页面中传递该状态。
......@@ -72,6 +72,10 @@ const props = defineProps({
orderId: {
type: String,
required: true
},
orderStatus: {
type: String,
required: true
}
})
......@@ -187,9 +191,15 @@ const handlePayment = async () => {
}
onMounted(() => {
if (props.orderStatus === 'NOT_PAY') {
// 初始化微信支付
initWxPay()
// 开始支付流程
handlePayment()
}
if (props.orderStatus === 'PAY') {
paymentStatus.value = 'success'
emit('success')
}
})
</script>
......
......@@ -129,6 +129,7 @@ export function provideCart(mode = CartMode.MULTIPLE) {
return {
success: true,
orderId: response.data.id,
orderStatus: response.data.status,
orderData: orderData
}
}
......
......@@ -251,6 +251,7 @@
<WechatPayment
v-if="showPayment && orderId"
:order-id="orderId"
:order-status="orderStatus"
@success="handlePaymentSuccess"
@failed="handlePaymentFailed"
@processing="handlePaymentProcessing"
......@@ -318,6 +319,7 @@ onMounted(async () => {
// 支付相关状态
const showPayment = ref(false)
const orderId = ref('')
const orderStatus = ref('')
const isProcessing = ref(false)
const orderComplete = ref(false)
......@@ -359,6 +361,8 @@ const handleSubmit = async (e) => {
}
orderId.value = result.orderId || ''
orderStatus.value = result.orderStatus || ''
if (!orderId.value) {
throw new Error('订单号获取失败,请重试')
}
......