收藏
回答

(已解决)微信支付可以退订单总金额其中一部分金额吗?

需求:活动每个成员先预付活动费,当活动结束后退还部分多出来的费用,也就是多退少补。

困惑:目前使用退款接口填入订单一半的退款金额,但还是会全退,请问微信有途径实现这个需求吗?

下面是我退部分金额的代码,请指教:

//小程序端

/**
   * 退款
   */
  refund: function () {
    var that = this;

    // 获取、设置支付参数
    let nonceStr = getRandomNumber() + '' // 随机数
    let out_trade_no = this.data.orderId // 商户端订单号
    let totalFee = this.data.order.cost * 100  //订单总金额,数据库是以“元”为单位,接口以“分”为单位
    let refund_fee = this.data.order.cost/2 * 100  //退款金额,订单总金额的一半
    let params = {
      nonceStr,
      out_trade_no,
      totalFee,
      refund_fee
    }
    console.log(params)


          //请求退款
          wx.showLoading()
          wx.cloud.callFunction({
            name: 'gameOrderApi',
            data: {
              action: 'refund',
              params: params,
            },
            success: res => {
              console.log(res)
              if (res.result.resultCode == 'SUCCESS' && res.result.returnCode == 'SUCCESS') {
                wx.showModal({
                  title: '退款成功',
                  content: '退款金额:' + res.result.refundFee / 100 + ' 元'
                })
              } else {
                wx.showModal({
                  title: '错误信息',
                  content: res.result.errCodeDes
                })
              }

            },
            fail: err => { console.log(err) },
            complete: () => { wx.hideLoading() }
          })

})


//云函数gameOrderApi:

case 'refund':
        console.log(event.params)
        const res = await cloud.cloudPay.refund({
          "functionName":"wxpayCallback",
          "envId":"test-urupk",
          "subMchId":"1080438595",
          "nonceStr":event.params.nonceStr, //随机字符串
          "out_trade_no": event.params.out_trade_no,    //商户订单号
          "out_refund_no" : event.params.out_trade_no+"re",//商户退款单号
          "totalFee" : event.params.totalFee,  //订单总金额(单位:分)
          "refund_fee":event.params.refund_fee,//申请退款金额
        })
        console.log(res)
        return res


最后一次编辑于  2021-05-05
回答关注问题邀请回答
收藏

1 个回答

  • peng
    peng
    2021-05-02

    使用姿势不对,退款接口是可以退部分,而且可以退多次。

    2021-05-02
    有用 1
    回复 2
    • 杰_boat
      杰_boat
      2021-05-05
      补充了代码,不知道哪里不对,麻烦帮忙指出一下,十分感激
      2021-05-05
      回复
    • 杰_boat
      杰_boat
      2021-05-05
      已解决,是环境不同的问题
      2021-05-05
      回复
登录 后发表内容