活动:微信支付
This commit is contained in:
@@ -6,6 +6,7 @@ import { addReward, stringToRewardParam, useGiftPackage } from '../../../service
|
||||
import { dicRMB } from '../../../pubUtils/dictionary/DicRMB';
|
||||
import { UserOrderModel } from '../../../db/UserOrder';
|
||||
import _ = require('underscore');
|
||||
import { applyOrderWX, checkOrderWX } from '../../../services/pay/weixinPay';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new orderHandler(app);
|
||||
@@ -40,13 +41,43 @@ export class orderHandler {
|
||||
|
||||
let price = productInfo.price;//价格
|
||||
let productType = productInfo.type;//类型
|
||||
let message = productInfo.message;//商品信息
|
||||
let localOrderID = genCode(32);//本地订单号
|
||||
let orderID = '';//平台订单号
|
||||
|
||||
//生成订单号
|
||||
let orderInfo = await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { orderInfo, productInfo });
|
||||
let sdkOrderInfo = null;//客户端需要的平台订单信息
|
||||
switch (payType) {
|
||||
case PAY_TYPE.WX:
|
||||
{
|
||||
//生成订单号
|
||||
let weixinOrder = await applyOrderWX(localOrderID, price * 100, message);
|
||||
if (weixinOrder.code == 0) {
|
||||
console.log('微信下单失败')
|
||||
return resResult(STATUS.APPLY_ORDER_ERROR);
|
||||
}
|
||||
sdkOrderInfo = weixinOrder.data;
|
||||
orderID = weixinOrder.data.prepayid;//微信订单号
|
||||
break;
|
||||
}
|
||||
case PAY_TYPE.ALI:
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
case PAY_TYPE.APPLE:
|
||||
{
|
||||
break;
|
||||
}
|
||||
default:
|
||||
console.log('未知支付类型');
|
||||
return resResult(STATUS.NO_PAY_TYPE);
|
||||
}
|
||||
|
||||
await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType);
|
||||
return resResult(STATUS.SUCCESS, { orderInfo: sdkOrderInfo, productInfo, localOrderID });
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -104,6 +135,20 @@ export class orderHandler {
|
||||
switch (payType) {
|
||||
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);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PAY_TYPE.ALI:
|
||||
|
||||
Reference in New Issue
Block a user