Skip to content

lehuygiang28/nestjs-vnpay

Repository files navigation

📦 nestjs-vnpay

🇻🇳 Tiếng Việt | 🇺🇸 English

NPM Version Package License NPM Downloads

Module tích hợp cổng thanh toán VNPay cho NestJS, dựa trên gói vnpay

📚 Tài liệu

Nguồn tài liệu hữu ích:

🚀 Cài đặt

# NPM
npm install nestjs-vnpay vnpay

# Yarn
yarn add nestjs-vnpay vnpay

# PNPM
pnpm install nestjs-vnpay vnpay

💡 Sử dụng

Khởi tạo VnpayModule

Khởi tạo đồng bộ:

import { Module } from '@nestjs/common';
import { VnpayModule } from 'nestjs-vnpay';
import { ignoreLogger } from 'vnpay';

import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  imports: [
    VnpayModule.register({
        tmnCode: 'YOUR_TMN_CODE',
        secureSecret: 'YOUR_SECURE_SECRET',
        vnpayHost: 'https://sandbox.vnpayment.vn',

        // Cấu hình tùy chọn
        testMode: true,                // Chế độ test (ghi đè vnpayHost thành sandbox nếu là true)
        hashAlgorithm: 'SHA512',       // Thuật toán mã hóa
        enableLog: true,               // Bật/tắt ghi log
        loggerFn: ignoreLogger,        // Hàm xử lý log tùy chỉnh
    })
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Khởi tạo bất đồng bộ (với ConfigService):

import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { VnpayModule } from 'nestjs-vnpay';
import { ignoreLogger } from 'vnpay';

import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
    imports: [
        ConfigModule.forRoot({
            envFilePath: '.env',
        }),
        VnpayModule.registerAsync({
            imports: [ConfigModule],
            useFactory: async (configService: ConfigService) => ({
                secureSecret: configService.getOrThrow<string>('VNPAY_SECURE_SECRET'),
                tmnCode: configService.getOrThrow<string>('VNPAY_TMN_CODE'),
                loggerFn: ignoreLogger,
            }),
            inject: [ConfigService],
        }),
    ],
    controllers: [AppController],
    providers: [AppService],
})
export class AppModule {}

Sử dụng trong service

import { Injectable } from '@nestjs/common';
import { VnpayService } from 'nestjs-vnpay';

@Injectable()
export class AppService {
  constructor(private readonly vnpayService: VnpayService) {}

  async getBankList() {
    return this.vnpayService.getBankList();
  }

  /* ... các phương thức khác ... */
}

🤝 Hỗ trợ & Đóng góp

nestjs-vnpay là một dự án mã nguồn mở

Nếu bạn thấy thư viện hữu ích:

  • Tặng sao ⭐️ trên GitHub
  • Các đóng góp luôn được đón nhận! Hãy tạo một issue hoặc pull request nếu bạn có bất kỳ đề xuất, cải thiện hoặc câu hỏi nào.

📄 Giấy phép

MIT © Lê Huy Giang

About

VNPay utilities module based on the vnpay package

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published