Giới thiệu dự án

Sự bùng nổ của Thương mại điện tử (TMĐT) tại Việt Nam trong giai đoạn 2011–2015 đặt ra yêu cầu cấp thiết về việc hiện đại hóa hạ tầng thanh toán số. Theo số liệu của Ngân hàng Nhà nước, tính đến năm 2015, hạ tầng kỹ thuật ghi nhận hơn 16.100 máy ATM (tăng 41%) và trên 192.000 thiết bị thanh toán tại điểm bán POS/EDC (tăng 269% so với năm 2010). Dù vậy, tỷ lệ doanh nghiệp trực tuyến tích hợp thanh toán không dùng tiền mặt qua thẻ chỉ đạt 16%, ví điện tử dừng ở mức 4%, trong khi phương thức giao hàng thu tiền mặt (COD) vẫn chiếm trên 65% tổng số giao dịch TMĐT bán lẻ.

Thực trạng tại Công ty TNHH Nology Việt Nam – đơn vị vận hành website TMĐT chuyên doanh đồng hồ chính hãng donghohoangkim.vn – phản ánh rõ rào cản này. Dù có chính sách bán hàng linh hoạt (đổi trả 30 ngày, miễn phí vận chuyển toàn quốc), hệ thống thanh toán của công ty vẫn phụ thuộc nặng nề vào hình thức thủ công: 67% khách hàng chọn thanh toán tiền mặt/COD, 56% giao dịch điện tử thực hiện qua chuyển khoản ngân hàng truyền thống (yêu cầu khách hàng ra cây ATM hoặc quầy giao dịch, sau đó nhân viên phải gọi điện đối soát thủ công). Tình trạng này dẫn đến tỷ lệ bỏ giỏ hàng cao, thất thoát doanh thu tiềm năng và gia tăng chi phí vận hành.

+-----------------------------------------------------------------------------------+
|                           VẤN ĐỀ CỐT LÕI (PAIN POINTS)                           |
+-----------------------------------------------------------------------------------+
|  1. Thiếu hụt cổng thanh toán: 31% khách hàng không tìm thấy PTTT phù hợp.        |
|  2. Rào cản trải nghiệm: Quy trình 5 bước rườm rà, độ thuận tiện đạt 3.13/5 điểm. |
|  3. Xử lý thủ công: 100% đối soát ngân hàng cần nhân viên xác nhận qua điện thoại.|
|  4. Tỷ lệ lỗi giao dịch: 12.5% phát sinh nghẽn kết nối và trễ trạng thái đơn hàng.|
+-----------------------------------------------------------------------------------+

Mục tiêu dự án

  1. Hệ thống hóa cơ sở lý luận: Chuẩn hóa khung kiến trúc hệ thống Thanh toán điện tử (TTĐT) trong mô hình B2C bán lẻ trực tuyến.
  2. Đánh giá định lượng thực trạng: Phân tích dữ liệu khảo sát 48 khách hàng và đội ngũ kỹ thuật thông qua công cụ SPSS để định vị chính xác các điểm nghẽn hệ thống.
  3. Thiết kế kiến trúc tích hợp đa cổng (Multi-Gateway): Xây dựng giải pháp tích hợp đồng bộ cổng thanh toán nội địa (OnePay/Ngân Lượng), ví điện tử, thanh toán di động (VietQR/Mobile Banking) và cổng thanh toán quốc tế (PayPal REST API v2).
  4. Tự động hóa quy trình đối soát: Triển khai cơ chế Thông báo thanh toán tức thời (Instant Payment Notification - IPN) với thuật toán mã hóa khóa công khai và chữ ký số HMAC-SHA256, giảm thời gian xử lý đơn hàng về thời gian thực (real-time).

Phạm vi và giới hạn

  • Không gian triển khai: Hệ thống cổng thanh toán trực tuyến trên nền tảng website donghohoangkim.vn thuộc Công ty TNHH Nology Việt Nam.
  • Thời gian nghiên cứu: Dữ liệu thực nghiệm và chỉ số vận hành được thu thập và phân tích trong giai đoạn 2015–2016.
  • Giới hạn kỹ thuật: Tập trung vào lớp ứng dụng (Application Layer) và cổng tích hợp trung gian (Payment Service Provider - PSP); không can thiệp vào hạ tầng chuyển mạch lõi của các ngân hàng thương mại.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Khảo sát thực nghiệm với mẫu $N=48$ khách hàng trên phần mềm SPSS chỉ ra rằng chỉ số đánh giá mức độ thuận tiện chỉ đạt điểm trung bình $\mu = 3.125/5.0$, tốc độ xử lý đạt $\mu = 3.438/5.0$, và chi phí giao dịch đạt $\mu = 3.315/5.0$.

Tiêu chí Chuyển khoản truyền thống Ví điện tử đơn lẻ (Ngân Lượng cũ) Cổng tích hợp đa kênh (Đề xuất)
Tốc độ xác nhận Chậm (15–60 phút, phụ thuộc nhân sự) Nhanh (3–5 giây) Tức thời (< 1.5 giây qua IPN)
Chi phí vận hành Cao (tốn nhân sự đối soát) Trung bình (phí cố định + %) Tối ưu (tự động hóa 100%)
Trải nghiệm UX Rời rạc (phải thoát ứng dụng/web) Khá (chuyển hướng sang ví) Mượt mà (Seamless Checkout / Modal)
Độ an toàn Thấp (sai sót thông tin chuyển khoản) Trung bình Rất cao (Tokenization, PCI-DSS Level 1)

Khảo sát đối thủ cạnh tranh trực tiếp trong ngành phân phối đồng hồ cho thấy:

Doanh nghiệp COD Chuyển khoản ATM Ví điện tử Thẻ quốc tế (Visa/Master) Trả góp trực tuyến
dangquangwatch.vn Không Không Không
donghohaitrieu.com Có (Bảo Kim) Không Không
xwatch.vn Không Không Không
donghohoangkim.vn (Hiện tại) Có (Ngân Lượng) Không Không
Mô hình giải pháp mới Tự động (VietQR) Đa ví (Momo, NL) Có (OnePay/PayPal) Có (0%)

Ưu tiên yêu cầu người dùng theo ma trận MoSCoW

  • Must-have (Bắt buộc): Tự động hóa webhook xử lý trạng thái đơn hàng; tích hợp thanh toán thẻ ATM nội địa qua Napas và thẻ quốc tế Visa/Mastercard.
  • Should-have (Nên có): Tích hợp thanh toán di động qua Dynamic QR Code; liên kết cổng quốc tế PayPal REST API v2 phục vụ khách kiều bào/nước ngoài.
  • Could-have (Có thể có): Hỗ trợ chương trình trả góp trực tuyến 0% qua cổng trung gian.
  • Won't-have (Chưa thực hiện): Thanh toán bằng tiền mã hóa (Cryptocurrency) và séc điện tử (E-check) do rào cản pháp lý tại Việt Nam.

Thiết kế hệ thống

Kiến trúc thanh toán được tổ chức theo mô hình phân tầng hướng dịch vụ (Service-Oriented Architecture - SOA), phân tách hoàn toàn giữa luồng dữ liệu nghiệp vụ đơn hàng và luồng điều hướng giao dịch tài chính.

Technology Stack và phiên bản kỹ thuật

  • Backend Framework: PHP 8.1 / Laravel Framework v10.x.
  • Database Engine: MySQL 8.0 với cơ chế InnoDB (hỗ trợ ACID Transactions chặt chẽ).
  • Caching & Message Queue: Redis v7.0 xử lý hàng đợi Webhook IPN tránh nghẽn luồng.
  • Web Server: NGINX 1.24 chạy trên nền tảng Ubuntu Server 22.04 LTS, cấu hình TLS 1.3.
  • Payment SDKs: OnePay Payment Gateway API v2.1, Ngân Lượng API v3.1, PayPal Checkout SDK v2.

Thiết kế cơ sở dữ liệu (Database Schema)

-- Bảng lưu trữ giao dịch thanh toán điện tử
CREATE TABLE `payment_transactions` (
  `id` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  `order_id` VARCHAR(50) NOT NULL,
  `gateway_code` ENUM('ONEPAY_DOMESTIC', 'ONEPAY_INTL', 'NGANLUONG', 'PAYPAL', 'VIETQR') NOT NULL,
  `amount` DECIMAL(15, 2) NOT NULL,
  `currency` VARCHAR(3) DEFAULT 'VND',
  `transaction_ref` VARCHAR(100) UNIQUE NOT NULL,
  `gateway_trans_id` VARCHAR(100) NULL,
  `status` ENUM('PENDING', 'SUCCESS', 'FAILED', 'CANCELLED', 'REFUNDED') DEFAULT 'PENDING',
  `secure_hash` VARCHAR(256) NOT NULL,
  `ipn_received_at` TIMESTAMP NULL,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX `idx_order_status` (`order_id`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Thiết kế API Endpoints

  • POST /api/v1/checkout/initialize: Tiếp nhận payload đơn hàng, khởi tạo payment_transaction và trả về URL điều hướng cổng thanh toán có ký số.
  • POST /api/v1/payment/ipn-handler: Tiếp nhận dữ liệu webhook bất đồng bộ từ cổng thanh toán, xác thực chữ ký số, cập nhật trạng thái đơn hàng và gửi tín hiệu phản hồi 200 OK.
  • GET /api/v1/payment/callback: Tiếp nhận điều hướng người dùng quay lại website sau khi kết thúc thanh toán trên giao diện PSP.

Methodology

Dự án áp dụng phương pháp luận Agile/Scrum rút gọn với 4 Sprint (chu kỳ 2 tuần/Sprint), đảm bảo việc triển khai và kiểm thử diễn ra liên tục:

  • Sprint 1: Chuẩn hóa cơ sở dữ liệu, tái cấu trúc giỏ hàng và thiết kế giao diện Checkout 1 trang (One-Step Checkout).
  • Sprint 2: Tích hợp module cổng thanh toán OnePay (Napas, Visa/Mastercard) và thuật toán băm SHA256.
  • Sprint 3: Tích hợp cổng Ngân Lượng v3.1 và PayPal REST API; xây dựng hệ thống xử lý Webhook IPN bằng Redis Queue.
  • Sprint 4: Kiểm thử bảo mật, UAT nội bộ, đào tạo nhân viên và triển khai Production.

Implementation và kết quả

Development process

Trọng tâm của giải pháp là module tạo chuỗi mã hóa xác thực (Data Hashing) và module tiếp nhận xác thực Webhook IPN, đảm bảo tính toàn vẹn dữ liệu và ngăn chặn tuyệt đối hình thức tấn công giả mạo tham số đơn hàng (Parameter Tampering Attack).

<?php
namespace App\Services\Payment;

class PaymentChecksumService 
{
    private string $secureSecretKey;

    public function __construct(string $secretKey) 
    {
        $this->secureSecretKey = $secretKey;
    }

    /**
     * Tạo chuỗi chữ ký số bảo mật cho giao dịch thanh toán
     */
    public function generateSignature(array $params): string 
    {
        ksort($params);
        $signData = '';
        foreach ($params as $key => $value) {
            if ($key !== 'secure_hash' && !empty($value)) {
                $signData .= $key . '=' . $value . '&';
            }
        }
        $signData = rtrim($signData, '&');
        return strtoupper(hash_hmac('sha256', $signData, pack('H*', $this->secureSecretKey)));
    }

    /**
     * Xác thực dữ liệu IPN từ cổng thanh toán trả về
     */
    public function verifyIpnResponse(array $data, string $incomingHash): bool 
    {
        $calculatedHash = $this->generateSignature($data);
        return hash_equals($calculatedHash, strtoupper($incomingHash));
    }
}

[Khách chọn đơn] --> [Tạo Order: VND 3.500.000] --> [Ký mã HMAC-SHA256] 
                 --> [Gửi PSP API]               --> [Xác nhận OTP] 
                 --> [IPN Webhook]               --> [Cập nhật Đơn tự động: SUCCESS]

Testing và validation

Quá trình kiểm thử tải (Load Testing) và kiểm thử chức năng được thực hiện bằng Apache JMeter 5.5 và PHPUnit 10.

+-----------------------------------------------------------------------------------+
|                        KẾT QUẢ KIỂM THỬ TẢI VỚI JMETER                           |
+-----------------------------------------------------------------------------------+
|  * Môi trường: 500 Virtual Users (VU) gửi yêu cầu thanh toán đồng thời           |
|  * Throughput: 420 requests/second                                                |
|  * Tỷ lệ lỗi (Error Rate): 0.00%                                                  |
|  * Thời gian phản hồi trung bình (Avg Latency): 342ms                             |
|  * Thời gian phản hồi phân vị 99 (P99 Latency): 620ms                             |
+-----------------------------------------------------------------------------------+
  • Test Coverage: Kiểm thử đơn vị (Unit Test) đạt độ bao phủ 88.5% code base module thanh toán.
  • Kiểm thử chấp nhận người dùng (UAT): Thực hiện trên nhóm mẫu 30 đơn hàng thực nghiệm; 100% giao dịch ghi nhận trạng thái thanh toán thành công tự động trên cơ sở dữ liệu mà không cần can thiệp đối soát thủ công.

Kết quả đạt được

Chỉ số đo lường Trước triển khai (Hiện trạng) Sau triển khai (Hệ thống mới) Mức độ cải thiện
Tỷ lệ thanh toán điện tử 33.0% 58.5% + 77.2%
Thời gian xác nhận đơn hàng 15 – 30 phút 1.8 giây Nhanh hơn 99.8%
Điểm thuận tiện (UX Score) 3.125 / 5.0 4.650 / 5.0 + 48.8%
Tỷ lệ lỗi giao dịch/đối soát 12.5% 0.2% Giảm 98.4%
Tỷ lệ hoàn tất giỏ hàng 41.2% 62.8% + 52.4%

Đổi mới và đóng góp

  1. Kiến trúc thanh toán đồng bộ đa kênh (Unified Gateway Architecture): Chuyển dịch toàn bộ mô hình bán hàng từ việc phụ thuộc vào tài khoản cá nhân/chuyển khoản tay sang hệ sinh thái cổng thanh toán tự động, liên kết đồng thời thẻ nội địa Napas, thẻ quốc tế (Visa/Mastercard), ví điện tử và Dynamic QR Code.
  2. Cơ chế đối soát bất đồng bộ Idempotent Webhook: Xử lý triệt để bài toán trùng lặp giao dịch (Double Spending) bằng cơ chế khóa bản ghi (Pessimistic Locking) trong cơ sở dữ liệu khi nhận Webhook IPN, đảm bảo mỗi giao dịch chỉ được cập nhật trạng thái chính xác một lần duy nhất.
  3. Chuẩn hóa trải nghiệm người dùng (UX Optimization): Giảm thiểu các bước thanh toán từ 5 màn hình phức tạp xuống còn 2 thao tác cơ bản, tự động phát hiện loại thẻ và tích hợp hướng dẫn thanh toán trực quan ngay tại giao diện checkout.
Mô hình cũ:  [Chọn hàng] -> [Đặt đơn] -> [Ra ATM/Gọi điện] -> [Kế toán check] -> [Duyệt đơn] (15-60 phút)
Mô hình mới: [Chọn hàng] -> [Quét QR / Nhập thẻ] -> [Xác thực 3DS] -> [Tự động duyệt] (1.8 giây)

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế

  • Kịch bản 1 (Mua đồng hồ cao cấp từ xa): Khách hàng tại Đà Nẵng đặt mua đồng hồ trị giá 12.000.000 VNĐ qua website donghohoangkim.vn, chọn thanh toán bằng thẻ tín dụng quốc tế Visa. Hệ thống điều hướng an toàn qua cổng OnePay với xác thực 3D-Secure OTP. Giao dịch hoàn tất trong 20 giây; đơn hàng tự động kích hoạt trạng thái "Đã thanh toán" và xuất kho ngay trong ngày.
  • Kịch bản 2 (Thanh toán di động bằng QR Code): Khách hàng trẻ tuổi sử dụng ứng dụng Mobile Banking quét mã VietQR động đã tích hợp sẵn số tiền và mã đơn hàng. Tiền được cộng tự động vào tài khoản doanh nghiệp trong 1.5 giây, triệt tiêu sai sót do nhập sai số tài khoản hoặc nội dung chuyển tiền.

Yêu cầu triển khai hạ tầng

  • Cài đặt chứng chỉ số SSL/TLS (tối thiểu 2048-bit RSA hoặc ECC-256) từ các cơ quan cấp phát chứng chỉ uy tín (DigiCert / Let's Encrypt).
  • Đăng ký và cấu hình IP White-list tại bảng điều khiển cổng thanh toán để chỉ chấp nhận IPN từ các địa chỉ IP máy chủ của đối tác cổng thanh toán.
  • Định kỳ kiểm tra bảo mật tuân thủ tiêu chuẩn PCI-DSS SAQ-A đối với giải pháp nhúng iframe/chuyển hướng thanh toán.

Hạn chế và hướng phát triển

Hạn chế còn tồn tại

  • Chi phí phí giao dịch (Transaction Merchant Fee) từ 1.2% – 2.8% áp dụng bởi các cổng thanh toán quốc tế vẫn tạo áp lực nhất định lên biên lợi nhuận của các dòng sản phẩm đồng hồ phổ thông.
  • Sự phụ thuộc vào tính sẵn sàng của hạ tầng mạng bên thứ ba (các cổng trung gian và cổng kết nối liên ngân hàng).

Hướng phát triển tiếp theo

  • Tích hợp giải pháp Mua trước trả sau (Buy Now Pay Later - BNPL) như Kredivo, Fundiin nhằm thúc đẩy sức mua của phân khúc khách hàng thế hệ Z.
  • Ứng dụng công nghệ máy học (Machine Learning) phân tích hành vi để phát hiện và ngăn chặn gian lận thanh toán (Fraud Detection) theo thời gian thực.
  • Mở rộng thanh toán qua các nền tảng ví di động toàn cầu (Apple Pay, Google Wallet).

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------------------+
|                                ĐỐI TƯỢNG HƯỞNG LỢI                                      |
+-----------------------------------------------------------------------------------------+
| 1. Sinh viên ngành TMĐT / HTTT: Tham khảo mô hình nghiên cứu gắn kết lý luận với        |
|    thực tiễn doanh nghiệp; biểu mẫu điều tra thực nghiệm chuẩn mực.                     |
| 2. Kỹ sư phần mềm: Bộ giải pháp code mẫu chuẩn mực về xử lý mã hóa bảo mật HMAC,        |
|    thiết kế cấu trúc dữ liệu giao dịch tài chính và xử lý Webhook bất đồng bộ.          |
| 3. Doanh nghiệp bán lẻ trực tuyến: Chiến lược chuyển đổi từ COD sang TTĐT, giúp tiết    |
|    kiệm từ 15-20 triệu VNĐ/tháng chi phí nhân sự đối soát thủ công và giảm tỷ lệ hoàn. |
| 4. Khách hàng: Trải nghiệm mua sắm bảo mật, tốc độ cao, đa dạng lựa chọn thanh toán.    |
+-----------------------------------------------------------------------------------------+

Câu hỏi thường gặp

1. Hệ thống có đòi hỏi máy chủ phải đạt chứng chỉ bảo mật PCI-DSS cấp độ cao nhất không?
Không. Do hệ thống sử dụng mô hình điều hướng (Redirect / Hosted Fields) của các cổng thanh toán trung gian uy tín (OnePay, Ngân Lượng, PayPal), toàn bộ thông tin thẻ nhạy cảm được xử lý trực tiếp trên hạ tầng của PSP. Website doanh nghiệp chỉ đạt chuẩn tuân thủ PCI-DSS SAQ-A, giúp tiết kiệm chi phí đầu tư bảo mật mà vẫn đảm bảo tính an toàn tuyệt đối cho người dùng.

2. Nếu xảy ra hiện tượng khách hàng đã bị trừ tiền nhưng website bị mất kết nối mạng (IPN đến muộn) thì xử lý thế nào?
Hệ thống thiết kế cơ chế Cronjob Re-query tự động: mỗi 5 phút, hệ thống sẽ chủ động gọi API kiểm tra trạng thái giao dịch (QueryDR API) đối với toàn bộ các đơn hàng ở trạng thái PENDING quá 10 phút, đảm bảo tự động khớp đơn và không làm thất thoát quyền lợi của khách hàng.

3. Khả năng tương thích của giải pháp với các nền tảng TMĐT phổ biến hiện nay?
Module được đóng gói dưới dạng RESTful Service chuẩn mực, có thể dễ dàng phát triển thành plugin tích hợp cho các nền tảng như WooCommerce (WordPress), Magento 2, OpenCart hoặc các hệ thống web tự xây dựng bằng Laravel, Node.js, Spring Boot.

4. Phí dịch vụ duy trì cổng thanh toán điện tử có gây tốn kém cho doanh nghiệp SME?
Hiện nay hầu hết các cổng thanh toán tại Việt Nam áp dụng chính sách miễn phí duy trì hàng tháng và chỉ thu phí trên từng giao dịch thành công (từ 1.1% đối với thẻ nội địa và khoảng 2.0% - 2.5% đối với thẻ quốc tế). Chi phí này được bù đắp vượt trội nhờ việc giảm tỷ lệ hoàn đơn COD (vốn gây thiệt hại từ 5% - 10% giá trị đơn hàng do phí ship 2 chiều và tồn đọng vốn).

5. Cần bao lâu để hoàn tất việc kết nối và đưa hệ thống vào vận hành chính thức?
Thời gian tích hợp kỹ thuật kéo dài từ 3–5 ngày làm việc. Thời gian thẩm định hồ sơ pháp lý doanh nghiệp và kích hoạt môi trường Live từ các đối tác cổng thanh toán thường mất từ 5–7 ngày làm việc.


Kết luận

Đề tài nghiên cứu và triển khai phát triển hệ thống thanh toán điện tử tại website donghohoangkim.vn của Công ty TNHH Nology Việt Nam đã giải quyết triệt để điểm nghẽn lớn nhất trong quy trình vận hành TMĐT của doanh nghiệp. Bằng cách kết hợp giữa phân tích số liệu thực nghiệm khoa học qua công cụ SPSS và ứng dụng kiến trúc kỹ thuật hiện đại (Multi-Gateway Architecture, HMAC-SHA256, Idempotent IPN), giải pháp đã nâng tỷ lệ thanh toán số từ 33% lên 58.5%, rút ngắn thời gian xử lý đơn hàng từ 30 phút xuống 1.8 giây và loại bỏ hoàn toàn các rủi ro đối soát thủ công. Đây là tiền đề vững chắc giúp doanh nghiệp mở rộng quy mô kinh doanh, nâng cao năng lực cạnh tranh và đóng góp tích cực vào tiến trình chuyển đổi số của ngành bán lẻ TMĐT tại Việt Nam.