'use strict';
|
/**
|
* 此为支付异步回调专用云函数,你的业务逻辑写在service目录下
|
* 如service/goods.js 写商品订单付款成功后的逻辑
|
*/
|
const vkPay = require('vk-uni-pay');
|
const orderPaySuccess = require('./orderPaySuccess');
|
|
//url参数转对象
|
function getQueryObj(url) {
|
let arr = url.split("&");
|
const resObj = {};
|
arr.forEach(item => {
|
let [key, value = ''] = item.split("=")
|
resObj[key] = value
|
})
|
return resObj
|
}
|
|
exports.main = async (event, context) => {
|
const notifyPath = "/uce-pay-notify/";
|
let payType = event.path.substring(notifyPath.length);
|
|
const db = uniCloud.database();
|
const _ = db.command;
|
let params = getQueryObj(event.body)
|
|
//验证订单真实性
|
let res = await uniCloud.callFunction({
|
name: "router",
|
data: {
|
$url: "client/notify/pub/" + payType,
|
data: params
|
}
|
});
|
|
//订单验证通过
|
if (res.result) {
|
//订单信息
|
let payOrderInfo = await db.collection('uni-id-base-order').doc(params.outTradeNo).get();
|
let obj = {
|
data: {
|
...payOrderInfo.data[0],
|
out_trade_no: params.outTradeNo,
|
total_fee: params.money,
|
status: 1,
|
notify_time: new Date().getTime()
|
},
|
verifyResult: true
|
}
|
if (await orderPaySuccess(obj, { db, _, event, context })) {
|
return "SUCCESS"
|
}
|
}
|
|
return "FAIL"
|
};
|