Bạn sẽ muốn thiết kế mã theo cách sao cho giữ dữ liệu ở trạng thái hợp lệ.
Trách nhiệm lớn mà bạn phải đối mặt là bạn gửi dữ liệu cho Auth/Capture, và sau đó, vì bất kỳ lý do gì, điều gì đó cuối cùng của bạn không thành công. Bạn đã tính phí cho khách hàng của mình, nhưng vì lý do gì đó, bạn không biết thực tế này! Cuối cùng, một số khách hàng giận dữ sẽ bắt đầu la hét với bạn qua điện thoại. Đó là một thời điểm tồi tệ.
Ý tưởng chung là đặt một số biện pháp bảo vệ tại chỗ để bạn có thể xác định các loại vấn đề này. Vấn đề nên rất hiếm, nếu nó thậm chí còn xảy ra, do đó, sửa chữa các mess có lẽ sẽ là một quá trình thủ công.
Dưới đây là những gì tôi sẽ làm gì:
- Thiết kế một bảng cơ sở dữ liệu theo dõi thanh toán (chúng ta hãy gọi nó là "thanh toán"), và liên hệ nó để "đặt hàng" bảng của bạn (tài liệu tham khảo để payment.order_id order.id).
- Khi đến lúc tương tác với cổng của bạn, hãy thiết lập bản ghi thanh toán mới, chứa bất kỳ dữ liệu không nhạy cảm nào bạn sắp chuyển đến cổng thanh toán. Có cột "trạng thái" trong bảng thanh toán của bạn và đặt cột "đang chờ xử lý"
- Cố gắng giao dịch auth/capture với cổng của bạn. Khi nhận được phản hồi, hãy cập nhật trạng thái hồ sơ thanh toán thành "được chấp thuận", "bị từ chối" hoặc "lỗi" và lưu bất kỳ siêu dữ liệu có liên quan nào (lý do từ chối, ID giao dịch, v.v ...). Nếu cổng đó hết thời gian, đó có thể chỉ là một loại "lỗi", mặc dù bạn có thể thử lại một lần hoặc hai lần.
Chạy một công việc định kỳ hiện tại và sau đó tìm kiếm hồ sơ thanh toán "đang chờ xử lý" và cũ hơn 30 giây. Nếu bạn tìm thấy bất kỳ, hoảng sợ và nói với một nhà phát triển/người hoạt động.
Chắc chắn có những thứ khác có thể xảy ra, nhưng đây là điều quan trọng nhất, và chiến lược tôi đã mô tả là một trong nhiều trường hợp để giảm thiểu rủi ro.
Bạn có ý nghĩa gì với "số lượng lớn giao dịch"? Bạn có thể cho chúng tôi một ước tính sơ bộ không? – webbiedave
Làm cho người dùng của bạn một ưu tiên và tích hợp với Paypal, Google Checkout, ... – Stephen
vào thời điểm này chỉ khoảng 200 một ngày nhưng điều này dự kiến sẽ tăng lên khoảng 1000 khá sớm. vì vậy vẫn còn khá nhỏ, nhưng đủ lớn mà chúng ta cần phải có một vài biện pháp phòng ngừa và viết mã mạnh mẽ có thể xử lý các vấn đề bất ngờ như thời gian chờ máy chủ và các vấn đề tương tranh. – nick