Cake ACS
Cake tự xây dựng và vận hành Access Control Server (ACS) EMV® 3-D Secure của riêng mình. Khi chủ thẻ thanh toán trực tuyến bằng thẻ do Cake phát hành, Directory Server của tổ chức thẻ sẽ định tuyến yêu cầu xác thực đến ACS này — nơi quyết định phê duyệt giao dịch ngay hoặc yêu cầu chủ thẻ xác thực thêm (challenge) trước.
Phạm vi
Hiện tại Visa là tổ chức thẻ được hỗ trợ. Các phương thức challenge gồm OTP và out-of-band; xác thực bằng passkey đang nằm trong lộ trình phát triển.
Tài liệu này dành cho ngân hàng phát hành thẻ (issuer) và đơn vị xử lý thẻ (processor) tích hợp nền tảng xác thực của mình với Cake ACS. Nếu bạn là merchant chấp nhận thanh toán và muốn biết challenge hoạt động thế nào trong luồng checkout của mình, hãy xem Bahn Gateway → Xác thực 3DS thay vì tài liệu này.
Vị trí của ACS trong luồng
ACS không bao giờ giao tiếp trực tiếp với merchant. Nó nằm giữa tổ chức thẻ và nền tảng xác thực của bạn:
sequenceDiagram
participant M as Merchant
participant DS as Directory Server
participant ACS as Cake ACS
participant You as Nền tảng của bạn
M->>DS: Yêu cầu xác thực
DS->>ACS: AReq
ACS->>You: POST /step_up
You-->>ACS: Phương thức challenge khả dụng
ACS-->>DS: ARes — phê duyệt hoặc challenge
DS-->>M: Kết quả
Những gì bạn cần xây dựng
Việc tích hợp này có tính hai chiều, và chiều gọi ngược với một REST API thông thường: với ba trong bốn endpoint, Cake ACS đóng vai trò client còn nền tảng của bạn đóng vai trò server.
| Chiều gọi | Endpoint | Mục đích |
|---|---|---|
| Cake ACS → bạn | POST /step_up | Mở một phiên xác thực và trả về phương thức sẽ sử dụng |
| Cake ACS → bạn | POST /initiate_action | Gửi credential đến chủ thẻ |
| Cake ACS → bạn | POST /validate | Poll để lấy kết quả out-of-band |
| Bạn → Cake ACS | OOB callback | Đẩy (push) kết quả out-of-band ngay khi có |
Chỉ có OOB callback là tùy chọn. Nếu không có nó, luồng vẫn hoàn tất bình thường vì ACS sẽ chuyển sang poll /validate — chủ thẻ chỉ phải chờ lâu hơn một nhịp.
Giao thức
Hợp đồng giao tiếp (contract) là một API JSON-over-HTTPS đơn giản. Nếu nền tảng của bạn đã triển khai kiểu tích hợp step-up này với một ACS khác, ba endpoint inbound không cần thay đổi gì; OOB callback là phần duy nhất mới.
Bước tiếp theo
- Bắt đầu — những gì cần trao đổi trước khi viết code
- Luồng xác thực — sự khác nhau giữa frictionless, OTP và out-of-band
- Endpoint bạn triển khai — hợp đồng request và response