101 lines
3.3 KiB
JavaScript
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
|
|
};
|
|
}
|
|
}
|
|
};
|