微信JSSDK对接,代下单支付

This commit is contained in:
2026-08-02 11:49:35 +08:00
parent 50ba6e9c56
commit 09e732bfa3
32 changed files with 1223 additions and 218 deletions
@@ -1,4 +1,4 @@
import { Body, Controller, Get, Post, Req, UseGuards } from '@nestjs/common';
import { Body, Controller, Get, Param, Post, Req, UseGuards } from '@nestjs/common';
import type { Request } from 'express';
import { CurrentUser } from '../../common/decorators/current-user.decorator';
import { HqAuthGuard } from '../../common/guards/hq-auth.guard';
@@ -10,7 +10,11 @@ import type { AuthUser } from '../../common/guards/jwt-auth.guard';
import { HqOperation } from '../../common/hq-operation/hq-operation.decorator';
import { HqOperationAction } from '../../common/hq-operation/hq-operation.constants';
import { TradeService } from '../trade/trade.service';
import { HqProxyOrderCreateDto, HqProxyOrderPreviewDto } from './dto/hq-proxy-order.dto';
import {
HqProxyOrderCreateDto,
HqProxyOrderPayDto,
HqProxyOrderPreviewDto,
} from './dto/hq-proxy-order.dto';
@Controller('admin/proxy-orders')
@UseGuards(HqAuthGuard, HqPermissionGuard)
@@ -42,4 +46,19 @@ export class AdminProxyOrdersController {
) {
return this.tradeService.createHqProxyOrder(user.actorId, dto, req);
}
@Post(':id/pay')
pay(@Param('id') id: string, @Body() dto: HqProxyOrderPayDto) {
return this.tradeService.payHqProxyOrder(BigInt(id), dto.payMethod ?? 'NATIVE');
}
@Post(':id/pay/mock-confirm')
mockConfirmPay(@Param('id') id: string) {
return this.tradeService.mockConfirmProxyPay(BigInt(id), { hq: true });
}
@Get(':id/pay-status')
payStatus(@Param('id') id: string) {
return this.tradeService.getProxyPayStatus(BigInt(id));
}
}
@@ -85,3 +85,9 @@ export class HqProxyOrderCreateDto {
@IsString()
promoCodeId?: string;
}
export class HqProxyOrderPayDto {
@IsOptional()
@IsIn(['NATIVE', 'JSAPI'])
payMethod?: 'NATIVE' | 'JSAPI';
}