收藏
回答

requestPayment微信支付后不点击完成后续的函数怎么掉用?

问题:uni.requestPayment必须点击完成才能判断用户支付成功进入success/fail/complete回调。

那么充值完毕不点击完成直接退出小程序的情况,后续的函数怎么放在哪里调用?

需求:蓝牙支付:用户支付完毕,再给表具下发指令 进行充值。

场景:很多用户支付完毕直接退出小程序或者退出后台,就不会进入支付回调。

最后一次编辑于  2023-04-24
回答关注问题邀请回答
收藏

3 个回答

  • -
    -
    2023-04-24

    设置定时器,调起支付后,每2秒查询订单是否支付成功,

    若支付成功,下发指令并清除定时器

    取消支付/支付失败时清除定时器,每次唤起支付页面订单号不同

    1.

    data() {

       return {

         timer: null,  //定时器名称

       };

    }

    2.

    requestPayment() {

      const that = this

      uni.requestPayment({

        nonceStr:nonceStr,

        package:package,

        paySign: paySign,

        signType:signType,

        timeStamp:timeStamp,

        success(res) { },

        fail(err) { 

                clearInterval(that.timer);   // 清除定时器

                that.timer = null;

        }

       })

            that.timer = setInterval(() => {

                that.asyncorderQuery();  // 每3秒查询订单

            }, 3000)

    },

    3.

    充值成功的接口里再写一个清除定时器。


    2023-04-24
    有用 1
    回复
  • Memory
    Memory
    2023-04-23

    支付结果要以服务端接收到的异步支付结果通知为准,不要去依赖前端回调判断

    2023-04-23
    有用 1
    回复 2
    • -
      -
      2023-04-24
      您好,后端收到通知,我这边需要什么时间给蓝牙设备发送充值指令?
      2023-04-24
      回复
    • Memory
      Memory
      2023-04-24回复-
      根据你们自己业务需求
      2023-04-24
      回复
  • 红薯
    红薯
    2023-04-22

    https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml

    2023-04-22
    有用
    回复 1
    • -
      -
      2023-04-22
      你好,这个需要后端操作吗?支付成功的话给蓝牙设备发送充值指令写在哪里?
      2023-04-22
      回复
登录 后发表内容