写出来的全是bug 2024-02-02 10:32 采纳率: 0%
浏览 35

原生微信小程序调用wx.requestPayment发起支付,支付成功后跳转到支付成功页面还会再次弹出支付框

原生微信小程序调用wx.requestPaymen发起支付,支付成功后跳转到支付成功页面还会再次弹出支付框,怎么解决这个问题?

img

img

支付成功页面

img

img

  • 写回答

1条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-02-02 10:58
    关注

    参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。

    在微信小程序中,如果支付成功后跳转到支付成功页面仍然会弹出支付框,通常是因为支付逻辑处理不当导致的。确保以下几点:

    1. 在调用 wx.requestPayment 进行支付时,确保你在支付成功的回调函数中正确处理了支付状态:
    wx.requestPayment({
      timeStamp: '',
      nonceStr: '',
      package: '',
      signType: '',
      paySign: '',
      success(res) {
        // 支付成功逻辑处理
        wx.navigateBack({ delta: 1 }); // 或者使用 wx.redirectTo 跳转到指定页面
      },
      fail(err) {
        // 支付失败逻辑处理
      },
      complete() {
        // 结束请求
      }
    });
    
    1. 确保在支付成功后,你不是简单地跳转页面,而是通过 wx.navigateBack 回退到上一个页面(通常是订单详情页并更新支付状态),或者使用 wx.redirectTo 跳转到特定的支付成功页面,并且这个页面不再触发支付请求。

    2. 检查支付成功页面是否存在重复发起支付请求的代码,如果有,请移除。

    3. 如果采用的是云开发或后端接口确认支付结果的方式,需要确保支付完成后前端收到明确的支付完成信号,并避免在此之后再次发起支付请求。

    4. 避免在页面的 onLoad 或其他生命周期钩子中直接发起支付请求,应在用户主动点击支付按钮等操作后再发起支付流程。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月2日