CRMKhách hàng
Đổi số điện thoại
Quy trình đổi số điện thoại đang liên kết với tài khoản qua 2 bước (Xác thực OTP).
Nhằm đảm bảo bảo mật, việc đổi số điện thoại yêu cầu khách hàng phải xác thực OTP gửi về số điện thoại mới.
Headers
| Key | Value | Bắt buộc | Mô tả |
|---|---|---|---|
SiteTenantId | {tenant_id} | Có | ID của công ty/tenant. |
SiteAuthorization | {jwt_token} | Có | Token định danh khách hàng. |
Bước 1: Khởi tạo đổi số điện thoại
POST /site/customers/updatephoneinit
Logic xử lý
- Kiểm tra số điện thoại mới (
new_phone) chỉ gồm chữ số, khác số hiện tại và chưa được khách hàng khác trong shop sử dụng. - Tạo mã OTP (6 số, hiệu lực 5 phút) gắn với
new_phonevàpassport_id. - Gửi OTP tới số điện thoại mới.
- Trả về
passport_id.
Request Body
{
"new_phone": "0933445566"
}Response Schema (200)
{
"id": "uuid-string",
"company_id": 123,
"passport_id": "passport-id-string",
"full_name": "Nguyễn Văn A",
"phone": "0933445566",
"otp_length": 6,
"date_created": 1734924700,
"date_expired": 1734925000,
"metadata": {
"action": "update-phone"
}
}Bước 2: Hoàn tất đổi số điện thoại
POST /site/customers/updatephonefinish
Lưu ý: Bước này yêu cầu Header
SiteAuthorizationđể xác định tài khoản đang thực hiện thay đổi.
Logic xử lý
- Kiểm tra lại
new_phonenhư Bước 1, sau đó xác thực OTP dựa trênnew_phone,passport_idvà mãotpkhách hàng nhập. - Cập nhật số điện thoại mới vào tài khoản đang đăng nhập.
Request Body
{
"new_phone": "0933445566",
"passport_id": "passport-id-string",
"otp": "123456"
}Response Schema (200)
Trả về Customer Object với số điện thoại đã thay đổi.
Lỗi thường gặp (422)
| Mã lỗi | Mô tả |
|---|---|
error_new_phone_required | Chưa nhập số điện thoại mới. |
error_new_phone_invalid | Số điện thoại mới sai định dạng. |
error_new_phone_same_as_current | Số mới trùng số hiện tại. |
error_new_phone_already_registered | Số điện thoại mới đã được sử dụng bởi tài khoản khác. |
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 | (Bước 2) Mã OTP không chính xác. |
Lỗi hệ thống (500): error_save_passport, lỗi gửi tin nhắn OTP (Bước 1), error_update_phone (Bước 2).