0

I am trying to use Razorpay Nodejs SDK in Nest JS application

Here are 2 ways that I tried to use the razorpay instance

Method 1

@Injectable()
export class OrdersService {
  private razorpay: Razorpay;
  constructor(
    private readonly logger: Logger,
    @InjectRepository(BreOrders)
    private readonly orderRepository: Repository<BreOrders>,
  ) {
    this.razorpay = new Razorpay({
      key_id: "YOUR_KEY_ID",
      key_secret: "YOUR_KEY_SECRET",
    });
  }
 }

which gives error TypeError: razorpay_1.default is not a constructor

Method 2

@Module({
  imports: [TypeOrmModule.forFeature([BreOrders]), EmailModule],
  controllers: [OrdersController],
  providers: [
    {
      provide: Razorpay,
      useFactory: () =>
        new Razorpay({
          key_id: process.env.RAZORPAY_KEY,
          key_secret: process.env.RAZORPAY_SECRET,
        }),
    },
    OrdersService,
    Logger,
  ],
  exports: [OrdersService],
})
export class OrdersModule {}
export class OrdersService {
  constructor(
    private readonly logger: Logger,
    @InjectRepository(BreOrders)
    private readonly orderRepository: Repository<BreOrders>,
    private readonly razorpay: Razorpay,
  ) {}

which gives error ERROR [ExceptionHandler] Nest can't resolve dependencies of the OrdersService (Logger, BreOrdersRepository, ?). Please make sure that the argument dependency at index [2] is available in the OrdersModule context.

0 Answers0