CRMKhách hàng
Quên mật khẩu / Khôi phục
Quy trình lấy lại mật khẩu thông qua xác thực số điện thoại (OTP).
Quy trình khôi phục mật khẩu gồm 2 giai đoạn chính: Gửi OTP xác thực và Đặt mật khẩu mới.
Headers
| Key | Value | Bắt buộc | Mô tả |
|---|---|---|---|
SiteTenantId | {tenant_id} | Có | ID của công ty/tenant. |
Bước 1: Khởi tạo khôi phục
POST /site/customers/recoveryinit
Logic xử lý
- Kiểm tra số điện thoại có tồn tại trong shop hiện tại không.
- Tạo mã OTP (6 số, hiệu lực 5 phút).
- Gửi OTP qua tin nhắn (ZNS/SMS).
- Trả về
passport_id.
Request Body
{
"phone": "0912345678"
}Response Schema (200)
{
"id": "uuid-string",
"company_id": 123,
"passport_id": "passport-id-string",
"full_name": "Nguyễn Văn A",
"phone": "0912345678",
"otp_length": 6,
"date_created": 1734924700,
"date_expired": 1734925000,
"metadata": {
"action": "recovery"
}
}Bước 2: Đặt mật khẩu mới
POST /site/customers/recoveryfinish
Logic xử lý
- Kiểm tra lại số điện thoại, mật khẩu mới phải có ít nhất 7 ký tự.
- Xác thực OTP qua
phone,passport_idvà mãotp. OTP chỉ dùng được một lần. - Nếu đúng, tiến hành cập nhật mật khẩu mới (
password) cho khách hàng.
Request Body
{
"phone": "0912345678",
"passport_id": "passport-id-string",
"otp": "123456",
"password": "MậtKhẩuMớiMạnh"
}Response Schema (200)
Trả về Customer Object.
Lỗi thường gặp (422)
| Mã lỗi | Mô tả |
|---|---|
error_phone_required | Chưa nhập số điện thoại. |
error_phone_invalid | Số điện thoại sai định dạng. |
error_account_not_found | Số điện thoại chưa được đăng ký trong hệ thống. |
error_password_length_invalid | (Bước 2) Mật khẩu mới ngắn hơn 7 ký tự. |
error_passport_id_required | (Bước 2) Thiếu passport_id. |
error_otp_required | (Bước 2) Thiếu otp. |
error_passport_otp_not_found | (Bước 2) Phiên OTP không tồn tại hoặc đã hết hạn. |
error_otp_invalid | Sai mã xác nhận. |
Lỗi hệ thống (500): error_save_passport, lỗi gửi tin nhắn OTP (Bước 1), error_password_empty hoặc error_remote_reset_password_failed (Bước 2).