Bỏ qua điều hướng
Thuật ngữ

Idempotency

Tính chất một thao tác lặp lại nhiều lần vẫn cho cùng kết quả như làm một lần, tránh ghi trùng khi gửi lại.

Idempotency (tính luỹ đẳng) là tính chất của một thao tác mà khi thực hiện nhiều lần vẫn cho cùng kết quả như thực hiện một lần. Với hệ thống tài chính, đây là cách tránh ghi trùng một khoản tiền khi yêu cầu bị gửi lại.

Vì sao yêu cầu bị gửi lại

  • Mạng chập chờn, bên gửi không nhận được phản hồi nên thử lại.
  • Máy chủ của bạn xử lý xong nhưng trả lời chậm, bên gửi tưởng lỗi.
  • Người vận hành bấm gửi lại sự kiện từ nhật ký.

Nếu mỗi lần nhận là một lần ghi mới, một khoản tiền có thể bị ghi hai lần và đơn hàng bị đánh dấu thanh toán hai lần.

Cách làm thường gặp

  1. Mỗi sự kiện hoặc yêu cầu có một mã duy nhất.
  2. Bên nhận lưu các mã đã xử lý.
  3. Khi nhận mã đã có, bên nhận bỏ qua hoặc trả lại kết quả cũ.
  4. Khi ghi dữ liệu, dùng thao tác "cập nhật hoặc thêm" theo khoá, thay vì luôn thêm mới.

Trong Dòng Tiền Pro

  • Webhook mang webhook-id theo Standard Webhooks; gửi lại giữ nguyên mã.
  • Ghi sổ ra Google Sheets và Lark Base khoá theo tx_id, nên gửi lại chỉ cập nhật dòng cũ.
  • Cùng một giao dịch đến từ nhiều kênh được gộp thành một dòng.

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

Lưu mã đã xử lý trong bao lâu?

Ít nhất lâu hơn khoảng thời gian bên gửi còn thử lại. Lưu theo mã giao dịch thì có thể giữ lâu dài.

Idempotency có thay được kiểm chữ ký không?

Không. Kiểm chữ ký xác định ai gửi; idempotency xác định sự kiện đã xử lý chưa.

Nhận giao dịch đầu tiên ngay hôm nay

Nhập MST, thêm tài khoản ngân hàng, chọn kênh nhận. 1.000 giao dịch đầu mỗi tháng miễn phí, tiền luôn về thẳng tài khoản của bạn.

  • Không cần thẻ khi đăng ký
  • Không cần mật khẩu Internet Banking
  • Tài khoản đầu tiên trong khoảng 10 phút
  • Nâng cấp bất cứ lúc nào