Lịch sử
Chúng tôi hiện đang sử dụng mô hình chuyển hướng được gọi là thanh toán trực tuyến của chúng tôi (nơi bạn gửi người trả tiền đến cổng thanh toán, nơi anh ta nhập chi tiết thanh toán của mình - cổng sau đó sẽ đưa anh ta trở lại trang gọi lại thành công / thất bại). Điều đó dễ dàng và đơn giản, nhưng thật không may, khá bất tiện và đôi khi gây nhầm lẫn cho khách hàng của chúng tôi (rời khỏi trang web, thay đổi chi tiết thẻ tín dụng của họ bằng một đăng nhập bổ sung trên một trang web khác, v.v.).
Ý định & mô tả vấn đề
Chúng tôi hiện đang có ý định chuyển sang một cách tiếp cận tích hợp bằng cách trao đổi các yêu cầu và phản hồi XML. Vấn đề của tôi là làm thế nào để phục vụ với tất cả (hay đúng hơn là) những điều có thể xảy ra trong quá trình xử lý - lưu ý rằng sự đơn giản thông thường là mạnh mẽ trong khi sự phức tạp là mong manh.
Ví dụ
- Hủy bỏ người dùng: Người dùng nhập chi tiết Thẻ tín dụng và lượt truy cập gửi. Một thông báo XML tới cổng của nhà cung cấp được gửi và chờ phản hồi. Người dùng nhấn "dừng" trong trình duyệt của mình hoặc đóng cửa sổ.
- ign_user_abort () trong PHP có thể là một tùy chọn - nhưng điều đó có đáng tin cậy không?
- có thể tốt hơn để chuyển hướng người dùng đến trang "vui lòng đợi", đến lượt nó mở AJAX hoặc yêu cầu khác đến bộ xử lý thực tế không dựa vào kết nối?
- Cơ sở dữ liệu biến mất
- Nghe có vẻ quá phức tạp, nhưng với ví dụ: máy chủ web ở Hoa Kỳ và DB ở Anh, điều đó đã xảy ra và sẽ xảy ra lần nữa: Người dùng nhấp vào đơn đặt hàng của mình, yêu cầu thanh toán đã được gửi đến nhà cung cấp nhưng không thể lưu trữ phản hồi trong cơ sở dữ liệu. Cách tiếp cận nào tôi có thể sử dụng, sử dụng PHP để sắp xếp một SQL như "Giao dịch" mà chỉ cuối cùng mới được cam kết hoặc quay trở lại, tùy thuộc vào từng bước? Nếu sau đó không xảy ra cam kết hoặc quay lại, tôi có thể "khóa" người dùng để ngăn anh ta thanh toán lại hoặc tài khoản thanh toán không đúng cách - nhưng làm thế nào?
- Và những gì khác tôi cần phải xem xét về mặt kỹ thuật? Không có ví dụ tích hợp nào, ví dụ như Worldpay, Realex hoặc SagePay cung cấp bất kỳ thông tin chi tiết nào, và công cụ tìm kiếm của tôi hoặc cụm từ tìm kiếm của tôi không đủ tốt để tìm suy nghĩ của người khác về điều này.
Cảm ơn bạn rất nhiều vì bất kỳ cái nhìn sâu sắc về cách bạn sẽ tiếp cận này!