Kiểm thử luồng OTP với API nhận SMS
2026-10-05
Bước OTP là một nguyên nhân phổ biến khiến test end-to-end chập chờn. Hướng dẫn này chỉ cách kiểm thử chúng trên staging bằng số điện thoại công khai và khi nào nên để API chờ mã giúp bạn.
Trước khi bắt đầu
Các số này là công khai và dùng chung. Ai cũng thấy tin nhắn chúng nhận, nên chỉ dùng để kiểm thử trên staging, không bao giờ dùng cho tài khoản bạn cần giữ. Một số dịch vụ chặn số công khai, nên không nhận được SMS không phải lúc nào cũng do ứng dụng của bạn lỗi.
Bước 1: chọn một số
Liệt kê số công khai và lọc theo quốc gia.
curl -s "https://axioapi.com/api/v1/sms/numbers?country=US&limit=5" \
-H "Authorization: Bearer $AXIOAPI_KEY"
Bước 2: đọc tin nhắn
Nhập đúng số mà danh sách trả về vào form staging, rồi đọc các tin nhắn mới nhất của số đó.
curl -s "https://axioapi.com/api/v1/sms/numbers/+12025550192/messages" \
-H "Authorization: Bearer $AXIOAPI_KEY"
Bước 3: để API chờ mã giúp bạn
Thay vì viết vòng lặp polling, hãy gọi endpoint verify. Nó chờ SMS khớp trên số đó, trích mã 4 đến 8 chữ số và trả về cùng người gửi và nội dung đầy đủ. Truyền mốc thời gian since để bỏ qua tin cũ.
curl -s -X POST "https://axioapi.com/api/v1/verify/wait" \
-H "Authorization: Bearer $AXIOAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"number": "+12025550192", "since": "2026-10-05T09:00:00Z"}'
Xử lý timeout
Timeout nghĩa là không có tin nhắn khớp trong thời gian chờ. Lệnh gọi không tạo số mới, nên hãy chạy lại cả luồng với số khác nếu cần. Xem bảng endpoint trên các trang API SMS và OTP để biết giá hiện tại.