Validate
POST {your_base_url}/validateĐược gọi trong một challenge out-of-band khi ACS cần biết chủ thẻ đã phản hồi hay chưa. Đây là phương án fallback cho OOB callback: ACS poll endpoint này khi chủ thẻ nhấn Continue và chưa có callback nào đến cho phiên đó.
Nếu bạn có triển khai callback, endpoint này vẫn sẽ được gọi — chủ thẻ luôn có thể nhấn Continue trước khi push của bạn đến nơi.
Request
{
"ProcessorId": "cake-proc-01",
"IssuerId": "cake-iss-01",
"TransactionId": "9f6b6a2e-6f4e-4d0a-9b6e-2f9d6c1a7e10",
"DSTransactionId": "660e8400-e29b-41d4-a716-446655440000",
"StepupRequestId": "b2b6c9a4-1d0e-4e3a-8c8b-5a1f2d3c4b5a",
"StepupType": "OUTOFBAND",
"StepupCounter": 1,
"FirstFactorOutcome": "",
"MessageVersion": "2.2.0",
"RDXMessageVersion": "2.2.4",
"CredentialResponse": [
{ "Id": "0b8ce7e2-8388-4b4c-9568-8f8da53c1b09", "Type": "OUTOFBANDOTHER" }
]
}Hãy tra cứu phiên theo StepupRequestId và báo cáo trạng thái hiện tại của nó.
Response
{
"ProcessorId": "cake-proc-01",
"IssuerId": "cake-iss-01",
"TransactionId": "9f6b6a2e-6f4e-4d0a-9b6e-2f9d6c1a7e10",
"StepupRequestId": "b2b6c9a4-1d0e-4e3a-8c8b-5a1f2d3c4b5a",
"Status": "RETRY"
}Cách response của bạn được diễn giải
| Bạn trả về | ACS sẽ | Có tính vào số lần thử |
|---|---|---|
SUCCESS hoặc AUTHENTICATED | Hoàn tất challenge với kết quả phê duyệt — transStatus là Y | — |
REJECTED | Tính là một lần thử thất bại. Khi chạm giới hạn 3 lần, hoàn tất với transStatus là N và chỉ báo hủy challenge là 08. Dưới giới hạn, hiển thị lại trang chờ | Có |
RETRY | Hiển thị lại trang chờ và gia hạn deadline giữa các vòng | Không |
STEPUP, ERROR, FAILWITHFEEDBACK, hoặc bất kỳ status không xác định nào | Giống như RETRY — được coi là chưa hoàn tất | Không |
Chỉ SUCCESS, AUTHENTICATED, và REJECTED là final. Mọi trường hợp khác, kể cả một status mà ACS không nhận diện được, đều để challenge ở trạng thái mở.
WARNING
Chỉ trả về SUCCESS hoặc REJECTED khi chủ thẻ thực sự đã phê duyệt hoặc từ chối. Trong lúc vẫn đang chờ họ, hãy trả về RETRY.
Trả về SUCCESS quá sớm sẽ phê duyệt một giao dịch mà chủ thẻ chưa từng thấy. Trả về REJECTED quá sớm sẽ tiêu tốn một trong ba lần thử, và ba lần đó sẽ kết thúc xác thực.
Idempotency
ACS có thể gọi endpoint này nhiều lần cho một phiên — mỗi lần nhấn Continue một lần. Một RETRY không tốn gì của chủ thẻ, nên một phiên có thể được poll nhiều lần trước khi bất kỳ lần thử nào bị dùng.
Mỗi lệnh gọi phải an toàn để lặp lại và phải báo cáo cùng một trạng thái cho đến khi trạng thái đó thực sự thay đổi. Không được tiêu thụ hay vô hiệu hóa phiên chỉ vì một lần đọc.