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:
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "宇之然AI磁场",
|
"name": "宇之然AI磁场",
|
||||||
"appid": "__UNI__DEV__",
|
"appid": "__UNI__DEV__",
|
||||||
"versionName": "1.0.13",
|
"versionName": "1.0.14",
|
||||||
"versionCode": "113",
|
"versionCode": "114",
|
||||||
"description": "职引 - 宇之然AI磁场旗下AI模拟面试平台,提供AI面试官模拟练习、简历智能优化、大厂面经题库,助你轻松应对校招面试。",
|
"description": "职引 - 宇之然AI磁场旗下AI模拟面试平台,提供AI面试官模拟练习、简历智能优化、大厂面经题库,助你轻松应对校招面试。",
|
||||||
"h5": {
|
"h5": {
|
||||||
"title": "职引 - AI模拟面试 | 宇之然AI磁场",
|
"title": "职引 - AI模拟面试 | 宇之然AI磁场",
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ const startPay = async (selectedPlan) => {
|
|||||||
url: api('/payment/jsapi'), method: 'POST',
|
url: api('/payment/jsapi'), method: 'POST',
|
||||||
data: { plan: planLabel },
|
data: { plan: planLabel },
|
||||||
header: { 'Authorization': `Bearer ${t}`, 'Content-Type': 'application/json' },
|
header: { 'Authorization': `Bearer ${t}`, 'Content-Type': 'application/json' },
|
||||||
|
timeout: 30000,
|
||||||
})
|
})
|
||||||
payLoading.value = false
|
payLoading.value = false
|
||||||
|
|
||||||
@@ -203,6 +204,11 @@ const startPay = async (selectedPlan) => {
|
|||||||
},
|
},
|
||||||
fail: (err) => { payError.value = '支付取消或失败'; uni.showToast({ title: '支付取消', icon: 'none' }) },
|
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 {
|
} else {
|
||||||
payLoading.value = false
|
payLoading.value = false
|
||||||
const errMsg = res.data?.message || '创建订单失败'
|
const errMsg = res.data?.message || '创建订单失败'
|
||||||
@@ -242,9 +248,14 @@ const startPay = async (selectedPlan) => {
|
|||||||
})
|
})
|
||||||
// 轮询支付结果
|
// 轮询支付结果
|
||||||
pollPayResult(res.data.outTradeNo, planLabel)
|
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 {
|
} else {
|
||||||
payError.value = res.data?.message || '支付服务暂不可用'
|
payError.value = res.data?.message || '支付服务暂不可用'
|
||||||
uni.showToast({ title: '支付服务暂不可用', icon: 'none' })
|
uni.showToast({ title: res.data?.message || '支付服务暂不可用', icon: 'none' })
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
payLoading.value = false
|
payLoading.value = false
|
||||||
|
|||||||
Reference in New Issue
Block a user