This commit is contained in:
@@ -47,12 +47,14 @@
|
||||
handlePaymentError,
|
||||
isValidAlipayPaymentLink,
|
||||
isValidWechatPayConfig,
|
||||
markPendingPaymentRefresh,
|
||||
openAlipayPayment,
|
||||
PAYMENT_REFRESH_TARGETS,
|
||||
showPaymentToast,
|
||||
wechatH5Pay
|
||||
} from '@/utils/payment.js';
|
||||
import { formatMoney } from '@/utils/display.js';
|
||||
import { getPaymentErrorMessage, isUnknownPaymentResult } from '@/utils/payment-attempt.js';
|
||||
import { getDefaultPaymentMethod, getPaymentMethodOptions, normalizePaymentMethods } from '@/utils/payment-methods.js';
|
||||
|
||||
const props = defineProps({
|
||||
@@ -277,7 +279,13 @@
|
||||
}
|
||||
|
||||
uni.showLoading({ title: '准备支付...', mask: true });
|
||||
const payResult = await orderApi.pay(orderId, paymentMethod.value);
|
||||
// Prefer payment data returned by order creation. The fallback keeps
|
||||
// compatibility with older backends without a duplicate preparation
|
||||
// request when the new contract is available.
|
||||
const payResult = hasPreparedPaymentData(orderResult) ||
|
||||
(paymentMethod.value === 'wallet' && orderResult.order.payment_status === 2)
|
||||
? orderResult
|
||||
: await orderApi.pay(orderId, paymentMethod.value);
|
||||
uni.hideLoading();
|
||||
show.value = false;
|
||||
|
||||
@@ -290,7 +298,10 @@
|
||||
uni.hideLoading();
|
||||
show.value = false;
|
||||
console.error('创建续费订单或支付失败', error);
|
||||
uni.showToast({ title: error.msg || error.message || '操作失败,请稍后重试', icon: 'none' });
|
||||
if (isUnknownPaymentResult(error)) {
|
||||
markPendingPaymentRefresh(props.paymentRefreshTarget);
|
||||
}
|
||||
uni.showToast({ title: getPaymentErrorMessage(error, '操作失败,请稍后重试'), icon: 'none' });
|
||||
} finally {
|
||||
submitting.value = false;
|
||||
}
|
||||
@@ -333,7 +344,10 @@
|
||||
} catch (error) {
|
||||
uni.hideLoading();
|
||||
console.error('订单支付失败', error);
|
||||
uni.showToast({ title: error.msg || error.message || '支付失败,请稍后重试', icon: 'none' });
|
||||
if (isUnknownPaymentResult(error)) {
|
||||
markPendingPaymentRefresh(props.paymentRefreshTarget);
|
||||
}
|
||||
uni.showToast({ title: getPaymentErrorMessage(error), icon: 'none' });
|
||||
} finally {
|
||||
submitting.value = false;
|
||||
}
|
||||
@@ -353,7 +367,10 @@
|
||||
} catch (error) {
|
||||
uni.hideLoading();
|
||||
console.error('直接支付订单失败', error);
|
||||
uni.showToast({ title: error.msg || error.message || '支付失败,请稍后重试', icon: 'none' });
|
||||
if (isUnknownPaymentResult(error)) {
|
||||
markPendingPaymentRefresh(props.paymentRefreshTarget);
|
||||
}
|
||||
uni.showToast({ title: getPaymentErrorMessage(error), icon: 'none' });
|
||||
} finally {
|
||||
submitting.value = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user