uni-app 微信小程序uni-pay 支付完成后没有回调onSuccess

uni-app 微信小程序uni-pay 支付完成后没有回调onSuccess

操作步骤:

  • uni-pay支付后,云函数执行自己的回调业务代码,返回true,小程序前端回调事件失效,onSuccess无效其次没有跳到uni-pay提供的success页面上。

预期结果:

  • 应该要成功跳到success页面并且onSuccess函数回调

实际结果:

  • 回调无效

bug描述:

  • 云函数查看 用户自己的逻辑返回true,在uni-admin上看订单回调状态也是成功,我自己写的回调逻辑都走成功了,但在前端支付完成后,他没有调到成功页面、其次uni-pay的组件onSuccess也没有回调,我只能自己去点查询支付状态。我昨天第一次测试回调onsuccess是可以的,今天第一次也可以,然后就不行了。

更多关于uni-app 微信小程序uni-pay 支付完成后没有回调onSuccess的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

使用的是最新版的hb 3.99

更多关于uni-app 微信小程序uni-pay 支付完成后没有回调onSuccess的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 Uni-App 中使用 uni-pay 进行微信小程序支付时,如果支付完成后没有触发 onSuccess 回调,可能是由于以下原因导致的。以下是一些排查和解决方法:


1. 检查支付配置

确保 uni-pay 的配置正确,包括:

  • appIdmchIdkey 等微信支付参数是否正确。
  • 支付回调地址(notify_url)是否配置正确,并且能够在微信支付后台正确接收回调。

2. 检查支付逻辑

在调用 uni-pay 的支付接口时,确保代码逻辑正确。例如:

uniPay.requestPayment({
  provider: 'wxpay',
  orderInfo: orderInfo, // 从后端获取的支付参数
  success(res) {
    console.log('支付成功', res);
    // 处理支付成功逻辑
  },
  fail(err) {
    console.log('支付失败', err);
    // 处理支付失败逻辑
  }
});

确保 successfail 回调函数被正确定义。


3. 检查微信开发者工具配置

在微信开发者工具中,确保以下配置正确:

  • 开启 “开发环境不校验合法域名”(如果未配置合法域名)。
  • 确保 AppID 与支付配置中的 appId 一致。
  • 确保 调试基础库版本 支持当前支付接口。

4. 检查后端逻辑

微信支付完成后,微信服务器会向 notify_url 发送回调通知。确保:

  • 后端能够正确处理微信支付的回调通知,并返回 SUCCESS
  • 后端逻辑没有异常,导致无法触发 onSuccess 回调。

5. 调试支付回调

  • 在微信支付后台的 交易中心 中查看支付订单,确认支付是否成功。
  • 使用微信支付提供的 沙箱环境 进行测试,确保支付流程正常。
  • notify_url 中添加日志,确认是否接收到微信支付的回调通知。

6. 检查 Uni-App 版本

确保 Uni-App 和 uni-pay 插件是最新版本。旧版本可能存在兼容性问题。


7. 网络问题

如果支付完成后网络不稳定,可能导致回调无法正常触发。确保网络环境正常。


8. 代码示例

以下是一个完整的支付示例:

uniPay.requestPayment({
  provider: 'wxpay',
  orderInfo: {
    // 从后端获取的支付参数
  },
  success(res) {
    console.log('支付成功', res);
    // 处理支付成功逻辑
  },
  fail(err) {
    console.log('支付失败', err);
    // 处理支付失败逻辑
  }
});
回到顶部