收藏
回答

小程序支付,取消支付,为何还是扣款成功了?

 let _payno = res.data.data.pay.order_sn;
 wx.requestPayment({
     'timeStamp': res.data.data.pay.pay_result.timeStamp.toString(),
     'nonceStr': res.data.data.pay.pay_result.nonceStr,
     'package': res.data.data.pay.pay_result.package,
     'signType': res.data.data.pay.pay_result.signType,
     'paySign': res.data.data.pay.pay_result.paySign,
     success: res => {
           console.log('支付成功', res);
         this.checkorder();
     },
     fail: res => {
           wx.hideLoading();
           console.log(wx.getStorageSync('userid'), "取消支付", _payno);
           Primes.GetUserE({
               user_id: wx.getStorageSync('userid'),
               order_sn: _payno
              }, "/cancel").then(res => {
                     console.log('用户取消支付', res);
                  }).catch(() => {
                     console.log('网络异常')
                  })
               }
            })
         } else {
            wx.hideLoading();
            wx.showToast({
               icon: 'none',
               title: res.data.msg
            });
            return false;
         }
      }).catch(err => {
         wx.hideLoading();
         wx.showToast({
            icon: 'none',
            title: err + ''
         });
         console.log('错误121212', err)
         return false;
      })
   },

有时候会fail回调的时候删除了订单(删除订单之前会检查订单如果是未支付或关闭就准许删除),但是过1秒后台异步回调里面显示用户支付成功?这是什么情况?

回答关注问题邀请回答
收藏

1 个回答

  • 老张
    老张
    2020-10-29

    此处无论如何不能删除订单,应该继续流程,打开订单,显示待付款订单或者已支付订单。

    你可能还不知道,有一种情况是,success和fail和complete都不会触发的。你这样的逻辑是必然会出问题的。

    2020-10-29
    有用
    回复 2
    • zero
      zero
      2020-10-29
      租用类的,如果不删除会被占用,导致其他人无法使用
      2020-10-29
      回复
    • zero
      zero
      2020-10-29
      都不会触发倒是没什么问题,因为有异步回调
      2020-10-29
      回复
登录 后发表内容
问题标签