Files
jjx-wap/uniCloud-tcb/cloudfunctions/router/service/client/order/kh/refundQuery.js
T

101 lines
3.3 KiB
JavaScript

'use strict';
const dayjs = require("dayjs");
const OpenSdk = require('../../../../util/base').default;
const sdk = new OpenSdk({
appId: '8a81c1db8fc5238d01910b9e312d0692',
appKey: 'a15ceac60f5b464eb758c4fe7800ee9f'
});
const REFUND_MID = '898450100002303';
const REFUND_TID = 'G5SBN2XJ';
const REFUND_INST_MID = 'WGDEFAULT';
module.exports = {
/**
* 退款查询
* @url client/order/kh/refundQuery 前端调用的url参数地址
* data 请求参数
*/
main: async (event) => {
let {data = {}, util} = event;
let {vk} = util;
let res = {code: 0, msg: ""};
const payRecord = await vk.baseDao.findById({
dbName: "jjx-order-pay-list",
id: data.id
});
if (!payRecord) {
return {
code: -1,
msg: "支付单不存在"
};
}
const refundOrderId = data.refundOrderId
|| (payRecord.refundApplyPayload && payRecord.refundApplyPayload.refundOrderId)
|| (payRecord.refundApplyResult && payRecord.refundApplyResult.refundOrderId);
if (!refundOrderId) {
return {
code: -1,
msg: "未找到退款单号,请先发起退款"
};
}
const queryData = {
queryUrl: 'https://api-mop.chinaums.com/v1/netpay/refund-query',
timestamp: dayjs().format('YYYYMMDDHHmmss'),
nonce: `refund_query_${Date.now()}`,
content: {
requestTimestamp: dayjs().format('YYYY-MM-DD HH:mm:ss'),
merOrderId: refundOrderId,
instMid: REFUND_INST_MID,
mid: REFUND_MID,
tid: REFUND_TID
}
};
try {
const queryRawResult = await sdk.exec(queryData);
const queryResult = typeof queryRawResult === "string" ? JSON.parse(queryRawResult) : queryRawResult;
const querySuccess = queryResult && queryResult.errCode === 'SUCCESS';
await vk.baseDao.updateById({
dbName: "jjx-order-pay-list",
id: payRecord._id,
dataJson: {
refundQueryAt: vk.pubfn.timeFormat(new Date(), "yyyy-MM-dd hh:mm:ss"),
refundQueryPayload: queryData.content,
refundQueryResult: queryResult,
refundQuerySuccess: querySuccess
}
});
res.data = queryResult;
res.querySuccess = querySuccess;
res.msg = querySuccess ? "查询成功" : (queryResult.errMsg || "查询失败");
return res;
} catch (err) {
const errMsg = err && err.message ? err.message : JSON.stringify(err);
await vk.baseDao.updateById({
dbName: "jjx-order-pay-list",
id: payRecord._id,
dataJson: {
refundQueryAt: vk.pubfn.timeFormat(new Date(), "yyyy-MM-dd hh:mm:ss"),
refundQueryPayload: queryData.content,
refundQuerySuccess: false,
refundQueryError: errMsg
}
});
return {
code: -1,
msg: errMsg
};
}
}
};