# 3、发起退款

# vkPay.refund

# 示例代码

无框架下的云函数代码示例(该写法同时也适用于任何框架)

const vkPay = require("vk-uni-pay");

exports.main = async (event, context) => {
  let refundRes = await vkPay.refund({
    out_trade_no: "商户支付订单号",
    refund_desc: "退款说明",
    refund_fee: "退款金额100=1元(单位分)如不填,则全额退款"
  });
  if (refundRes.code !== 0) {
    return refundRes;
  }
  let res = { code: 0, msg: '退款成功' };
  /**
   * 执行自己的订单退款逻辑
   * 此处建议只改下订单状态和写入异步任务队列表
   * 将消息发送、返佣扣除、业绩结算扣除等业务逻辑异步处理
   * 如开启定时器每隔5秒触发一次,处理订单
   */
  return res;
};

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 请求参数

参数 说明 类型 默认值 可选值
out_trade_no 必填项,商户支付订单号,需自行保证全局唯一 String - -
out_refund_no 商户退款订单号(不填会自动生成),需自行保证全局唯一 String - -
refund_desc 退款说明 String - -
refund_fee 退款金额,100=1元(单位分)如不填,则全额退款 Number - -

# out_refund_no

商户退款单号,不填会自动生成

自动生成规则:商户支付订单号-退款次数

如:你的 out_trade_no 是 20220101090012541213652,本次是第一次退款,则 out_refund_no = 20220101090012541213652-1

# 返回值

参数名 类型 说明 支持平台
outTradeNo String 商户订单号 -
transactionId String 平台订单号 -
outRefundNo String 商户退款单号 微信支付
refundId String 平台退款单号 -
refundFee Number 退款总金额 -
cashRefundFee Number 现金退款金额 -

# 微信支付v2退款报错说明

目前hbx本地调试和支付宝云云端均为node18,而node18已废弃微信支付v2的p12证书,故建议改为微信支付v3版本,不要使用微信支付v2版本,详见配置 传送门 (opens new window)