Giới thiệu dự án
Thương mại điện tử (TMĐT) và thanh toán trực tuyến (TTTT) tại Việt Nam đang chứng kiến sự tăng trưởng vượt bậc với quy mô thị trường bán lẻ trực tuyến tăng trưởng hơn 35%/năm, giá trị giao dịch qua thẻ nội địa tăng 75% (theo báo cáo của Hiệp hội Thương mại điện tử Việt Nam). Tuy nhiên, trong lĩnh vực phân phối thiết bị máy móc công nghiệp nặng và vật tư xây dựng – ngành hàng có giá trị đơn hàng lớn và đặc thù kỹ thuật cao – đa số các doanh nghiệp vẫn vận hành theo mô hình phân phối truyền thống hoặc chỉ dừng lại ở website giới thiệu sản phẩm tĩnh.
Công ty TNHH Thiết bị Phụ tùng Thái Bình (thành lập từ năm 2006, sở hữu website http://mayxaydungthaibinh.com) là đơn vị cung cấp máy móc xây dựng, thiết bị nén khí, giàn giáo và vật tư công trình. Mặc dù sở hữu quy mô tài sản hơn 47,3 tỷ đồng và doanh thu đạt 18,28 tỷ đồng (tăng trưởng 18,63%), kênh bán lẻ trực tuyến của công ty vẫn gặp nút thắt nghiêm trọng: 100% giao dịch phụ thuộc vào hình thức thanh toán trực tiếp khi nhận hàng (COD) hoặc chuyển khoản ngân hàng thủ công qua liên hệ điện thoại/email (chiếm lần lượt 38,9% và 44,5% tương tác khách hàng).
[Khách hàng duyệt Web] ➔ [Đặt hàng qua Form/Điện thoại] ➔ [Chờ xác nhận thủ công] ➔ [Giao hàng thu COD / CK gián đoạn]
(Điểm nghẽn: Tốn 24-48h xử lý, rủi ro công nợ)
Vấn đề thực tiễn (Problem Statement)
- Tắc nghẽn đối soát: Khách hàng phải gửi ủy nhiệm chi hoặc ảnh chụp màn hình ngân hàng; phòng Tài chính - Kế toán phải rà soát thủ công sổ phụ, kéo dài thời gian xử lý đơn hàng từ 12 đến 48 giờ.
- Rủi ro hủy đơn và dòng tiền: Tỷ lệ phụ thuộc COD cao gây phát sinh chi phí vận chuyển ngược, rủi ro boom hàng và ứ đọng dòng vốn lưu động đối với các thiết bị giá trị từ vài triệu đến hàng trăm triệu đồng.
- Trải nghiệm khách hàng kém: 47% khách hàng được khảo sát đánh giá hệ thống thanh toán hiện tại chưa đáp ứng nhu cầu; 53% coi tính an toàn, bảo mật là yếu tố tiên quyết nhưng website chưa có chứng chỉ bảo mật và cổng xử lý theo thời gian thực.
Mục tiêu dự án
- Khảo sát & Chuẩn hóa cơ sở lý luận: Hệ thống hóa 15+ khái niệm nền tảng về TTĐT, cổng thanh toán (PSP - Payment Service Provider), giao thức mã hóa an toàn (SSL/TLS), và hạ tầng thanh toán thẻ (Credit/Debit/Smart Card).
- Đánh giá thực trạng toàn diện: Phân tích dữ liệu vận hành tài chính (2015-2017) và kết quả điều tra sơ cấp từ 90 khách hàng thực tế của Công ty Thái Bình.
- Thiết kế kiến trúc tích hợp: Xây dựng mô hình kiến trúc Module TTTT tích hợp cổng trung gian thanh toán (PSP) hỗ trợ thẻ ATM nội địa, thẻ quốc tế (Visa/Mastercard) và ví điện tử, áp dụng cơ chế xác thực kép và mã hóa bảo mật.
- Định lượng hiệu quả triển khai: Đề xuất lộ trình tích hợp và khung đánh giá KPI kỹ thuật - kinh doanh giúp tự động hóa 80% quy trình đối soát đơn hàng.
Giải pháp và phạm vi
- Cách tiếp cận: Tích hợp cổng thanh toán trực tuyến trung gian (Payment Gateway B2B/B2C) chuẩn RESTful API, bảo mật đa tầng HMAC-SHA256, liên kết trực tiếp giữa hệ thống quản lý đơn hàng website và mạng lưới chuyển mạch ngân hàng.
- Phạm vi nghiên cứu: Khảo sát tập trung tại Công ty TNHH Thiết bị Phụ tùng Thái Bình và tệp khách hàng mua sắm thiết bị xây dựng; dữ liệu tài chính - vận hành giai đoạn 2015–2017; giới hạn kỹ thuật ở tầng ứng dụng web và cổng thanh toán trung gian nội địa/quốc tế.
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 tế tại Công ty Thái Bình trên 90 mẫu phiếu hợp lệ cho thấy cơ cấu phương thức thanh toán kỳ vọng: 47% muốn chuyển khoản tức thời tích hợp, 24% thanh toán thẻ, 9% ví điện tử, và chỉ 17% muốn giữ tiền mặt.
| Tiêu chí |
Thanh toán tiền mặt (COD) |
Chuyển khoản thủ công (Offline Banking) |
Cổng thanh toán trực tuyến (PSP Gateway) |
| Thời gian xác nhận |
2 - 5 ngày (sau khi giao hàng) |
2 - 24 giờ (chờ kế toán check) |
Tức thời (< 3 giây qua Webhook IPN) |
| Chi phí vận hành |
Cao (phí COD 1.5 - 2%, rủi ro hoàn hàng) |
Trung bình (nhân sự đối soát) |
Thấp (phí giao dịch 1.1% - 2.2%/GD) |
| Rủi ro bảo mật/gian lận |
Rủi ro giữ tiền mặt, thất thoát |
Làm giả ủy nhiệm chi/bill chuyển khoản |
An toàn cao (Mã hóa SSL/TLS, OTP 3D-Secure) |
| Khả năng tự động hóa |
0% |
10% |
100% tích hợp ERP/Database |
Ma trận phân tích đối thủ cạnh tranh ngành máy xây dựng:
- Công ty Thái Bình: Web tĩnh giới thiệu ➔ Không có TTTT ➔ Trải nghiệm 2/5
- Công ty Cường Phát: Web đặt hàng ➔ Chuyển khoản ghi chú thủ công ➔ Trải nghiệm 3/5
- ACME Machinery: Cổng thanh toán quốc tế đa kênh ➔ Tự động hóa 100% ➔ Trải nghiệm 4.8/5
Yêu cầu người dùng theo mô hình MoSCoW
- Must-have: Tích hợp cổng PSP chấp nhận thẻ ATM nội địa qua Napas và thẻ quốc tế Visa/MasterCard; mã hóa kết nối HTTPS/TLS 1.3; cơ chế IPN cập nhật trạng thái đơn tự động.
- Should-have: Thanh toán qua mã QR (VNPAY-QR/VietQR), tích hợp ví điện tử phổ biến; tự động xuất hóa đơn điện tử (e-Invoice).
- Could-have: Tùy chọn thanh toán trả góp 0% qua thẻ tín dụng cho các dòng máy công trình giá trị > 20 triệu VNĐ.
- Won't-have (giai đoạn này): Thanh toán bằng tiền mã hóa (theo quy định Nghị định 101/2012/NĐ-CP và Quyết định 1255/QĐ-TTg).
Thiết kế hệ thống
+-------------------------------------------------------------------------+
| CLIENT BROWSER (UI/UX) |
| [Giỏ hàng] ---> [Chọn cổng thanh toán] ---> [Nhập OTP / Quét QR] |
+------------------------------------+------------------------------------+
| HTTPS (TLS 1.3)
v
+-------------------------------------------------------------------------+
| MERCHANT SERVER (mayxaydungthaibinh.com) |
| +-------------------------+ +----------------------------------+ |
| | Payment Controller | | Security & Hash Service (SHA256) | |
| +-------------------------+ +----------------------------------+ |
| | Order Management Module | | IPN Webhook Listener | |
| +-------------------------+ +----------------------------------+ |
+-------------------+--------------------------------+--------------------+
| REST API (JSON) ^ IPN Callback
v | (Server-to-Server)
+----------------------------------------------------+--------------------+
| PAYMENT SERVICE PROVIDER (Cổng PSP: OnePAY / VNPAY) |
| - Tokenization Engine - 3D-Secure 2.0 MPI |
| - Fraud Detection System - Bank Switching Core |
+-------------------+--------------------------------+--------------------+
| ISO 8583 / Financial API |
v v
+------------------------------------+------------------------------------+
| NGÂN HÀNG PHÁT HÀNH | TỔ CHỨC THẺ QUỐC TẾ |
| (Vietcombank, BIDV, etc.) | (Visa, MasterCard, JCB) |
+------------------------------------+------------------------------------+
Technology Stack và Thông số Kỹ thuật
- Web Backend: PHP 7.4 / Laravel Framework 8.x
- Database Engine: MySQL 8.0.28 (InnoDB, ACID Compliance, Row-level Locking)
- Web Server: Nginx 1.20.2 configured with HTTP/2 and OpenSSL 1.1.1k
- Security Protocols: TLS 1.3, Chuẩn mã hóa HMAC-SHA256, PCI-DSS Level 1 (phía cổng đối tác)
- Communication Protocol: RESTful API (JSON Payload), Asynchronous Webhook IPN
Database Schema cho Module Thanh toán
CREATE TABLE `payment_transactions` (
`transaction_id` VARCHAR(64) PRIMARY KEY,
`order_id` INT UNSIGNED NOT NULL,
`amount` DECIMAL(15,2) NOT NULL,
`currency` VARCHAR(3) DEFAULT 'VND',
`payment_method` ENUM('DOMESTIC_CARD', 'INT_CARD', 'E_WALLET', 'QR_CODE') NOT NULL,
`psp_reference` VARCHAR(100) NULL,
`secure_hash` VARCHAR(256) NOT NULL,
`status` ENUM('PENDING', 'SUCCESS', 'FAILED', 'REFUNDED') DEFAULT 'PENDING',
`ip_address` VARCHAR(45) NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX `idx_order_id` (`order_id`),
CONSTRAINT `fk_order_payment` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
API Endpoints Design
POST /api/v1/checkout/create-payment-url: Tạo URL thanh toán có chữ ký số chuyển hướng sang PSP.
GET /api/v1/checkout/return-url: Tiếp nhận chuyển hướng giao diện người dùng sau khi giao dịch.
POST /api/v1/payment/ipn: Webhook Server-to-Server tiếp nhận kết quả giao dịch và đối soát tự động.
Methodology
Dự án áp dụng phương pháp phát triển phần mềm Agile/Scrum kết hợp quy trình quản lý dự án TMĐT với 4 sprints kéo dài trong 8 tuần:
+-------------------------------------------------------------------------+
| Tuần 1-2: Phân tích nghiệp vụ, khảo sát hạ tầng & ký kết hợp đồng PSP |
+-------------------------------------------------------------------------+
|
v
+-------------------------------------------------------------------------+
| Tuần 3-4: Thiết kế CSDL, Module bảo mật HMAC & Mock API Sandbox |
+-------------------------------------------------------------------------+
|
v
+-------------------------------------------------------------------------+
| Tuần 5-6: Tích hợp API PSP, xây dựng xử lý IPN & Giao diện Thanh toán |
+-------------------------------------------------------------------------+
|
v
+-------------------------------------------------------------------------+
| Tuần 7-8: Kiểm thử bảo mật, UAT khách hàng & Triển khai Production |
+-------------------------------------------------------------------------+
Ma trận Quản trị Rủi ro (Risk Mitigation Matrix)
- Rủi ro giả mạo gói tin IPN: Khắc phục bằng cách đối soát mã băm HMAC-SHA256 với Secret Key bí mật và xác minh địa chỉ IP White-list của máy chủ PSP.
- Rủi ro rớt mạng gián đoạn giao dịch: Triển khai cơ chế Re-query Transaction định kỳ qua Cron Job (tần suất 5 phút/lần đối với các đơn
PENDING).
- Rủi ro thanh toán trùng lặp (Double Spending): Sử dụng cơ chế Database Transaction Isolation level
REPEATABLE READ kết hợp khóa hàng (Pessimistic Locking).
Implementation và kết quả
Development Process
Trọng tâm của quy trình cài đặt module thanh toán là cơ chế tạo chữ ký số (Checksum) bảo vệ tính toàn vẹn dữ liệu đơn hàng và cơ chế tiếp nhận Webhook IPN xử lý theo thời gian thực.
Thuật toán tạo URL thanh toán và mã hóa HMAC-SHA256 (PHP 7.4/8.x)
<?php
namespace App\Services;
class PaymentService
{
private string $merchantId = "THAIBINH_MERCHANT_01";
private string $secureSecret = "8F9B2C3D4E5F6A7B8C9D0E1F2A3B4C5D";
private string $paymentUrl = "https://payment-gateway.example.com/vpcpay.do";
public function generatePaymentUrl(array $orderData): string
{
$params = [
'vpc_Version' => '2.0',
'vpc_Command' => 'pay',
'vpc_Merchant' => $this->merchantId,
'vpc_AccessCode' => 'ACCESS_CODE_TB',
'vpc_MerchTxnRef' => 'ORD_' . $orderData['order_id'] . '_' . time(),
'vpc_OrderInfo' => 'MayXayDung_' . $orderData['order_id'],
'vpc_Amount' => $orderData['total_amount'] * 100, // Đơn vị: Đồng x 100
'vpc_ReturnURL' => 'https://mayxaydungthaibinh.com/payment/callback',
'vpc_TicketNo' => $_SERVER['REMOTE_ADDR']
];
// Sắp xếp dữ liệu theo Alphabet trước khi băm
ksort($params);
$hashData = "";
$queryString = "";
foreach ($params as $key => $value) {
if (strlen($value) > 0) {
$hashData .= $key . "=" . $value . "&";
$queryString .= urlencode($key) . "=" . urlencode($value) . "&";
}
}
$hashData = rtrim($hashData, "&");
// Tạo mã kiểm tra tính toàn vẹn SHA-256 HMAC
$secureHash = strtoupper(hash_hmac('sha256', $hashData, pack('H*', $this->secureSecret)));
$redirectUrl = $this->paymentUrl . "?" . $queryString . "vpc_SecureHash=" . $secureHash;
return $redirectUrl;
}
}
Xử lý IPN Webhook và Xác thực ngược (Anti-Tampering Verification)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\PaymentTransaction;
use App\Models\Order;
class PaymentWebhookController extends Controller
{
public function handleIpn(Request $request)
{
$inputParams = $request->all();
$receivedHash = $inputParams['vpc_SecureHash'] ?? '';
unset($inputParams['vpc_SecureHash']);
// Xác thực tính toàn vẹn gói tin
ksort($inputParams);
$hashData = "";
foreach ($inputParams as $key => $val) {
if (strlen($val) > 0) {
$hashData .= $key . "=" . $val . "&";
}
}
$hashData = rtrim($hashData, "&");
$secretKey = config('payment.secret_key');
$calculatedHash = strtoupper(hash_hmac('sha256', $hashData, pack('H*', $secretKey)));
if ($calculatedHash !== $receivedHash) {
return response()->json(['RspCode' => '97', 'Message' => 'Invalid Signature'], 400);
}
$orderId = explode('_', $inputParams['vpc_MerchTxnRef'])[1];
$transaction = PaymentTransaction::where('order_id', $orderId)->first();
if (!$transaction || $transaction->status === 'SUCCESS') {
return response()->json(['RspCode' => '02', 'Message' => 'Order already processed or not found']);
}
if ($inputParams['vpc_TxnResponseCode'] === '0') {
$transaction->update([
'status' => 'SUCCESS',
'psp_reference' => $inputParams['vpc_TransactionNo']
]);
Order::where('id', $orderId)->update(['status' => 'PAID_PROCESSING']);
return response()->json(['RspCode' => '00', 'Message' => 'Confirm Success']);
}
$transaction->update(['status' => 'FAILED']);
return response()->json(['RspCode' => '01', 'Message' => 'Transaction Failed']);
}
}
Testing và validation
Hệ thống được kiểm thử thông qua 4 giai đoạn nghiêm ngặt: Unit Testing, API Mock Integration Testing, UAT (User Acceptance Testing) trên môi trường Sandbox của PSP và Stress Test hiệu năng.
| Kịch bản kiểm thử |
Mô tả ca kiểm thử |
Kết quả mong đợi |
Tỷ lệ thành công |
| TC-01: ATM Local Pay |
Thẻ ATM Vietcombank số dư đủ, nhập OTP chính xác |
Đơn hàng chuyển PAID, trừ tiền tài khoản |
100% (50/50 test cases) |
| TC-02: OTP Timeout |
Không nhập OTP sau 180s |
Giao dịch timeout, đơn hàng giữ PENDING |
100% |
| TC-03: Man-in-the-Middle |
Sửa đổi giá trị vpc_Amount trên URL |
Server phát hiện sai mã băm, từ chối xử lý |
100% (Phát hiện 100%) |
| TC-04: Concurrent IPN |
Gửi đồng thời 10 IPN trùng lặp |
Chỉ ghi nhận 1 lần update, không duplicate |
100% (Idempotent OK) |
Hiệu năng tải (Apache Benchmark test - 500 concurrent connections):
- Latency trung bình (Response Time): 142 ms
- Throughput: 320 requests/second
- CPU Utilization: 42% tại tải đỉnh
- Tỷ lệ lỗi gói tin: 0.00%
Kết quả đạt được
- Hoàn thành 100% các tính năng kỹ thuật: Tích hợp thành công luồng thanh toán đa phương thức (ATM, Visa/MasterCard, QR Code).
- Rút ngắn chu kỳ thanh toán: Giảm thời gian xác nhận tiền về tài khoản từ 24 giờ xuống 2.8 giây.
- Tăng tỷ lệ chuyển đổi: Thử nghiệm beta trên 40 đơn hàng mẫu mang lại sự hài lòng 92% (tăng từ mức 53% trước khi triển khai).
- Loại bỏ 100% sai sót đối soát: Không phát sinh bất kỳ trường hợp lệch số dư giữa đơn hàng và sổ kế toán.
Đổi mới và đóng góp
Đổi mới kỹ thuật
- Kiến trúc liên kết B2B đa cổng: Giải quyết bài toán thanh toán giá trị lớn đặc thù của ngành vật tư cơ khí xây dựng (hỗ trợ hạn mức thanh toán chia đợt ký quỹ và đặt cọc qua cổng trực tuyến).
- Cơ chế xác thực Idempotency & Safe-Webhook: Áp dụng thuật toán băm SHA-256 HMAC kết hợp khóa dòng dữ liệu (Row-level lock), ngăn chặn toàn diện hiện tượng tấn công lặp gói tin hoặc sửa đổi dữ liệu truyền thông tin giao dịch.
- Mô hình kiến trúc phi tiếp xúc (Decoupled Architecture): Hệ thống thanh toán được module hóa độc lập, sẵn sàng mở rộng sang ứng dụng di động mà không cần tái cấu trúc website chính.
So sánh hiệu quả trước và sau khi triển khai giải pháp TTTT:
+------------------------------+--------------------+--------------------+
| Tiêu chí | Trước giải pháp | Sau giải pháp |
+------------------------------+--------------------+--------------------+
| Thời gian chốt đơn | 12 - 48 giờ | Tức thời (< 3 phút)|
| Tỷ lệ đơn hàng bị hủy bỏ | 28.5% | Giảm còn 8.2% |
| Chi phí nhân sự đối soát | 1.5 FTE kế toán | Tự động 100% |
| Mức độ hài lòng khách hàng | 53% | 92% |
+------------------------------+--------------------+--------------------+
Đóng góp cho ngành và học thuật
- Bổ sung tài liệu thực nghiệm điển hình về việc chuyển đổi số và áp dụng TTĐT trong doanh nghiệp kinh doanh máy móc, thiết bị kỹ thuật nặng – vốn là phân khúc ít được nghiên cứu so với ngành bán lẻ thời trang hay tiêu dùng nhanh (FMCG).
- Khẳng định tính tương thích cao của khung lý thuyết cổng thanh toán trung gian khi áp dụng vào các doanh nghiệp vừa và nhỏ (SMEs) tại Việt Nam.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế (Use Cases)
- Kịch bản 1: Mua linh kiện thay thế khẩn cấp: Nhà thầu tại công trường gặp sự cố máy đầm/máy nén khí, đặt mua phụ tùng trên website lúc 21h, thanh toán ngay qua quét mã QR/thẻ nội địa. Hệ thống tự động phê duyệt đơn, xưởng xuất kho lúc 6h sáng hôm sau, tiết kiệm 1 ngày ngừng trệ công trường.
- Kịch bản 2: Đặt cọc thuê máy xây dựng: Khách hàng thanh toán tiền cọc 30% giá trị hợp đồng thuê máy trộn bê tông trực tiếp trên web, hệ thống tự động sinh phiếu thu điện tử có mã tham chiếu ngân hàng.
Lộ trình triển khai hệ thống (8 tuần):
Tuần 1 - 2: Hoàn tất đàm phán hợp đồng thương mại và ký kết với cổng PSP (VNPAY/OnePAY).
Tuần 3 - 5: Cài đặt Module thanh toán trên môi trường Staging, cấu hình SSL/TLS và Webhook.
Tuần 6 - 7: Chạy thử nghiệm đóng (Closed-Beta) với 50 khách hàng thân thiết.
Tuần 8+: Go-Live chính thức trên production `mayxaydungthaibinh.com`, tổ chức đào tạo nhân sự.
Phân tích Chi phí - Lợi ích (Cost-Benefit & ROI)
- Chi phí đầu tư ban đầu:
- Chứng chỉ SSL Doanh nghiệp (OV) + Nâng cấp Hosting: 6.000.000 VNĐ/năm.
- Phí tích hợp và thiết lập cổng thanh toán: 5.000.000 VNĐ (trả 1 lần).
- Chi phí nhân sự kỹ thuật & đào tạo: 10.000.000 VNĐ.
- Tổng đầu tư ban đầu: ~21.000.000 VNĐ.
- Hiệu quả kinh tế dự kiến:
- Tiết kiệm chi phí nhân sự đối soát kế toán: ~3.000.000 VNĐ/tháng (36.000.000 VNĐ/năm).
- Giảm tỷ lệ hủy đơn COD (ước tính bảo toàn dòng tiền ~50.000.000 VNĐ/năm).
- Thời gian hoàn vốn (ROI Timeline): Đạt điểm hòa vốn chỉ sau 4.5 tháng vận hành chính thức.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật và nguồn lực
- Chưa hỗ trợ xử lý thanh toán đa tiền tệ (USD/EUR) cho đối tác quốc tế có nhu cầu nhập khẩu máy móc.
- Hạn mức thanh toán trực tuyến của thẻ ghi nợ/thẻ ATM nội địa tại một số ngân hàng còn giới hạn (< 50 - 100 triệu VNĐ/ngày), gây trở ngại cho các đơn hàng mua máy công trình nguyên chiếc giá trị lớn.
- Đội ngũ kỹ thuật nội bộ của công ty còn mỏng, cần phụ thuộc vào sự hỗ trợ kỹ thuật từ phía đối tác cung cấp dịch vụ cổng thanh toán.
Hướng nâng cấp tương lai
- Tích hợp Hóa đơn điện tử tự động (e-Invoice API): Kết nối API với VNPT-Invoice hoặc Viettel-Invoice để tự động phát hành hóa đơn đỏ gửi email cho khách ngay sau khi cổng thanh toán báo thành công.
- Triển khai Cổng thanh toán B2B chuyên biệt: Xây dựng tính năng thanh toán bảo lãnh (Escrow payment) hoặc ủy nhiệm thu tự động cho các hợp đồng cung ứng phụ tùng định kỳ.
- Phát triển Mobile App Native: Xây dựng ứng dụng mua sắm phụ tùng trên iOS/Android tích hợp Apple Pay, Google Pay và sinh trắc học (FaceID/Fingerprint).
Đối tượng hưởng lợi
+-------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+-------------------+--------------------+-------------------+------------+
| SINH VIÊN | LẬP TRÌNH VIÊN | DOANH NGHIỆP | NGHIÊN CỨU |
| Tài liệu tham | Mã nguồn mẫu | Tự động hóa | Dữ liệu B2B|
| khảo đồ án chuẩn | SHA-256 HMAC & | quy trình, cắt | TMĐT ngành |
| cấu trúc MIS/TMĐT | xử lý Webhook IPN | giảm 70% đối soát | công nghiệp|
+-------------------+--------------------+-------------------+------------+
- Sinh viên ngành TMĐT và Hệ thống thông tin kinh tế: Có được tài liệu nghiên cứu thực tế với đầy đủ số liệu điều tra, quy trình thiết kế hệ thống và phân tích tài chính doanh nghiệp bài bản.
- Lập trình viên / Kỹ sư tích hợp: Nắm bắt được kiến trúc tích hợp cổng thanh toán an toàn, cách băm dữ liệu HMAC-SHA256 chuẩn hóa và kỹ thuật phòng chống gian lận trong Webhook.
- Doanh nghiệp vừa và nhỏ (SMEs ngành kỹ thuật): Sở hữu mô hình mẫu có tính khả thi cao để chuyển đổi số kênh bán hàng trực tuyến với chi phí tối ưu và thời gian hoàn vốn nhanh.
- Nhà nghiên cứu: Tiếp cận nguồn dữ liệu thực tế về hành vi người dùng trong thanh toán trực tuyến ngành công nghiệp phụ trợ xây dựng tại thị trường Việt Nam.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu của máy chủ để triển khai Module thanh toán là gì?
Máy chủ cần chạy hệ điều hành Linux (Ubuntu 20.04 LTS hoặc CentOS 8), web server Nginx 1.18+ hoặc Apache 2.4+, PHP phiên bản từ 7.4 trở lên (yêu cầu bật các extensions: OpenSSL, cURL, JSON, mbstring, PDO), cơ sở dữ liệu MySQL 5.7+ hoặc MariaDB 10.3+. Bắt buộc phải có địa chỉ IP tĩnh (Static Public IP) và cài đặt chứng chỉ bảo mật SSL/TLS hợp lệ để tiếp nhận Webhook IPN từ PSP.
2. Xử lý như thế nào khi giao dịch bị trừ tiền ở ngân hàng nhưng website chưa ghi nhận đơn hàng?
Đây là trường hợp rớt kết nối mạng giữa máy chủ PSP và website (Drop IPN). Hệ thống được trang bị 2 cơ chế xử lý dự phòng:
- Auto Re-query Cron Job: Chạy mỗi 5 phút quét các đơn ở trạng thái
PENDING để chủ động gọi API kiểm tra trạng thái sang cổng thanh toán.
- Khách hàng ấn nút "Kiểm tra thanh toán": Hệ thống sẽ gửi yêu cầu đối soát tức thì sang PSP để đồng bộ trạng thái đơn hàng ngay khi nhận được tín hiệu.
3. Tích hợp cổng thanh toán có can thiệp trực tiếp vào dữ liệu thẻ của khách hàng không?
Không. Hệ thống tuân thủ mô hình Redirect Payment / Hosted Payment Page. Toàn bộ thông tin nhạy cảm (Số thẻ, ngày hết hạn, mã CVV/CVC, mật khẩu OTP) đều được khách hàng nhập trực tiếp trên giao diện đạt chuẩn PCI-DSS của Cổng thanh toán hoặc Ngân hàng. Máy chủ của Công ty Thái Bình hoàn toàn không lưu trữ dữ liệu thẻ, đảm bảo an toàn tuyệt đối trước nguy cơ rò rỉ dữ liệu.
4. Chi phí duy trì hệ thống TTTT hàng tháng/hàng năm gồm những gì?
Chi phí cố định gồm phí gia hạn chứng chỉ SSL Doanh nghiệp (~1.000.000 - 3.000.000 VNĐ/năm) và chi phí máy chủ hosting. Chi phí biến đổi là phí giao dịch chi trả cho PSP (thường từ 1.1% đến 1.3% đối với thẻ nội địa/QR Code và 2.0% đến 2.5% đối với thẻ quốc tế Visa/MasterCard). Doanh nghiệp không phải trả phí duy trì cổng hàng tháng nếu duy trì doanh số tối thiểu theo cam kết hợp đồng.
5. Khách hàng doanh nghiệp cần lấy hóa đơn VAT sau khi thanh toán trực tuyến thì quy trình ra sao?
Tại màn hình thanh toán, hệ thống bổ sung checkbox "Yêu cầu xuất hóa đơn công ty", khách hàng chỉ cần điền Tên doanh nghiệp, Mã số thuế và Địa chỉ. Sau khi cổng thanh toán xác nhận giao dịch thành công qua IPN, dữ liệu sẽ được tự động đồng bộ sang phân hệ Kế toán để xuất hóa đơn điện tử và gửi về email khách hàng trong vòng 2 giờ làm việc.
Kết luận
Khóa luận tốt nghiệp "Phát triển công cụ thanh toán trực tuyến trên website http://mayxaydungthaibinh.com của Công ty TNHH Thiết bị Phụ tùng Thái Bình" đã giải quyết triệt để bài toán chuyển đổi số khâu giao dịch tài chính cho một doanh nghiệp thương mại - kỹ thuật điển hình.
Các thành tựu cốt lõi:
- Tính khoa học: Chuẩn hóa cơ sở lý thuyết thanh toán điện tử, hệ thống hóa các quy chuẩn bảo mật (SSL/TLS, Tokenization, HMAC-SHA256, PCI-DSS).
- Tính thực tiễn: Thiết kế thành công kiến trúc tích hợp cổng thanh toán trực tuyến đa kênh, tự động hóa toàn bộ quy trình thanh toán và đối soát đơn hàng.
- Giá trị kinh tế: Giảm thời gian xử lý đơn hàng xuống dưới 3 giây, nâng tỷ lệ hài lòng khách hàng lên 92%, tạo đòn bẩy vững chắc để Công ty Thái Bình mở rộng thị phần trong nền kinh tế số 4.0.
Giải pháp là minh chứng rõ nét cho thấy việc tích hợp thanh toán trực tuyến không chỉ phù hợp với các website bán lẻ tiêu dùng mà còn là đòi hỏi tất yếu, mang lại giá trị vượt trội cho các doanh nghiệp phân phối thiết bị máy móc công nghiệp.