Gói dịch vụ & thanh toán
Đăng ký cửa hàng - Bước 2: Xác minh OTP
Endpoint công khai xác minh mã OTP, tạo tài khoản (nếu chưa có) và cửa hàng mới ở trạng thái dùng thử
Chỉ có trên Hubport SaaS
Đây là endpoint công khai phục vụ trang đăng ký cửa hàng của Hubport SaaS. Trên bản cài đặt riêng (máy chủ riêng), endpoint trả HTTP 404 error_saas_mode_inactive.
Endpoint
POST /v1/platformsignups/verify
Không cần đăng nhập. Gọi sau Bước 1: Gửi OTP.
Request Body
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
signup_id | string | Có | signup_id nhận được ở Bước 1 |
otp | string | Có | Mã OTP 6 chữ số nhận qua email |
password | string | Có | - Email chưa có tài khoản Hubport: mật khẩu cho tài khoản mới, tối thiểu 8 ký tự. - Email đã có tài khoản Hubport: nhập mật khẩu hiện tại của tài khoản đó; cửa hàng mới được thêm vào tài khoản hiện có |
{
"signup_id": "6f1c2a7e-3b9d-4c51-9a8e-2f0b7d4e1c33",
"otp": "482913",
"password": "<MAT_KHAU>"
}Response Schema
HTTP 201 - Created
| Trường | Kiểu | Mô tả |
|---|---|---|
company_id | int | ID cửa hàng vừa tạo |
trial_ends_at | int | Thời điểm hết hạn dùng thử (Unix timestamp) |
{
"company_id": 1532,
"trial_ends_at": 1760922000
}Sau khi tạo thành công, đăng nhập bằng POST /v1/users/authenticatefinish với email, password và company_id vừa nhận để lấy JWT (xem User Login Token). Hubport cũng gửi email chào mừng tới chủ cửa hàng.
Workflow & Logic
- Kiểm đăng ký đang mở và phiên đăng ký còn hiệu lực.
- Kiểm mã OTP: tối đa 5 lần nhập sai cho mỗi phiên đăng ký; quá số lần thì phiên bị khoá, phải đăng ký lại từ Bước 1.
- Email đã có tài khoản: kiểm mật khẩu hiện tại, sau đó kiểm số cửa hàng tối đa mà tài khoản được làm chủ.
- Tạo tài khoản (nếu email chưa có tài khoản) và cửa hàng mới; người đăng ký là chủ cửa hàng.
- Cửa hàng bắt đầu ở trạng thái dùng thử (
trial) với đầy đủ chức năng, kể cả phần trả phí (xem Gói, dùng thử & giới hạn).
Error Codes
| HTTP | Mã lỗi | Mô tả |
|---|---|---|
| 403 | error_signup_disabled | Hubport đang tạm ngừng nhận đăng ký mới |
| 403 | error_signup_max_companies_reached | Nền tảng tạm thời không nhận thêm cửa hàng mới |
| 404 | error_signup_not_found | signup_id không tồn tại, đã hoàn tất, đã bị thay thế bởi lần đăng ký mới hơn hoặc đã thất bại |
| 404 | error_saas_mode_inactive | Không phải Hubport SaaS |
| 409 | error_signup_in_progress | Phiên đăng ký đang được xử lý bởi một request khác |
| 410 | error_otp_expired | Mã OTP đã hết hạn, đăng ký lại từ Bước 1 |
| 422 | error_otp_invalid | Mã OTP sai. detail.attempts_left là số lần thử còn lại |
| 422 | error_password_required | Thiếu mật khẩu |
| 422 | error_password_length_invalid | Mật khẩu tài khoản mới quá ngắn. detail.min_password_length là độ dài tối thiểu, detail.attempts_left là số lần thử còn lại. Nhập lại được với cùng OTP |
| 422 | error_account_password_invalid | Email đã có tài khoản nhưng mật khẩu hiện tại không đúng. Tính là một lần nhập sai; detail.attempts_left là số lần thử còn lại |
| 422 | error_company_limit_reached | Tài khoản của email này đã làm chủ số cửa hàng tối đa (kèm detail.max_companies_per_user). Chỉ trả khi mật khẩu hiện tại đúng. Phiên đăng ký kết thúc |
| 422 | error_screenname_existed, ... | Dữ liệu đăng ký không còn hợp lệ (vd screenname vừa bị cửa hàng khác sử dụng). Phiên đăng ký kết thúc, phải đăng ký lại từ Bước 1 |
| 429 | error_otp_too_many_attempts | Đã nhập sai quá số lần cho phép, đăng ký lại từ Bước 1 |
| 502 | error_identity_unavailable | Hệ thống tài khoản tạm thời không phản hồi. Có thể thử lại với cùng signup_id và OTP |
Ví dụ OTP sai:
{
"error": ["error_otp_invalid"],
"detail": {
"attempts_left": 3
}
}Ví dụ
curl -X POST "https://api.hubport.vn/v1/platformsignups/verify" \
-H "Content-Type: application/json" \
-d '{"signup_id":"6f1c2a7e-3b9d-4c51-9a8e-2f0b7d4e1c33","otp":"482913","password":"<MAT_KHAU>"}'