Cách tạo đội ngũ agency chuyên nghiệp

package com.example;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Base64;

import java.util.Date;

import org.json.JSONObject;

public class Main {

    // Lớp WebsiteCanXuLy

    public class WebsiteCanXuLy {

        private String lienKetWebsite; // Domain website

        private String maKhachHang; // API key WooCommerce

        private String matKhauKhachHang; // API secret WooCommerce

        private String[] kiTuThanhToan; // Mảng kí tự thanh toán

        private String linkLuuData; // Link file lưu data

     // Constructor

     public WebsiteCanXuLy(String lienKetWebsite, String maKhachHang, String matKhauKhachHang, String[] kiTuThanhToan, String linkLuuData) {

            this.lienKetWebsite = lienKetWebsite;

            this.maKhachHang = maKhachHang;

            this.matKhauKhachHang = matKhauKhachHang;

            this.kiTuThanhToan = kiTuThanhToan;

            this.linkLuuData = linkLuuData;

        }

     // Hàm ghi lịch sử kích hoạt đơn hàng vào file

     public void ghiLichSu(int maDonHang, int soTienDonHang, int soTienThanhToan, boolean daKichHoat) {

            File file = new File(linkLuuData);

            boolean fileExists = file.exists();

            try (BufferedWriter writer = new BufferedWriter(new FileWriter(linkLuuData, true))) {

                // Nếu file chưa tồn tại, ghi tiêu đề cột

                if (!fileExists) {

                    writer.write(“Tinh_Trang_Kich_Hoat,Ma_Don_Hang,So_Tien_Thanh_Toan,So_Tien_Don_Hang,Ngay_Xu_Ly,Domain”);

                    writer.newLine(); // Thêm dòng mới

                }

                // Lấy ngày xử lý

                String dateFormat = “yyyy-MM-dd HH:mm:ss”;

                SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);

                String ngayXuLy = sdf.format(new Date());

                // Ghi dòng dữ liệu vào file

                String trangThai = daKichHoat ? “yes” : “no”; // Cập nhật trạng thái thành “yes” hoặc “no”

                writer.write(trangThai + “,” + maDonHang + “,” + soTienThanhToan + “,” + soTienDonHang + “,” + ngayXuLy + “,” + lienKetWebsite);

                writer.newLine(); // Thêm dòng mới

            } catch (Exception e) {

                System.err.println(“Lỗi khi ghi vào file: ” + e.getMessage());

            }

        }

    // Hàm lấy giá đơn hàng

    public int layGiaDonHang(int maDonHang) {

            try {

                String duongDanAPI = lienKetWebsite + “/wp-json/wc/v3/orders/” + maDonHang;

                URL url = new URL(duongDanAPI);

                HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                connection.setRequestMethod(“GET”);

                String auth = maKhachHang + “:” + matKhauKhachHang;

                String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes());

                connection.setRequestProperty(“Authorization”, “Basic ” + encodedAuth);

                connection.setRequestProperty(“Content-Type”, “application/json; utf-8”);

                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

                StringBuilder response = new StringBuilder();

                String inputLine;

                while ((inputLine = in.readLine()) != null) {

                    response.append(inputLine);

                }

                in.close();

                JSONObject donHang = new JSONObject(response.toString());

                return donHang.getInt(“total”); // Lấy giá trị tổng đơn hàng

            } catch (Exception e) {

                System.err.println(“Lỗi khi lấy giá đơn hàng: ” + e.getMessage());

                return 0; // Trả về 0 nếu có lỗi

            }

        }

     // Hàm kích hoạt đơn hàng với kiểm tra số tiền thanh toán

     public ArrayList<String> kichHoatDonHang(int maDonHang, int soTienThanhToan) {

    ArrayList<String> tienTrinh = new ArrayList<>();

    try {

        // Lấy giá trị đơn hàng qua hàm lấy giá

        int tongTienDonHang = layGiaDonHang(maDonHang);

        tienTrinh.add(“Giá trị đơn hàng: ” + tongTienDonHang + ” VNĐ”);

        // Kiểm tra số tiền thanh toán

        if (soTienThanhToan == tongTienDonHang || (soTienThanhToan > tongTienDonHang && soTienThanhToan <= tongTienDonHang + 10000)) {

            tienTrinh.add(“Số tiền thanh toán hợp lệ, tiến hành kích hoạt đơn hàng…”);

            // Kích hoạt đơn hàng (đổi trạng thái thành “completed”)

            String duongDanAPI = lienKetWebsite + “/wp-json/wc/v3/orders/” + maDonHang;

            HttpURLConnection connectionPut = (HttpURLConnection) new URL(duongDanAPI).openConnection();

            connectionPut.setRequestMethod(“PUT”);

            String auth = maKhachHang + “:” + matKhauKhachHang;

            String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes());

            connectionPut.setRequestProperty(“Authorization”, “Basic ” + encodedAuth);

            connectionPut.setRequestProperty(“Content-Type”, “application/json; utf-8”);

            connectionPut.setDoOutput(true);

            String jsonInputString = “{\”status\”:\”completed\”}”;

            try (OutputStream os = connectionPut.getOutputStream()) {

                byte[] input = jsonInputString.getBytes(“utf-8”);

                os.write(input, 0, input.length);

            }

            int responseCodePut = connectionPut.getResponseCode();

            if (responseCodePut == HttpURLConnection.HTTP_OK) {

                tienTrinh.add(“Kết nối API thành công.”);

                tienTrinh.add(“Kích hoạt đơn hàng thành công với mã đơn: ” + maDonHang);

                ghiLichSu(maDonHang, tongTienDonHang, soTienThanhToan, true);

            } else {

                tienTrinh.add(“Lỗi: Không thể kích hoạt đơn hàng. Mã lỗi HTTP: ” + responseCodePut);

                ghiLichSu(maDonHang, tongTienDonHang, soTienThanhToan, false);

            }

        } else {

            tienTrinh.add(“Lỗi: Tiền thanh toán chưa đủ. Không thực hiện thay đổi trạng thái đơn hàng.”);

            // Chỉ ghi vào lịch sử mà không thay đổi trạng thái đơn hàng

            ghiLichSu(maDonHang, tongTienDonHang, soTienThanhToan, false);

        }

    } catch (Exception e) {

        tienTrinh.add(“Lỗi ngoại lệ: ” + e.getMessage());

        ghiLichSu(maDonHang, layGiaDonHang(maDonHang), soTienThanhToan, false); // Ghi lại lịch sử với trạng thái “no”

    }

    return tienTrinh;

}

    // Hàm lưu thông tin đối tượng ra file CSV

    public void luuThongTin(String linkFileCSV) {

    File file = new File(linkFileCSV);

    boolean fileExists = file.exists();

    try (BufferedWriter writer = new BufferedWriter(new FileWriter(linkFileCSV, true))) {

        // Nếu file chưa tồn tại, ghi tiêu đề cột

        if (!fileExists) {

            writer.write(“Lien_Ket_Website,Ma_Khach_Hang,Mat_Khau_Khach_Hang,Ki_Tu_Thanh_Toan”);

            writer.newLine(); // Thêm dòng mới

        }

        // Ghi thông tin đối tượng vào file

        writer.write(lienKetWebsite + “,” + maKhachHang + “,” + matKhauKhachHang + “,” + String.join(“|”, kiTuThanhToan));

        writer.newLine(); // Thêm dòng mới

    } catch (Exception e) {

        System.err.println(“Lỗi khi ghi vào file CSV: ” + e.getMessage());

    }

}

     // Phương thức kiểm tra mã và tách các ký tự sau mã

    public String kiemTraMa(String tinNhan, String[] ma) {

            for (String code : ma) {

                // Chuyển đổi cả chuỗi và mã sang chữ thường để kiểm tra không phân biệt hoa thường

                String lowerCaseTinNhan = tinNhan.toLowerCase();

                String lowerCaseCode = code.toLowerCase();

                // Tìm vị trí của mã trong chuỗi

                int index = lowerCaseTinNhan.indexOf(lowerCaseCode);

                if (index != -1) {

                    // Tìm ký tự đầu tiên ngay sau mã

                    int startIndex = index + code.length();

                    // Kiểm tra xem có ký tự nào sau mã không

                    if (startIndex < tinNhan.length()) {

                        // Tìm vị trí của ký tự cách (space)

                        int endIndex = tinNhan.indexOf(‘ ‘, startIndex);

                        // Nếu không tìm thấy ký tự cách, lấy đến cuối chuỗi

                        if (endIndex == -1) {

                            endIndex = tinNhan.length();

                        }

                        // Trả về chuỗi ký tự từ vị trí ngay sau mã cho đến ký tự cách hoặc cuối chuỗi

                        return tinNhan.substring(startIndex, endIndex).trim(); // Sử dụng trim để loại bỏ khoảng trắng

                    }

                }

            }

            // Trả về 0 nếu không tìm thấy mã

            return “0”;

        }

    }

    public static void main(String[] args) {

        Main main = new Main();

          // Tạo một đối tượng WebsiteCanXuLy với mảng kí tự thanh toán

          String[] kiTuThanhToan = {“KH”, “CT”, “TK”, “thịnh”, “NKT”}; // Ví dụ nhiều kí tự thanh toán

          WebsiteCanXuLy website = main.new WebsiteCanXuLy(

                  “https://nguoikhongten.com”, // Đường dẫn website

                  “ck_9a39ab80223be0c2300f90551e1272104e1213db”, // Mã khách hàng (API key)

                  “cs_7cd7151af17517f2ade014e784b8ec605bf59fbf”, // Mật khẩu khách hàng (API key secret)

                  kiTuThanhToan, // Mảng kí tự thanh toán

                  “lichsu.csv” // Link file lưu lịch sử

          );

          website.luuThongTin(“thong_tin_website.csv”); // Thay đổi link file nếu cần

        // Kích hoạt đơn hàng với mã đơn 12345 và số tiền thanh toán 500000

        ArrayList<String> tienTrinh = website.kichHoatDonHang(180, 30);

        for (String progress : tienTrinh) {

            System.out.println(progress);

        }

        System.out.println( website.kiemTraMa(“nkt3823 là mà thanh toán của bạn, đây là mã cần dùng để kích hoạt”, kiTuThanhToan));

    }

}

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *