# service/pay/refund.js
'use strict';
const vkPay = require("vk-uni-pay");
module.exports = {
/**
* 统一退款
* @url pay/refund 前端调用的url参数地址
* @description 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家。
* data 请求参数 说明
* @param {String} out_trade_no 商户订单号
* @param {String} refund_desc 退款说明
* @param {Number} refund_fee 退款金额
* res 返回参数说明
* @param {Number} code 错误码,0表示成功
* @param {String} msg 详细信息
*/
main: async (event) => {
let { data = {}, originalParam } = event;
let res = { code: 0, msg: '退款成功' };
// 退款开始-----------------------------------------------------------
let {
out_trade_no,
refund_desc,
refund_fee
} = data;
// 注意:实际退款前应该判断你自己的业务逻辑
let refundRes = await vkPay.refund({
out_trade_no,
refund_desc,
refund_fee
});
if (refundRes.code !== 0) {
return refundRes;
}
/**
* 注意:退款成功后,应该执行你自己的退款后逻辑
* 此处建议只改下订单状态和写入异步任务队列表
* 将消息发送、返佣扣除、业绩结算扣除等业务逻辑异步处理
* 如开启定时器每隔5秒触发一次,处理订单
*/
// 退款结束-----------------------------------------------------------
return res;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45