苍穹外卖微信支付模拟实现

苍穹外卖项目中有一个微信支付的功能,但是我们也没有商户,只能想办法跳过调起微信支付了,在这里我是这么实现的,话不多说,上代码。

1.首先是OrderController的payment()方法

在这里我们直接调用paySuccess()方法,进行对支付状态(对应字段pay_status)的更改,并且直接返回成功,修改为如下

/**
     * 订单支付
     * @param ordersPaymentDTO
     * @return
     */
    @PutMapping("/payment")
    @ApiOperation("订单支付")
    public Result<OrderPaymentVO> payment(@RequestBody OrdersPaymentDTO ordersPaymentDTO) throws Exception {
        log.info("订单支付:{}", ordersPaymentDTO);
        /*OrderPaymentVO orderPaymentVO = orderService.payment(ordersPaymentDTO);
        log.info("生成预支付交易单:{}", orderPaymentVO);
        return Result.success(orderPaymentVO);*/
        orderService.paySuccess(ordersPaymentDTO.getOrderNumber());
        return Result.success();
    }

2.OrderServiceImpl

在这里就不需要进行修改了,因为我们根本就没有调用payment()方法,也就是,不会向微信发起请求的,也就不需要商户信息了。

3.小程序代码修改

因为我们没有调起微信支付,因此后端是没有返回值给前端的,只有一个Result.success()返回的code=1,这也足够了,我们可以修改前端代码为判断code值,为1的话直接跳转至支付成功界面即可,下面是修改

找到如下文件

 在此文件中ctrl+shift搜索handleSave,在第一个else分支中,将原先的代码注释,修改为如下即可

      } else {
        // 如果支付成功进入成功页
        clearTimeout(this.times);
        var params = {
          orderNumber: this.orderDataInfo.orderNumber,
          payMethod: this.activeRadio === 0 ? 1 : 2 };

        (0, _api.paymentOrder)(params).then(function (res) {
          if (res.code === 1) {
            wx.showModal({
              title: '提示',
              content: '支付成功',
              success:function() {
                uni.redirectTo({url: '/pages/success/index?orderId=' + _this.rederId});
              }
            })
            console.log('支付成功')
            // wx.requestPayment({
            //   nonceStr: res.data.nonceStr,
            //   package: res.data.packageStr,
            //   paySign: res.data.paySign,
            //   timeStamp: res.data.timeStamp,
            //   signType: res.data.signType,
            //   success:function(res){
            //     wx.showModal({
            //       title: '提示',
            //       content: '支付成功',
            //       success:function(){
            //         uni.redirectTo({url: '/pages/success/index?orderId=' + _this.orderId });
            //       }
            //     })
            //     console.log('支付成功!')
            //   }
            // })


            //uni.redirectTo({url: '/pages/success/index?orderId=' + _this.orderId });

按以上操作就可以跳过调起微信支付啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值