fix: add network error detection and timeout for mini program JSAPI payment
1. member.vue: check for res.statusCode === 0 (network failure) before accessing data, add 30s timeout 2. manifest.json: bump to v1.0.14 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -183,6 +183,7 @@ const startPay = async (selectedPlan) => {
|
||||
url: api('/payment/jsapi'), method: 'POST',
|
||||
data: { plan: planLabel },
|
||||
header: { 'Authorization': `Bearer ${t}`, 'Content-Type': 'application/json' },
|
||||
timeout: 30000,
|
||||
})
|
||||
payLoading.value = false
|
||||
|
||||
@@ -203,6 +204,11 @@ const startPay = async (selectedPlan) => {
|
||||
},
|
||||
fail: (err) => { payError.value = '支付取消或失败'; uni.showToast({ title: '支付取消', icon: 'none' }) },
|
||||
})
|
||||
} else if (!res.statusCode || res.statusCode === 0) {
|
||||
payLoading.value = false
|
||||
const errMsg = '网络连接失败,请检查网络后重试'
|
||||
payError.value = errMsg
|
||||
uni.showToast({ title: errMsg, icon: 'none' })
|
||||
} else {
|
||||
payLoading.value = false
|
||||
const errMsg = res.data?.message || '创建订单失败'
|
||||
@@ -242,9 +248,14 @@ const startPay = async (selectedPlan) => {
|
||||
})
|
||||
// 轮询支付结果
|
||||
pollPayResult(res.data.outTradeNo, planLabel)
|
||||
} else if (!res.statusCode || res.statusCode === 0) {
|
||||
payLoading.value = false
|
||||
const errMsg = '网络连接失败,请检查网络后重试'
|
||||
payError.value = errMsg
|
||||
uni.showToast({ title: errMsg, icon: 'none' })
|
||||
} else {
|
||||
payError.value = res.data?.message || '支付服务暂不可用'
|
||||
uni.showToast({ title: '支付服务暂不可用', icon: 'none' })
|
||||
uni.showToast({ title: res.data?.message || '支付服务暂不可用', icon: 'none' })
|
||||
}
|
||||
} catch (e) {
|
||||
payLoading.value = false
|
||||
|
||||
Reference in New Issue
Block a user