|
|
@@ -23,10 +23,23 @@ const callPay = async (ctx) => {
|
|
|
|
|
|
let data = ctx.request.body
|
|
|
let sign = data.sign
|
|
|
- let serverId = data.serverId
|
|
|
+ let serverId = data.serverID
|
|
|
+ let orderId = data.cpOrderID
|
|
|
|
|
|
logger.info("pay callback params:", { "url": ctx.href, "params": data })
|
|
|
|
|
|
+ const orderInfo = (await Order.getOrder(orderId))[0]
|
|
|
+
|
|
|
+ if (!orderInfo) {
|
|
|
+ logger.info(`订单${orderId}不存在`)
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ if (orderInfo.status == 2) {
|
|
|
+ logger.info(`订单${orderId}已经重复发货`)
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
//签名参数
|
|
|
let signData = Object.keys(data).filter(key => key !== 'sign');
|
|
|
let signStr = signData.map(key => `${data[key]}`).join('');
|
|
|
@@ -36,18 +49,13 @@ const callPay = async (ctx) => {
|
|
|
console.log("signStr:", signStr)
|
|
|
console.log("newSign:", newSign)
|
|
|
if (sign != newSign) {
|
|
|
- console.log("签名错误:", signStr, newSign, sign)
|
|
|
- return false
|
|
|
- }
|
|
|
- console.log(111, orderList)
|
|
|
- if (orderList.includes(data.orderId)) {
|
|
|
- logger.error("订单号无效", data.orderId)
|
|
|
+ logger.info(`签名错误: 签名串 ${signStr} newSign ${newSign} sign ${sign}`)
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
let url = getServerList(serverId)
|
|
|
if (!url) {
|
|
|
- console.log("区服id错误")
|
|
|
+ logger.info(`区服id错误: serverId ${serverId}`)
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
@@ -65,10 +73,23 @@ const callPay = async (ctx) => {
|
|
|
|
|
|
setTimeout(function () {
|
|
|
console.log("这个消息将在3秒后打印出来");
|
|
|
- Msg.CG_ASK_LOGIN("payCallback", 0, "", 'cn', 'CN', ctx.request.ip, params);
|
|
|
+ Msg.CG_ASK_LOGIN(Account, 0, "", 'cn', 'CN', ctx.request.ip, params);
|
|
|
}, 3000);
|
|
|
- orderList.push(data.order_id)
|
|
|
- return true
|
|
|
+
|
|
|
+ const update_time = formatDate(new Date())
|
|
|
+ const res = await Order.updateOrderStats(
|
|
|
+ orderId,
|
|
|
+ 2,
|
|
|
+ update_time
|
|
|
+ );
|
|
|
+
|
|
|
+ if (res.affectedRows > 0) {
|
|
|
+ logger.info(`订单${orderId} 发货成功`)
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ logger.info(`订单${orderId} 发货失败`)
|
|
|
+ return false
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//验证账号
|
|
|
@@ -99,14 +120,14 @@ const generateOrderNumber = () => {
|
|
|
const hours = date.getHours().toString().padStart(2, '0');
|
|
|
const minutes = date.getMinutes().toString().padStart(2, '0');
|
|
|
const seconds = date.getSeconds().toString().padStart(2, '0');
|
|
|
- const datestring = `${year}${month}${day}${hours}${minutes}${seconds}`;
|
|
|
+ const dateString = `${year}${month}${day}${hours}${minutes}${seconds}`;
|
|
|
const randomString1 = Math.floor(Math.random() * 1090000000800)
|
|
|
.toString()
|
|
|
.slice(0, 4);
|
|
|
const randomString2 = Math.floor(Math.random() * 1090000000800)
|
|
|
.toString()
|
|
|
.slice(0, 4);
|
|
|
- return datestring + randomString1 + randomString2;
|
|
|
+ return "CP" + dateString + randomString1 + randomString2;
|
|
|
}
|
|
|
|
|
|
const formatDate = (date: Date) => {
|
|
|
@@ -127,7 +148,7 @@ class ApiController {
|
|
|
product_id
|
|
|
} = ctx.request.body
|
|
|
|
|
|
- logger.info("create params:", {"params": ctx.request.body })
|
|
|
+ logger.info("create params:", { "params": ctx.request.body })
|
|
|
|
|
|
const orderId = generateOrderNumber(); // 生成一个长度为8的订单号
|
|
|
const create_time = formatDate(new Date())
|