import { Injectable } from '@nestjs/common'; import { loadAppConfig } from '@dukang/shared-types'; import type { IPayProvider, PayOrderResult } from './pay.interface'; import { PayMockProvider } from './pay.mock.provider'; import { PayWechatProvider } from './pay.wechat.provider'; /** 按当前 process.env 动态选择 Mock / 微信 JSAPI 支付 */ @Injectable() export class PayRouterProvider implements IPayProvider { constructor( private readonly mock: PayMockProvider, private readonly wechat: PayWechatProvider, ) {} private resolve(): IPayProvider { return loadAppConfig().mockPay ? this.mock : this.wechat; } payOrder(orderId: bigint, openId?: string, platform?: 'h5' | 'mini'): Promise { return this.resolve().payOrder(orderId, openId, platform); } }