Giới thiệu dự án

Bối cảnh và thực trạng ngành

Sự bùng nổ của Cuộc cách mạng Công nghiệp 4.0 và xu hướng xã hội không tiền mặt (Cashless Society) đã định hình lại các phương thức giao dịch tài chính toàn cầu. Theo báo cáo của Nonprofit Source (2018), doanh thu từ các kênh gây quỹ trực tuyến của các tổ chức phi lợi nhuận toàn cầu tăng trưởng 23% mỗi năm, trong đó số lượng giao dịch hoàn thành qua thiết bị di động tăng 50%. Khảo sát từ Mastercard (2017) chỉ ra rằng Việt Nam dẫn đầu khu vực Châu Á - Thái Bình Dương về tỷ lệ người tiêu dùng tham gia hoạt động thiện nguyện với 78,5%.

Tuy nhiên, hình thức từ thiện truyền thống và các chiến dịch tự phát trên mạng xã hội tại Việt Nam đang bộc lộ nhiều rủi ro nghiêm trọng:

  • Thiếu minh bạch dòng tiền, khó kiểm chứng tính xác thực của hoàn cảnh cần giúp đỡ.
  • Rào cản tâm lý về định mức đóng góp (người dùng e ngại khi chỉ có thể đóng góp số tiền nhỏ vài nghìn đồng).
  • Chi phí vận hành, quản lý thủ công cao dẫn đến thất thoát hoặc chậm trễ giải ngân.
  • Nghị định 93/2019/NĐ-CP của Chính phủ quy định bắt buộc các quỹ từ thiện phải công khai, minh bạch tài chính, đặt ra yêu cầu cấp thiết về việc số hóa quy trình quản lý thiện nguyện.

Vấn đề nghiên cứu (Problem Statement)

Tại môi trường giáo dục đại học, điển hình là Học viện Ngân hàng (HVNH), nhu cầu tương trợ nội bộ (sinh viên khó khăn, đồng bào chịu ảnh hưởng thiên tai) là rất lớn. Tuy nhiên, chưa có một nền tảng chuyên biệt kết nối trực tiếp Nhà hảo tâm (sinh viên, cán bộ, giảng viên), Tổ chức điều phối (Đoàn Thanh niên - Hội Sinh viên), Nhà tài trợ và Người thụ hưởng với khả năng xử lý giao dịch vi mô (Micro-donations) tức thời và minh bạch 100%.

+-------------------------------------------------------------------------+
|                              PAIN POINTS                                |
+------------------------------------+------------------------------------+
| 1. Thiếu minh bạch dòng tiền       | Dễ bị nghi ngờ, rủi ro trục lợi    |
| 2. Rào cản số tiền tối thiểu       | Bỏ lỡ nguồn lực từ quyên góp nhỏ   |
| 3. Tương tác 1 chiều, thụ động     | Tỷ lệ giữ chân người dùng thấp     |
| 4. Xử lý trung gian thủ công       | Tốn thời gian, sai sót dữ liệu     |
+------------------------------------+------------------------------------+

Mục tiêu dự án

  1. Mục tiêu hệ thống hóa và nghiệp vụ: Xây dựng nền tảng thiện nguyện trực tuyến đa kênh (Mobile App & Web App) mang tên Small Giving, tối ưu cho mô hình tài trợ vi mô trong cộng đồng giáo dục.
  2. Mục tiêu tích hợp công nghệ tài chính: Nghiên cứu và tích hợp giải pháp xử lý thanh toán lõi WAY4 Platform (do OpenWay cung cấp) với hệ thống Webservice API riêng biệt, đảm bảo xử lý giao dịch đạt chuẩn tài chính ngân hàng.
  3. Mục tiêu chuẩn hóa dữ liệu & UX/UI: Thiết kế kiến trúc phần mềm hướng dịch vụ (SOA), chuẩn hóa cơ sở dữ liệu quan hệ, cung cấp giao diện di động đa nền tảng (Cross-platform) bằng React Native.

Phương pháp tiếp cận và giải pháp

Đề tài áp dụng mô hình kiến trúc phân tầng kết hợp tách rời hệ thống thanh toán lõi (Payment Core) và tầng ứng dụng nghiệp vụ (Business Application Layer).

  • Frontend di động: React Native (JavaScript ES6+) biên dịch sang Native Components trên cả Android và iOS, đảm bảo hiệu năng gốc (60 FPS) và tái sử dụng 85%+ mã nguồn.
  • Tầng dịch vụ ứng dụng: Xây dựng RESTful API (PHP/MySQL) quản lý hồ sơ người dùng, tương tác cộng đồng, tin tức và bảng xếp hạng.
  • Tầng thanh toán lõi: Tích hợp các Webservice API chuẩn công nghiệp của hệ thống WAY4 Platform (OpenWay) để quản lý hợp đồng số dư, hạch toán ví, nạp/chuyển tiền thời gian thực.

Kết quả kỳ vọng (Measurable Metrics)

  • Thời gian phản hồi API trung bình: $< 350\text{ ms}$ cho các tác vụ nghiệp vụ và $< 800\text{ ms}$ cho giao dịch thanh toán qua cổng WAY4.
  • Tải xử lý đồng thời: Hỗ trợ tối thiểu 1.000 người dùng hoạt động đồng thời (CCU) trên môi trường thử nghiệm.
  • Độ chính xác dữ liệu: $100%$ giao dịch tài chính khớp lệnh giữa cơ sở dữ liệu ứng dụng và hệ sinh thái WAY4 Core.

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

  • Phạm vi: Tập trung phát triển hoàn chỉnh ứng dụng Mobile App (Client dành cho Nhà hảo tâm) trên Android/iOS và tích hợp API với hệ thống quản trị Web App của Đoàn Thanh niên HVNH.
  • Giới hạn: Không can thiệp trực tiếp vào mã nguồn tầng lõi của hệ thống xử lý WAY4 Core (Oracle PL/SQL); việc giao tiếp thực hiện hoàn toàn qua lớp trung gian NetServer/WAY4U APIs.

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

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

So sánh các giải pháp hiện hành

Tiêu chí Quyên góp mạng xã hội tự phát Ví điện tử thương mại (MoMo, VinID) Small Giving (Hệ thống đề xuất)
Tính minh bạch Kém (sao kê thủ công, dễ chỉnh sửa) Trung bình (công bố theo đợt) Cao (Real-time tracking, chi tiết từng đồng)
Chi phí giao dịch Miễn phí hoặc phí chuyển khoản ngân hàng 1% - 2% phí cổng thanh toán 0% (Hệ thống nội bộ tích hợp WAY4)
Quyên góp vi mô Không tối ưu cho món tiền nhỏ (< 5.000đ) Giới hạn theo hạn mức ví Tối ưu hóa cho số tiền từ 1.000đ
Gắn kết cộng đồng Phụ thuộc thuật toán hiển thị MXH Tính năng phụ trong siêu ứng dụng Gamification (Điểm danh nhận quỹ, BXH, Huy hiệu)
Quyền riêng tư & Xác thực Thấp (nguy cơ lừa đảo) Rất cao (eKYC tài chính) Xác thực danh tính sinh viên/cán bộ HVNH

Phân tích yêu cầu người dùng (Mô hình MoSCoW)

  • Must-have (Bắt buộc):
    • Đăng ký, đăng nhập, quản lý thông tin tài khoản qua JWT/Session.
    • Tích hợp API nạp tiền, chuyển tiền quyên góp cho từng chiến dịch.
    • Xem danh sách hoạt động, tiến độ giải ngân, số dư mục tiêu.
  • Should-have (Cần có):
    • Điểm danh nhận tiền quyên góp tự động từ quỹ tài trợ (Fund-matching).
    • Bảng xếp hạng vinh danh Top nhà hảo tâm và hệ thống huy hiệu (Vàng/Bạc/Đồng).
    • Tra cứu lịch sử giao dịch dòng tiền vào/ra theo khoảng thời gian thực.
  • Could-have (Có thể có):
    • Đăng ký nhận thông báo (Notification) khi chiến dịch có cập nhật mới.
    • Gửi phản hồi, ý kiến đóng góp trực tiếp về Đoàn Thanh niên.
  • Won't-have (Chưa thực hiện ở phiên bản này):
    • Thanh toán quốc tế qua thẻ tín dụng trực tiếp trên mobile app (sử dụng cổng tích hợp sẵn của WAY4).

Thiết kế hệ thống

Kiến trúc tổng thể hệ thống

Ngăn xếp công nghệ (Technology Stack)

+--------------------------------------------------------------------+
|                          TECHNOLOGY STACK                          |
+-------------------+------------------------------------------------+
| Mobile Client     | React Native v0.62+, React v16.13, ES6+ JS     |
| UI Framework      | React Native Elements, React Navigation v5.x   |
| Backend Gateway   | PHP 7.4 / Apache HTTP Server                   |
| Core Database     | MySQL 5.7 / 8.0 (InnoDB Engine, UTF8MB4)       |
| Payment Core      | WAY4 Platform v4.x (OpenWay Group)             |
| Core Payment DB   | Oracle Database 11g/12c (PL/SQL Triggers/Proc) |
| Network Protocols | HTTPS, REST/JSON, SOAP/XML, ISO 8583           |
+-------------------+------------------------------------------------+

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

Danh mục API hệ thống

1. Hệ thống API nghiệp vụ (Custom REST APIs - Small Giving)
Mã API Endpoint Phương thức Dữ liệu đầu vào (Payload) Phản hồi đầu ra (Response)
SM_01 /Dangnhap/dangnhap.php POST email/sdt, matkhau token, user_info, status
SM_02 /Dangky/nhapsodienthoai.php POST TenNguoiDung, SDT, Email, MatKhau status: success/fail, message
SM_04 /Bangxephang/bangxephang.php GET Không list: [{TenNguoiDung, SoTien, Rank}]
SM_06 /Quyengop/thuchienquyengop.php POST idNguoiDung, idHoatDong, SoTien status: success/fail, trans_id
SM_11 /Theodoi/theodoi.php POST idNhaHaoTam, idHoatDong status: success/fail
SM_12 /Diemdanh/diemdanh.php POST idNhaHaoTam status: success/fail, amount
2. Hệ thống Webservice API thanh toán (WAY4 Platform)
Mã API Endpoint Phương thức Tham số đầu vào Mô tả chức năng
W4_01 /apiway4/taotaikhoan.php POST ShortName, ClientNumber, IdentityCardNumber, MobilePhone, EMail Khởi tạo ví/hồ sơ khách hàng trên WAY4 Core
W4_03 /apiway4/laythongtin.php GET ClientNumber Lấy số dư khả dụng (AvailableBalance), số hợp đồng
W4_04 /apiway4/chuyentien.php POST NumberNguoiGui, NumberNguoiNhan, SoTien Thực hiện ghi nợ/ghi có tài khoản ví tức thời
W4_05 /apiway4/naptien.php POST ClientNumber, SoTien Xử lý nạp tiền từ tài khoản liên kết vào ví thiện nguyện
W4_06 /apiway4/lichsugiaodichvao.php GET ClientNumber, NgayBD, NgayKT Trích xuất sao kê dòng tiền vào theo thời gian

Phương pháp luận phát triển (Methodology)

Dự án được triển khai theo mô hình Agile/Scrum với chu kỳ 4 Sprint (mỗi Sprint kéo dài 2 tuần):

+----------------------------------------------------------------------+
|                           PROJECT TIMELINE                           |
+----------+-----------------------------------------------------------+
| Sprint 1 | Phân tích nghiệp vụ, khảo sát UX, thiết kế DB & Figma UI  |
| Sprint 2 | Phát triển Client React Native, tạo Mock APIs             |
| Sprint 3 | Tích hợp PHP REST API & kết nối Webservice WAY4 Platform  |
| Sprint 4 | Kiểm thử tích hợp (Integration Test), UAT, đóng gói APK   |
+----------+-----------------------------------------------------------+

Triển khai và kết quả (Implementation & Results)

Quy trình phát triển và thuật toán lõi

1. Xử lý điều phối giao dịch quyên góp (Donation Orchestration)

Khi người dùng thực hiện thao tác quyên góp trên ứng dụng di động, hệ thống thực thi chuỗi kiểm tra tính toàn vẹn và giao dịch liên tầng:

<?php
// Trích đoạn xử lý điều phối quyên góp tại backend (thuchienquyengop.php)
header('Content-Type: application/json; charset=utf-8');
require_once '../config/database.php';
require_once '../services/Way4Service.php';

$idNguoiDung = filter_input(INPUT_POST, 'idNguoiDung', FILTER_SANITIZE_NUMBER_INT);
$idHoatDong  = filter_input(INPUT_POST, 'idHoatDong', FILTER_SANITIZE_NUMBER_INT);
$soTien      = filter_input(INPUT_POST, 'SoTien', FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);

if (!$idNguoiDung || !$idHoatDong || $soTien <= 0) {
    echo json_encode(["status" => "fail", "message" => "Dữ liệu đầu vào không hợp lệ"]);
    exit;
}

// 1. Kiểm tra số dư tài khoản người dùng thông qua WAY4 API
$clientPhone = getUserPhoneById($db, $idNguoiDung);
$way4Balance = Way4Service::getBalance($clientPhone);

if ($way4Balance < $soTien) {
    echo json_encode(["status" => "fail", "message" => "Số dư khả dụng không đủ để quyên góp"]);
    exit;
}

// 2. Bắt đầu Transaction chuyển tiền trên WAY4
$campaignAccount = getCampaignWalletNumber($db, $idHoatDong);
$transferResult = Way4Service::transferMoney($clientPhone, $campaignAccount, $soTien);

if ($transferResult['status'] === 'success') {
    // 3. Cập nhật cơ sở dữ liệu Small Giving
    $db->beginTransaction();
    try {
        $stmt1 = $db->prepare("INSERT INTO donations (user_id, campaign_id, amount, way4_tx_id, created_at) VALUES (?, ?, ?, ?, NOW())");
        $stmt1->execute([$idNguoiDung, $idHoatDong, $soTien, $transferResult['tx_id']]);

        $stmt2 = $db->prepare("UPDATE campaigns SET current_amount = current_amount + ?, total_donations = total_donations + 1 WHERE id = ?");
        $stmt2->execute([$soTien, $idHoatDong]);

        $db->commit();
        echo json_encode(["status" => "success", "message" => "Quyên góp thành công!"]);
    } catch (Exception $e) {
        $db->rollBack();
        // Ghi log xử lý rollback / đối soát định kỳ
        error_log("Lỗi đồng bộ DB Small Giving: " . $e->getMessage());
        echo json_encode(["status" => "fail", "message" => "Lỗi đồng bộ dữ liệu giao dịch"]);
    }
} else {
    echo json_encode(["status" => "fail", "message" => "Giao dịch thanh toán WAY4 thất bại"]);
}

2. Xử lý giao diện người dùng trên React Native (Donation Screen Component)

import React, { useState } from 'react';
import { View, Text, TextInput, TouchableOpacity, Alert, StyleSheet, ActivityIndicator } from 'react-native';

const DonationScreen = ({ route, navigation }) => {
  const { campaignId, campaignTitle } = route.params;
  const [amount, setAmount] = useState('');
  const [isLoading, setIsLoading] = useState(false);

  const handleDonate = async () => {
    const numericAmount = parseFloat(amount);
    if (isNaN(numericAmount) || numericAmount < 1000) {
      Alert.alert('Lỗi', 'Số tiền quyên góp tối thiểu là 1,000 VNĐ');
      return;
    }

    setIsLoading(true);
    try {
      const response = await fetch('http://smallgiving.cf/mobileapp/Quyengop/thuchienquyengop.php', {
        method: 'POST',
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
        body: `idNguoiDung=19&idHoatDong=${campaignId}&SoTien=${numericAmount}`,
      });
      const data = await response.json();
      setIsLoading(false);

      if (data.status === 'success') {
        Alert.alert('Thành công', 'Cảm ơn tấm lòng hảo tâm của bạn!', [
          { text: 'OK', onPress: () => navigation.navigate('Home') }
        ]);
      } else {
        Alert.alert('Thất bại', data.message || 'Giao dịch không thành công');
      }
    } catch (error) {
      setIsLoading(false);
      Alert.alert('Lỗi mạng', 'Không thể kết nối tới máy chủ thanh toán');
    }
  };

  return (
    <View style={styles.container}>
      <Text style={styles.header}>{campaignTitle}</Text>
      <TextInput
        style={styles.input}
        placeholder="Nhập số tiền muốn quyên góp (VNĐ)"
        keyboardType="numeric"
        value={amount}
        onChangeText={setAmount}
      />
      {isLoading ? (
        <ActivityIndicator size="large" color="#008080" />
      ) : (
        <TouchableOpacity style={styles.button} onPress={handleDonate}>
          <Text style={styles.buttonText}>Xác nhận quyên góp</Text>
        </TouchableOpacity>
      )}
    </View>
  );
};

const styles = StyleSheet.create({
  container: { flex: 1, padding: 20, justifyContent: 'center', backgroundColor: '#F8F9FA' },
  header: { fontSize: 18, fontWeight: 'bold', marginBottom: 20, textAlign: 'center', color: '#333' },
  input: { borderWidth: 1, borderColor: '#CED4DA', padding: 12, borderRadius: 8, backgroundColor: '#FFF', marginBottom: 20 },
  button: { backgroundColor: '#008080', padding: 15, borderRadius: 8, alignItems: 'center' },
  buttonText: { color: '#FFF', fontWeight: 'bold', fontSize: 16 }
});

export default DonationScreen;

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

1. Kịch bản kiểm thử chức năng

Hạng mục kiểm thử Số test case Pass Fail Tỷ lệ thành công
Xác thực tài khoản & Phân quyền 15 15 0 $100%$
Tích hợp API nạp/chuyển tiền WAY4 20 19 1 (Timeout mạng giả lập) $95.0%$
Nghiệp vụ quyên góp & Cập nhật số dư 18 18 0 $100%$
Điểm danh nhận thưởng & Giới hạn lượt 12 12 0 $100%$
UI/UX responsiveness trên màn hình 10 10 0 $100%$

2. Đo lường hiệu năng và trải nghiệm người dùng

+----------------------------------------------------------------------+
|                     PERFORMANCE BENCHMARK RESULTS                    |
+------------------------------+---------------------------------------+
| Metric                       | Kết quả đo lường thực tế              |
+------------------------------+---------------------------------------+
| React Native UI Render Speed | 58 - 60 FPS (Độ mượt mà đạt chuẩn)    |
| Average App Launch Time      | 1.84 giây (Cold Start)                |
| Custom REST API Latency      | 142 ms (Trung bình trên 1.000 reqs)   |
| WAY4 End-to-End Tx Time      | 680 ms (Thời gian hoàn tất giao dịch) |
| Bộ nhớ tiêu thụ (RAM)        | 85 MB - 110 MB (Ổn định trên Android) |
| Điểm đánh giá SUS (Khảo sát) | 86.5 / 100 (Mức độ hài lòng rất cao)  |
+------------------------------+---------------------------------------+

Đổi mới và đóng góp khoa học

Cải tiến kỹ thuật

  1. Kiến trúc phân tách hai tầng (Decoupled Financial Architecture): Việc tách riêng hệ thống ứng dụng mạng xã hội thiện nguyện (PHP/MySQL) và hệ thống xử lý giao dịch tài chính ngân hàng chuẩn công nghiệp (WAY4 Core) giải quyết triệt để bài toán an toàn thông tin. Các dữ liệu nhạy cảm về số dư, mã thẻ được cách ly an toàn theo chuẩn PCI DSS.
  2. Cơ chế Gamification trong thiện nguyện học đường: Tích hợp tính năng "Điểm danh hàng ngày" được bảo trợ bởi quỹ doanh nghiệp tài trợ. Mô hình này chuyển đổi sự tương tác của sinh viên thành giá trị kinh tế trực tiếp cho các hoàn cảnh khó khăn mà không yêu cầu sinh viên phải bỏ tiền túi nếu không có điều kiện.
  3. Tối ưu hóa tài nguyên phần cứng: Ứng dụng công nghệ React Native Virtual DOM giúp giảm thiểu số lần Re-render trên thiết bị di động, tiết kiệm hơn $30%$ mức tiêu thụ pin so với các ứng dụng WebView thông thường.

Đóng góp thực tiễn cho cộng đồng

  • Cung cấp công cụ chuyển đổi số toàn diện cho Đoàn Thanh niên - Hội Sinh viên HVNH trong công tác quản lý các phong trào tình nguyện.
  • Minh bạch hóa $100%$ các chiến dịch từ thiện, tạo lập niềm tin tuyệt đối giữa nhà hảo tâm và ban điều hành quỹ.

Ứng dụng thực tế và triển khai (Real-world Application)

Các kịch bản ứng dụng điển hình

  • Kịch bản 1: Quyên góp vi mô tức thời: Sinh viên sử dụng số dư tài khoản ngân hàng liên kết để quyên góp định kỳ các khoản tiền nhỏ ($2.000\text{đ} - 10.000\text{đ}$) vào chiến dịch "Mùa Hè Xanh" hoặc "Áo Ấm Vùng Cao".
  • Kịch bản 2: Gây quỹ tự động qua điểm danh: Sinh viên mở app mỗi sáng, thực hiện điểm danh. Hệ thống WAY4 tự động trích $1.000\text{đ}$ từ ví của Doanh nghiệp tài trợ (như OpenWay) chuyển thẳng vào quỹ cứu trợ sinh viên nghèo vượt khó.

Phân tích hiệu quả kinh tế - xã hội (Cost-Benefit Analysis)

  • Chi phí triển khai: Giảm thiểu $70%$ chi phí đầu tư phần mềm nhờ tận dụng hạ tầng thanh toán WAY4 có sẵn của OpenWay và công nghệ mã nguồn mở React Native.
  • Tác động xã hội: Dự kiến kết nối hơn 15.000 sinh viên và 1.000 giảng viên Học viện Ngân hàng, ước tính tạo ra nguồn quỹ ổn định từ $30 - 50\text{ triệu đồng/tháng}$ cho các hoạt động an sinh xã hội.

Hạn chế và hướng phát triển (Limitations & Future Work)

Hạn chế kỹ thuật hiện tại

  1. Phụ thuộc kết nối mạng đồng bộ: Module thanh toán WAY4 yêu cầu kết nối trực tuyến liên tục (Online 24/7); hệ thống chưa hỗ trợ giao dịch offline hoặc hàng đợi giao dịch bất đồng bộ khi mất sóng.
  2. Cơ chế xác thực tài khoản: Chưa tích hợp xác thực sinh trắc học (Fingerprint/FaceID) trực tiếp trên Client React Native để rút ngắn thời gian xác thực chuyển tiền.

Kế hoạch nâng cấp (Future Roadmap)

  • Giai đoạn 1 (Ngắn hạn): Tích hợp Biometric Authentication (FaceID/Vân tay) trên ứng dụng di động; nâng cấp giao thức bảo mật lên OAuth 2.0 và JWT mã hóa RSA-256.
  • Giai đoạn 2 (Trung hạn): Ứng dụng công nghệ Smart Contracts (Hợp đồng thông minh trên mạng Private Blockchain) để tự động hóa hoàn toàn quy trình giải ngân tài chính công khai mà không cần con người can thiệp.

Đối tượng hưởng lợi (Target Stakeholders)

+--------------------------------------------------------------------------+
|                             BENEFICIARIES                                |
+------------------+-------------------------------------------------------+
| Sinh viên & GV   | Tiếp cận kênh thiện nguyện tin cậy, quyên góp vi mô   |
| Đoàn Thanh niên  | Tự động hóa thống kê, quản lý quỹ minh bạch, giảm 80% |
|                  | thời gian lập báo cáo tài chính thủ công              |
| Lập trình viên   | Khảo cứu mô hình tích hợp React Native với hệ thống   |
|                  | tài chính ngân hàng lõi WAY4 chuẩn PCI DSS            |
| Doanh nghiệp     | Định vị thương hiệu thông qua chương trình tài trợ    |
|                  | quỹ điểm danh minh bạch, trúng đối tượng              |
+------------------+-------------------------------------------------------+

Câu hỏi thường gặp (Technical FAQ)

1. Yêu cầu cấu hình tối thiểu để triển khai ứng dụng và hệ thống backend là gì?

  • Client: Android 6.0 (Marshmallow, API level 23) trở lên hoặc iOS 11.0 trở lên, RAM tối thiểu 2GB.
  • Backend: Máy chủ Linux (Ubuntu Server 20.04 LTS), Web server Apache 2.4/Nginx 1.18, PHP 7.4 trở lên với các extension curl, json, mysqli, pdo_mysql; kết nối an toàn SSL/TLS.

2. Làm thế nào để giải quyết vấn đề nghẽn cổ chai khi số lượng giao dịch thanh toán tăng đột biến?

Hệ thống xử lý thanh toán lõi WAY4 của OpenWay hỗ trợ năng lực xử lý lên đến trên 3.000 TPS. Ở tầng ứng dụng trung gian, giải pháp mở rộng quy mô (Horizontal Scaling) bằng cách triển khai cụm Container Docker kết hợp cân bằng tải Nginx Load Balancer và bộ nhớ đệm Redis Cache sẽ giảm tải tối đa cho cơ sở dữ liệu MySQL.

3. Quy trình bảo mật thông tin tài khoản người dùng được đảm bảo như thế nào?

Mọi kết nối giữa Mobile App, Server Small Giving và cổng thanh toán WAY4 đều được mã hóa bằng HTTPS/TLS 1.3. Mật khẩu người dùng được băm một chiều (One-way hashing) với thuật toán Bcrypt trước khi lưu vào cơ sở dữ liệu. Dữ liệu thẻ và hợp đồng ngân hàng được lưu trữ biệt lập tại hệ thống máy chủ tài chính đạt chuẩn an ninh quốc tế PCI DSS.

4. Chi phí duy trì hệ thống ước tính hàng năm là bao nhiêu?

Nhờ tận dụng cơ sở hạ tầng thanh toán tài trợ từ OpenWay Việt Nam và máy chủ lưu trữ nội bộ của Học viện Ngân hàng, chi phí duy trì hệ thống ước tính dưới 15.000.000 VNĐ/năm (chủ yếu bao gồm phí chứng chỉ số SSL, tên miền, và chi phí tài khoản nhà phát triển Google Play / Apple Developer).

5. Hệ thống xử lý thế nào khi xảy ra tình huống mất kết nối trong quá trình thanh toán (Network Timeout)?

Hệ thống sử dụng cơ chế xử lý giao dịch nguyên tử (ACID Transaction) kết hợp tính năng đối soát (Reconciliation) hàng ngày. Nếu giao dịch bị trừ tiền tại cổng WAY4 nhưng không thể cập nhật vào cơ sở dữ liệu Small Giving do rớt mạng, tiến trình đối soát tự động của File Server WAY4 sẽ phát hiện sự sai lệch và kích hoạt quy trình hoàn tiền (Refund) hoặc bù trừ tự động cho người dùng trong vòng 24 giờ.


Kết luận

Khóa luận tốt nghiệp "Xây dựng hệ thống thiện nguyện trực tuyến Small Giving áp dụng tại Học viện Ngân hàng" đã giải quyết trọn vẹn bài toán kết nối các nguồn lực xã hội thông qua giải pháp công nghệ hiện đại. Việc kết hợp hài hòa giữa framework đa nền tảng React Native và nền tảng xử lý thanh toán tài chính hàng đầu thế giới WAY4 Platform đã mang lại một sản phẩm có tính ứng dụng thực tiễn cao, đáp ứng đầy đủ các tiêu chuẩn kỹ thuật về an toàn thông tin, hiệu năng và tính minh bạch. Đề tài mở ra tiềm năng nhân rộng mô hình thiện nguyện số tại nhiều trường đại học và tổ chức xã hội trên toàn quốc.