Skip to main content

Payment Gateway

api_payment is the centralized payment gateway of Bot Ban Hang, integrating multiple payment platforms through a unified SDK pattern.

Supported platforms

PlatformFolderDescription
MoMoservices/payment/momo/MoMo e-wallet
ZaloPayservices/payment/zalopay/ZaloPay e-wallet
VNPayservices/payment/vnpay/VNPay payment gateway
Stripeservices/payment/stripe/International payments
Squareservices/payment/square/POS
MPOSservices/payment/mpos/Mobile POS
SePayservices/payment/sepay/Automatic bank transfer
Bank transferservices/payment/transfer/Bank
Cashservices/payment/cash/COD

SDK Pattern

Each platform SDK follows a common interface:

$PAYMENT.createTransaction(params)
$PAYMENT.queryTransaction(params)
$PAYMENT.refundTransaction(params)
$PAYMENT.handleWebhook(params)

Folder structure

services/payment/
├── core/ # Shared abstraction, factory, logger
├── momo/
│ ├── index.ts # Main code
│ ├── provider.ts # Adapter to common payment contract
│ ├── example.ts # Sample data
│ ├── index.spec.ts # Service tests
│ ├── provider.spec.ts # Provider tests
│ └── document.md # Flow documentation
├── zalopay/
├── vnpay/
├── stripe/
├── square/
├── mpos/
├── sepay/
├── transfer/
└── cash/

API Modules

  • api/transaction/ — Transaction CRUD
  • api/webhook/ — Receive callbacks from payment gateways
  • api/setting/ — Platform configuration for merchants
  • api/public/ — Public API
  • api/private/ — Internal API