Lưu hội viên
Tạo hoặc cập nhật bản ghi hội viên. API xác định việc tạo mới hay cập nhật dựa trên member_id.
Tham số
-
members
arraybắt buộcMảng các đối tượng Member cần lưu. Khuyến nghị tối đa: 1000 mục mỗi yêu cầu để đạt hiệu suất tối ưu. API tự động chia lô các mục để xử lý. Mỗi mục phải có
facility_id(bắt buộc nếu không dùnglinking_identifier) hoặclinking_identifier(bắt buộc nếu không dùngfacility_id).Khi một hội viên có
access_time_windows, hội viên đó cũng phải cóaccess_time_windows_revision. Mảng này là ảnh chụp nhanh đầy đủ từ nguồn, không phải bản vá. Bỏ qua mảng để giữ nguyên ảnh chụp nhanh hiện có, hoặc gửi[]với phiên bản mới hơn để thu hồi mọi khung thời gian thuộc nguồn. Hãy đọc hướng dẫn Access Time Windows trước khi bật trường này.
Giá trị trả về
Trả về một thông báo đơn giản xác nhận thao tác đồng bộ.
Các trường hồ sơ hội viên vẫn được upsert bình thường ngay cả khi ảnh chụp nhanh khung thời gian được báo cáo là phát lại idempotent hoặc bị bỏ qua do đã cũ. Một ảnh chụp nhanh xung đột cùng phiên bản/khác payload không thể thử lại mà không thay đổi; hãy đối soát trạng thái nguồn và gửi phiên bản mới hơn.
Yêu cầu
curl -X POST https://partner-api.performancehub.co/partner/v1/members \
-u sk_live_YOUR_PARTNER_SECRET_KEY: \
-H "Content-Type: application/json" \
-d '{
"members": [
{
"member_id": "member_11111",
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
// "linking_identifier": "branch_downtown", // If using linking identifier
"first_name": "John",
"last_name": "Smith",
"email": "john.smith@example.com",
"mobile_phone": "+61 412 345 678",
"date_of_birth": "1985-06-15",
"gender": "male",
"type": "member",
"tags": ["vip", "personal-training"],
"profile_picture": "/9j/4AAQSkZJRgABAQAAAQ...",
"membership_status": "current",
"created": "2024-01-15T10:30:00Z",
"updated": "2024-01-20T14:45:00Z",
"access_time_windows_revision": 1842,
"access_time_windows": [
{
"external_id": "access-4b1782",
"kind": "absolute",
"from": 1792053000,
"to": 1792058400,
"timezone": "Australia/Perth",
"scope_key": "after_hours_entry",
"label": "Temporary site access"
}
],
"address": {
"address_line_1": "456 Bourke Street",
"address_line_2": "Apt 12",
"city": "Melbourne",
"state": "VIC",
"postal_code": "3000",
"country": "AU",
"country_name": "Australia"
},
"membership_plans": [
{
"membership_plan_id": "plan_99999",
"name": "Unlimited Monthly",
"start_date": "2024-01-01T00:00:00Z",
"status": "current",
"is_current": true,
"end_date": null
}
]
}
]
}'
Phản hồi
Trả về thông báo thành công kèm siêu dữ liệu về thao tác đồng bộ.
{
"message": "Member sync successful.",
"metadata": {
"success": 245,
"skipped": 5,
"skipped_items": [
{
"member_id": "member_123",
"facility_id": null,
"reason": "Facility integration is disabled in facility-partner-config"
}
]
}
}
Các trường siêu dữ liệu:
- success - Số hội viên đã được xử lý thành công
- skipped - Số hội viên bị bỏ qua (nếu có)
- skipped_items - Mảng các hội viên bị bỏ qua kèm lý do (nếu có)
- dry-run - Cờ boolean nếu sử dụng loại khóa dryrun (nếu áp dụng)