'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 }; } } };