Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9... Content-Type: application/json
| Tham số | Loại | Bắt buộc | Mô tả |
|---|---|---|---|
Authorization |
header | ✓ | JWT token từ API login (Bearer token) |
page |
integer | - | Số trang (mặc định: 1) |
limit |
integer | - | Số lượng địa chỉ mỗi trang (mặc định: 100, tối đa: 500) |
{
"success": true,
"message": "Lấy danh sách địa chỉ thành công",
"data": [
{
"id": 1,
"user_id": 123,
"name": "Nguyễn Văn A",
"phone": "0987654321",
"address": "123 Đường ABC",
"email": "[email protected]",
"province": "Hà Nội",
"district": "Quận Ba Đình",
"ward": "Phường Cống Vị",
"full_address": "123 Đường ABC, Phường Cống Vị, Quận Ba Đình, Hà Nội",
"is_default": true
},
{
"id": 2,
"user_id": 123,
"name": "Nguyễn Văn A",
"phone": "0987654321",
"address": "456 Đường XYZ",
"email": "[email protected]",
"province": "Hồ Chí Minh",
"district": "Quận 1",
"ward": "Phường Bến Nghé",
"full_address": "456 Đường XYZ, Phường Bến Nghé, Quận 1, Hồ Chí Minh",
"is_default": false
}
],
"pagination": {
"total": 2,
"page": 1,
"limit": 100,
"total_pages": 1
}
}
{
"success": false,
"message": "Không tìm thấy token"
}
{
"success": false,
"message": "Không tìm thấy địa chỉ nào cho user này"
}
// Lấy danh sách địa chỉ
async function getAddresses(page = 1, limit = 100) {
try {
const authToken = localStorage.getItem('auth_token');
if (!authToken) {
throw new Error('Chưa đăng nhập');
}
const response = await fetch(`https://api.socdo.vn/mini-app/v1/list-address?page=${page}&limit=${limit}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${authToken}`
}
});
const result = await response.json();
if (result.success) {
console.log('Danh sách địa chỉ:', result.data);
displayAddresses(result.data);
return result;
} else {
console.error('Lỗi:', result.message);
return result;
}
} catch (error) {
console.error('Lỗi kết nối:', error);
return { success: false, message: 'Lỗi kết nối mạng' };
}
}
// Hiển thị danh sách địa chỉ lên UI
function displayAddresses(addresses) {
const addressesList = document.getElementById('addresses-list');
addressesList.innerHTML = '';
addresses.forEach(address => {
const addressItem = document.createElement('div');
addressItem.className = 'address-item';
addressItem.innerHTML = `
${address.name}
${address.is_default ? 'Mặc định' : ''}
${address.phone}
${address.full_address}
${address.email ? ` ${address.email}
` : ''}
${address.is_default ? '' : ``}
`;
addressesList.appendChild(addressItem);
});
}
// Lấy địa chỉ mặc định
function getDefaultAddress() {
getAddresses().then(result => {
if (result.success && result.data.length > 0) {
const defaultAddress = result.data.find(addr => addr.is_default) || result.data[0];
console.log('Địa chỉ mặc định:', defaultAddress);
return defaultAddress;
}
});
}
// Gọi khi trang được tải
window.addEventListener('load', function() {
getAddresses();
});
full_address bao gồm địa chỉ chi tiết, phường/xã, quận/huyện, tỉnh/thành phốis_default (boolean) cho biết địa chỉ mặc định| Trường | Loại | Mô tả |
|---|---|---|
id |
integer | ID của địa chỉ |
user_id |
integer | ID của user sở hữu địa chỉ |
name |
string | Tên người nhận |
phone |
string | Số điện thoại |
address |
string | Địa chỉ chi tiết (đường, số nhà) |
email |
string | Email (có thể rỗng) |
province |
string | Tên tỉnh/thành phố |
district |
string | Tên quận/huyện |
ward |
string | Tên phường/xã |
full_address |
string | Địa chỉ đầy đủ tự động tạo |
is_default |
boolean | Địa chỉ mặc định (true/false) |