|
|
@@ -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}}`
|
|
|
|