zhanwencai 1 год назад
Родитель
Сommit
199b338258
1 измененных файлов с 22 добавлено и 24 удалено
  1. 22 24
      webServer/src/server.ts

+ 22 - 24
webServer/src/server.ts

@@ -10,6 +10,7 @@ const axios = require('axios');
 const querystring = require('querystring');
 const servers = require('./serverList.json')
 
+const AppSecret = "67db708fdc1b3f61341db6e8551143c0"
 const AppKey = "64ba80a7e327f3f334425d8a8d897117"
 const AppId = "120"
 // var Url =  'ws://43.198.254.107:8192' //服务器地址
@@ -46,12 +47,16 @@ app.use(router.routes()).use(router.allowedMethods());
 
 // 支付回调
 router.post('/callback', async (ctx, next) => {
-  let ret = "FAILURE"
+  let ret = {
+    code: 0,
+    msg: '发货失败'
+  }
   var result = await callPay(ctx)
   if(result){
-      ret = "SUCCESS"
+      ret.code = 1;
+      ret.msg = '发货成功';
   }
-  ctx.body = ret
+  ctx.body = JSON.stringify(ret)
 })
 
 //账号验证
@@ -107,23 +112,16 @@ const getServerList = (serverId) => {
 const callPay = async(ctx)=>{
 
   let data = ctx.request.body
+  let sign = data.sign
+  let serverId = data.serverId
 
   logger.info("pay callback params:",{"url":ctx.href,"params":data})
-  let appId  = querystring.escape(data.app_id)
-  let cpOrderId = querystring.escape(data.cp_order_id)
-  let memId = querystring.escape(data.mem_id)
-  let orderId = querystring.escape(data.order_id)
-  let orderStatus = querystring.escape(data.order_status)
-  let payTime = querystring.escape(data.pay_time)
-  let productId = querystring.escape(data.product_id)
-  let productName = querystring.escape(data.product_name)
-  let productPrice = querystring.escape(data.product_price)
-  let ext = querystring.escape(data.ext)
-  let serverId = data.server_id
 
-  let sign = data.sign
-  let signStr = `app_id=${appId}&cp_order_id=${cpOrderId}&ext=${ext}&mem_id=${memId}&order_id=${orderId}&order_status=${orderStatus}&pay_time=${payTime}&product_id=${productId}&product_name=${productName}&product_price=${productPrice}&app_key=`
-  signStr += AppKey
+  //签名参数
+  let signData = Object.keys(data).filter(key => key !== 'sign');
+  let signStr = signData.map(key => `${data[key]}`).join('');
+  signStr += AppSecret
+
   let newSign = CryptoJS.MD5(signStr).toString();
   console.log("signStr:",signStr)
   console.log("newSign:",newSign)
@@ -132,8 +130,8 @@ const callPay = async(ctx)=>{
     return false
   }
   console.log(111,orderList)
-  if(orderList.includes(data.order_id)){
-    logger.error("订单号无效",data.order_id)
+  if(orderList.includes(data.orderId)){
+    logger.error("订单号无效",data.orderId)
     return false
   }
   let url = getServerList(serverId)
@@ -145,11 +143,11 @@ const callPay = async(ctx)=>{
   // 使用 Msg 类的 connect 方法连接到 WebSocket 服务器
   Msg.connect(url, Account);
   
-  let orgMemId = data.mem_id
-  let orgOderId = data.order_id
-  let orgProductId = data.product_id
-  let orgExt = data.ext
-  let orgProductPrice = data.product_price
+  let orgMemId = data.uid
+  let orgOderId = data.cpOrder
+  let orgProductId = data.orderId
+  let orgExt = data.cText
+  let orgProductPrice = data.skuPrice
   // 在适当的时机,调用 CG_ASK_LOGIN 方法
   let params = `{"account":"${orgMemId}","order":"${orgOderId}","id":${orgProductId},"cnt":100,"money":${orgProductPrice}}`