支付时检测是否已经微信授权

This commit is contained in:
2026-07-02 17:34:58 +08:00
parent a0f4d8c18f
commit f7fe4597c6
9 changed files with 254 additions and 15 deletions
@@ -0,0 +1,14 @@
import { Controller, Get } from '@nestjs/common';
import { loadAppConfig } from '@dukang/shared-types';
@Controller('common')
export class ClientConfigController {
@Get('client-config')
clientConfig() {
const cfg = loadAppConfig();
return {
mockPay: cfg.mockPay,
wechatPayEnabled: cfg.wechatPayEnabled,
};
}
}
@@ -10,10 +10,18 @@ import { EventController } from './event.controller';
import { TicketController } from './ticket.controller';
import { ThirdPartyLogController } from './third-party-log.controller';
import { WechatController } from './wechat.controller';
import { ClientConfigController } from './client-config.controller';
@Module({
imports: [IamModule, IntegrationsModule],
controllers: [ResourceController, EventController, TicketController, ThirdPartyLogController, WechatController],
controllers: [
ResourceController,
EventController,
TicketController,
ThirdPartyLogController,
WechatController,
ClientConfigController,
],
providers: [ResourceService, EventService, TicketService, ThirdPartyLogService],
exports: [ResourceService, EventService, TicketService],
})
@@ -11,6 +11,7 @@ import {
orderTabToStatuses,
validateMinPurchase,
} from '@dukang/domain';
import { loadAppConfig, WECHAT_AUTH_REQUIRED } from '@dukang/shared-types';
import { PrismaService } from '../../common/prisma/prisma.module';
import { serializeBigInt } from '../../common/decorators/current-user.decorator';
import { BenefitService } from '../benefit/benefit.service';
@@ -169,6 +170,10 @@ export class TradeService {
const user = await this.prisma.user.findUnique({ where: { id: userId } });
const openId = user?.wxOpenId ?? undefined;
const appConfig = loadAppConfig();
if (!appConfig.mockPay && !openId) {
throw new BadRequestException(WECHAT_AUTH_REQUIRED);
}
const payResult = await this.payProvider.payOrder(orderId, openId);
if (payResult.mode === 'jsapi') {