uni.requestPayment 是用于发起微信支付的统一接口,而 wx.onAppRoute 是用于监听小程序的路由变化。
当 uni.requestPayment 支付成功后,如果发生了页面跳转或者其他路由变化,wx.onAppRoute 会被触发。这个行为是正常的,因为支付成功后可能会引起页面跳转来展示支付结果或其他信息。
如果你不希望在支付成功后监听路由变化,你可以在支付请求前后使用变量来控制监听行为。例如:
// 定义一个变量来控制监听
let isListeningRoute = false;
// 在发起支付前启动监听
if (!isListeningRoute) {
wx.onAppRoute(function(res) {
// 处理路由变化
console.log('路由变化:', res.path);
});
isListeningRoute = true;
}
// 发起支付请求
uni.requestPayment({
// ... 其他参数
success: function () {
console.log('支付成功');
// 支付成功后可以停止监听路由变化
wx.offAppRoute();
},
fail: function () {
console.log('支付失败');
}
});