支付回调
This commit is contained in:
@@ -7,10 +7,8 @@ import _ = require('underscore');
|
||||
import { applyOrderWX, checkOrderWX } from '../../../services/pay/weixinPay';
|
||||
import { applyOrderALI, checkOrderALI } from '../../../services/pay/aliPay';
|
||||
import { applyOrder37 } from '../../../services/pay/37Pay';
|
||||
import { makeOrder } from '../../../services/orderService';
|
||||
import { makeOrder, settleOrder, settleOrderAli, settleOrderWx } from '../../../services/orderService';
|
||||
import { addRechargeMoney } from '../../../services/activity/rechargeMoneyService';
|
||||
import { ActivityModel, ActivityModelType } from '../../../db/Activity';
|
||||
import { ServerlistModel } from '../../../db/Serverlist';
|
||||
import { addVipRechargeMoney } from '../../../services/activity/vipRechargeMoneyService';
|
||||
import { checkActivityTask } from '../../../services/taskService';
|
||||
import { getActivityById } from '../../../services/activity/activityService';
|
||||
@@ -91,6 +89,7 @@ export class orderHandler {
|
||||
break;
|
||||
}
|
||||
|
||||
case PAY_TYPE.TEST:
|
||||
case PAY_TYPE.APPLE:
|
||||
{
|
||||
break;
|
||||
@@ -123,9 +122,6 @@ export class orderHandler {
|
||||
if (!orderInfo) {
|
||||
return resResult(STATUS.NO_ORDER);
|
||||
}
|
||||
if (orderInfo.state == ORDER_STATE.RESULT_SUCCESS) {
|
||||
return resResult(STATUS.DUPLICATE_ORDER);
|
||||
}
|
||||
|
||||
//商品价格信息
|
||||
let productInfo = dicRMB.get(orderInfo.productID)
|
||||
@@ -134,89 +130,53 @@ export class orderHandler {
|
||||
return resResult(STATUS.NO_PRODUCT_ID);
|
||||
}
|
||||
|
||||
let productType = productInfo.type;//类型
|
||||
let price = orderInfo.price;//下单时的价格
|
||||
let payType = orderInfo.payType;//支付类型
|
||||
let roleId = orderInfo.roleId;//角色
|
||||
|
||||
orderInfo = await UserOrderModel.check(roleId, localOrderID);
|
||||
if (!orderInfo) {
|
||||
return resResult(STATUS.DUPLICATE_ORDER);
|
||||
}
|
||||
switch (payType) {
|
||||
switch (orderInfo.payType) {
|
||||
case PAY_TYPE.TEST:
|
||||
case PAY_TYPE.THREE_SEVEN:
|
||||
case PAY_TYPE.APPLE:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case PAY_TYPE.WX:
|
||||
{
|
||||
let weixinResult = await checkOrderWX(localOrderID);
|
||||
if (weixinResult.code == 0) {
|
||||
console.log('微信订单查询失败')
|
||||
return resResult(STATUS.ORDER_ERROR);
|
||||
}
|
||||
if (parseInt(weixinResult.data.total_fee) / 100 != price) {
|
||||
console.log('订单价格错误')
|
||||
return resResult(STATUS.PRICE_ERROR);
|
||||
}
|
||||
if (weixinResult.data.trade_state != "SUCCESS" ||
|
||||
weixinResult.data.result_code != "SUCCESS" ||
|
||||
weixinResult.data.return_code != "SUCCESS") {
|
||||
return resResult(STATUS.NO_PAY);
|
||||
let res = await settleOrderWx(orderInfo, serverId, sid);
|
||||
if(res.code != 0) {
|
||||
return resResult(res);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PAY_TYPE.ALI:
|
||||
{
|
||||
let aliResult = await checkOrderALI(localOrderID);
|
||||
if (aliResult.code == 0) {
|
||||
console.log('支付宝订单查询失败')
|
||||
return resResult(STATUS.ORDER_ERROR);
|
||||
let res = await settleOrderAli(orderInfo, serverId, sid);
|
||||
if(res.code != 0) {
|
||||
return resResult(res);
|
||||
}
|
||||
if (parseInt(aliResult.data.total_amount) != price) {
|
||||
console.log('订单价格错误')
|
||||
return resResult(STATUS.PRICE_ERROR);
|
||||
}
|
||||
if (aliResult.data.trade_status != "TRADE_SUCCESS") {
|
||||
return resResult(STATUS.NO_PAY);
|
||||
}
|
||||
let aliOrderID = aliResult.data.trade_no;
|
||||
await UserOrderModel.saveOrderID(roleId, localOrderID, aliOrderID);
|
||||
break;
|
||||
}
|
||||
|
||||
case PAY_TYPE.APPLE:
|
||||
{
|
||||
break;
|
||||
}
|
||||
default:
|
||||
console.log('未知支付类型');
|
||||
return resResult(STATUS.NO_PAY_TYPE);
|
||||
}
|
||||
|
||||
//订单成功
|
||||
orderInfo = await UserOrderModel.success(roleId, localOrderID);
|
||||
if (orderInfo) {
|
||||
|
||||
//结算奖励
|
||||
let result = await makeOrder(localOrderID, sid, orderInfo);
|
||||
if (result.code !== 0) {//结算失败
|
||||
console.log(`测试支付失败..... ${JSON.stringify(result)}`)
|
||||
return resResult(result);
|
||||
}
|
||||
//推送
|
||||
this.app.channelService.pushMessageByUids('onOrder', resResult(STATUS.SUCCESS, {
|
||||
data: result.data,
|
||||
price: price,
|
||||
}), [{ uid: roleId, sid: sid }]);
|
||||
//活动统计
|
||||
await addRechargeMoney(roleId, serverId, price);
|
||||
await addVipRechargeMoney(roleId, serverId, price);
|
||||
//成长任务
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.ACTIVITY_RMB, price, { activityId: orderInfo.activityId })
|
||||
|
||||
|
||||
console.log('结算完成', localOrderID)
|
||||
return resResult(STATUS.SUCCESS, result.data);
|
||||
console.log('结算完成', localOrderID)
|
||||
let res: any = {};
|
||||
try {
|
||||
res = JSON.parse(orderInfo.rewardResult)
|
||||
} catch(e) {
|
||||
console.log('order rewardResult', e);
|
||||
}
|
||||
|
||||
return resResult(STATUS.DUPLICATE_ORDER);
|
||||
if(res.code && res.code != 0) {
|
||||
return resResult(STATUS.APPLY_ORDER_ERROR);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
...res,
|
||||
price: orderInfo.price,
|
||||
state: orderInfo.state,
|
||||
localOrderID: orderInfo.localOrderID
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -268,28 +228,13 @@ export class orderHandler {
|
||||
await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType, activityId, paramStr, message);
|
||||
|
||||
//订单成功
|
||||
let orderInfo = await UserOrderModel.success(roleId, localOrderID);
|
||||
if (orderInfo) {
|
||||
//结算奖励
|
||||
let result = await makeOrder(localOrderID, sid, orderInfo);
|
||||
if (result.code !== 0) {//结算失败
|
||||
console.log(`测试支付失败..... ${JSON.stringify(result)}`)
|
||||
return resResult(result);
|
||||
}
|
||||
//推送
|
||||
this.app.channelService.pushMessageByUids('onOrder', resResult(STATUS.SUCCESS, {
|
||||
data: result.data,
|
||||
price: price,
|
||||
}), [{ uid: roleId, sid: sid }]);
|
||||
//活动统计
|
||||
await addRechargeMoney(roleId, serverId, price);
|
||||
await addVipRechargeMoney(roleId, serverId, price);
|
||||
//成长任务
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.ACTIVITY_RMB, price, { activityId })
|
||||
console.log(`测试支付完成!!!!!!!!!!!!! serverId:${serverId}, productID:${productID}, productType:${productType}, roleId:${roleId}, localOrderID:${localOrderID}, payType:${payType}`)
|
||||
return resResult(STATUS.SUCCESS, result.data);
|
||||
let orderInfo = await UserOrderModel.findOrder(localOrderID);
|
||||
if(!orderInfo) {
|
||||
return resResult(STATUS.NO_ORDER);
|
||||
}
|
||||
|
||||
return resResult(STATUS.NO_ORDER, {});
|
||||
let result = await settleOrder(orderInfo, serverId, sid);
|
||||
orderInfo = await UserOrderModel.success(roleId, localOrderID, result);
|
||||
console.log(`测试支付完成!!!!!!!!!!!!! serverId:${serverId}, productID:${productID}, productType:${productType}, roleId:${roleId}, localOrderID:${localOrderID}, payType:${payType}`)
|
||||
return resResult(STATUS.SUCCESS, JSON.parse(result));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user