uni-app 安卓支付宝微信支付取消后无法返回上一页面 IOS正常
uni-app 安卓支付宝微信支付取消后无法返回上一页面 IOS正常
1 回复
更多关于uni-app 安卓支付宝微信支付取消后无法返回上一页面 IOS正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在uni-app中处理支付取消后页面跳转问题,通常与平台差异和支付回调逻辑有关。以下为常见解决方案:
-
检查支付回调状态
在uni.requestPayment的fail回调中,安卓平台需明确区分取消操作与其他错误:uni.requestPayment({ provider: 'alipay', fail: (err) => { // 支付宝取消支付返回错误码 "60001" if (err.errCode === 60001) { uni.navigateBack({ delta: 1 }) } } }) -
微信支付平台差异处理
微信支付取消时,安卓可能不会触发完整回调:// 建议在页面onShow生命周期监听返回事件 onShow() { if (this.paymentCanceled) { uni.navigateBack({ delta: 1 }) this.paymentCanceled = false } } -
使用全局状态管理
通过Vuex存储支付状态,确保页面跳转一致性:// 在支付页面 fail: (err) => { this.$store.commit('SET_PAYMENT_STATUS', 'canceled') } // 在目标页面通过watch监听状态变化 watch: { '$store.state.paymentStatus'(val) { if (val === 'canceled') { uni.navigateBack({ delta: 1 }) } } } -
兼容性写法建议
可结合Promise封装支付方法:const handlePayment = () => { return new Promise((resolve, reject) => { uni.requestPayment({ provider: 'alipay', success: resolve, fail: reject }) }).catch(err => { if (err.errCode === 60001) { return Promise.reject('USER_CANCEL') } throw err }) }

