Tự động hóa · 05

Tự động hóa thanh toán qua API: xử lý thông báo trùng trước khi nối với kế toán

Một thông báo thanh toán có thể được gửi lại. Thiết kế chống ghi trùng, xác minh nguồn và đối soát giúp luồng API không tạo nhiều chứng từ cho cùng giao dịch.

Mẫu kiểm tra webhook thanh toán với sự kiện gửi lại, chữ ký sai, gián đoạn và hoàn tiền; chưa phải kết quả kiểm thử.
Friday Works / Journal05 · 2026
Mục lụcChạm để xem nhanh các phần
  1. 01Một lần khách trả tiền, hai lần hệ thống nhận tin
  2. 02Tách sự kiện nhận được và kết quả nghiệp vụ
  3. 03Xác minh nguồn rồi mới đổi trạng thái
  4. 04Nghiệm thu bằng lỗi giả lập có kiểm soát
  5. 05Đối soát để phát hiện công việc bị treo
Tóm tắt
Đọc nhanh trong một phút
  • Nhận lại sự kiện không đồng nghĩa có giao dịch mới.
  • Xác minh thông báo trước khi thay đổi trạng thái đơn hàng.
  • Đối soát giao dịch và chứng từ là phần bắt buộc của nghiệm thu.
01

Một lần khách trả tiền, hai lần hệ thống nhận tin

Luồng thanh toán thường gửi thông báo về website khi giao dịch thay đổi trạng thái. Nếu đường truyền hoặc hệ thống nhận gặp lỗi, thông báo có thể được gửi lại. Thiết kế chỉ có “nhận tin rồi tạo chứng từ” có nguy cơ ghi nhận nhiều lần cùng một giao dịch.

Webhook là thông báo máy chủ gửi tới một địa chỉ đã đăng ký khi có sự kiện. Tài liệu Stripe là ví dụ công khai về cơ chế này, không phải khẳng định mọi cổng thanh toán có cùng hợp đồng. Khi tích hợp cổng khác hoặc hệ thống kế toán, phải đối chiếu tài liệu của đúng nhà cung cấp.

02

Tách sự kiện nhận được và kết quả nghiệp vụ

Friday Works đề xuất lưu mã sự kiện cùng mã giao dịch, thời điểm nhận và kết quả xử lý. Hệ thống cần phân biệt “đã nhận”, “đang xử lý”, “đã hoàn tất” và “cần kiểm tra”. Một lần gửi lại có thể chỉ cần trả kết quả đã có, không tạo thêm đơn hàng hoặc chứng từ.

Chống ghi trùng cần bám vào giao dịch nghiệp vụ, không chỉ một mã thông báo. Cùng một thanh toán có thể sinh nhiều loại sự kiện hợp lệ. Doanh nghiệp phải thống nhất trạng thái nào đủ điều kiện ghi nhận, cách xử lý hoàn tiền và việc gì được phép chạy lại khi một bước trung gian thất bại.

03

Xác minh nguồn rồi mới đổi trạng thái

Tài liệu Stripe hướng dẫn xác minh chữ ký webhook và lưu ý sự kiện có thể được gửi trùng hoặc không đúng thứ tự mong đợi. Đội triển khai cần áp dụng quy tắc xác thực của cổng đang dùng trước khi đánh dấu thanh toán thành công. Không dựa riêng vào trang trình duyệt thông báo khách đã trả tiền.

Bí mật xác minh phải được quản lý phía máy chủ và tách giữa môi trường thử với thật. Nếu kiểm tra nguồn thất bại, hệ thống cần từ chối và ghi lý do phù hợp. Không ghi toàn bộ thông tin nhạy cảm của giao dịch vào nhật ký chỉ để dễ gỡ lỗi.

04

Nghiệm thu bằng lỗi giả lập có kiểm soát

Trong môi trường thử, gửi lại cùng sự kiện, đảo thứ tự thông báo và cho hệ thống kế toán tạm thời không phản hồi. Sau mỗi tình huống, kiểm tra một giao dịch có bao nhiêu đơn hàng, bao nhiêu chứng từ và trạng thái nào đang chờ. Các thao tác này cần dùng tài khoản và dữ liệu thử được cho phép.

Tình huống quan trọng là chứng từ đã được tạo nhưng bước ghi nhận hoàn tất bị gián đoạn. Luồng chạy lại phải tìm hoặc đối chiếu kết quả cũ trước khi tạo mới. Nếu nhà cung cấp có cơ chế idempotency, tức chạy lại cùng yêu cầu mà không lặp tác động, đội kỹ thuật cần làm đúng phạm vi và thời hạn mà API quy định.

05

Đối soát để phát hiện công việc bị treo

Chống ghi trùng không phát hiện được mọi giao dịch bị bỏ sót. Doanh nghiệp cần một bước đối soát định kỳ giữa cổng thanh toán, đơn hàng và chứng từ. Bảng đối soát nên chỉ ra thiếu ở hệ thống nào, số tiền liên quan, thời gian chờ và người phụ trách xử lý.

Biên bản bàn giao cần có cách chạy lại an toàn, cách xử lý ngoại lệ và số liệu nghiệm thu. Với tích hợp MISA hoặc ERP khác, hãy kiểm tra đúng API và quyền của tài khoản dịch vụ; bài này không cam kết một tính năng chống trùng sẵn có ở nhà cung cấp. Mục tiêu là một giao dịch có kết quả nghiệp vụ đúng và có thể giải thích khi xảy ra lỗi.

Nguồn tham khảo

Tài liệu đã dùng để biên soạn

Ưu tiên tài liệu chính thức và nguồn kỹ thuật gốc. Truy cập để kiểm tra chi tiết hoặc theo dõi cập nhật mới nhất.

  1. Receive Stripe events in your webhook endpointStripe
  2. Idempotent requestsStripe
  3. Original acceptance worksheet, 16 October 2026; screenshot of an authored document, not a completed testFriday Works

Biên soạn và rà soát bởi

Đội ngũ công nghệ Friday Works

Góc nhìn được tổng hợp từ quá trình thiết kế website, xây phần mềm, tự động hóa, triển khai AI và kiểm tra an ninh cho doanh nghiệp.

Nội dung được rà soát để phản ánh cách làm có thể áp dụng trong thực tế. Cập nhật khi quy trình, công nghệ hoặc bằng chứng thay đổi đáng kể.

Tìm hiểu về Friday Works