Skip to main content

Rujukan REST API

Konfigurasi Asas

URL Asas: {site_url}/wp-json/wu/v2/ Pengesahan: Kunci API & Rahsia (HTTP Basic Auth atau Parameter URL)

Pengesahan

Dayakan API

// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);

Dapatkan Kredensial API

$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');

Kaedah Pengesahan

HTTP Basic Auth (Disyorkan):

curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers

Parameter URL:

curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"

Titik Akhir Teras

1. API Pelanggan

Laluan Asas: /customers

Dapatkan Semua Pelanggan

GET /wu/v2/customers

Dapatkan Satu Pelanggan

GET /wu/v2/customers/{id}

Cipta Pelanggan

POST /wu/v2/customers
Content-Type: application/json

{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}

Kemas Kini Pelanggan

PUT /wu/v2/customers/{id}
Content-Type: application/json

{
"vip": true,
"extra_information": "VIP customer notes"
}

Padam Pelanggan

DELETE /wu/v2/customers/{id}

2. API Tapak

Laluan Asas: /sites

Cipta Tapak

POST /wu/v2/sites
Content-Type: application/json

{
"customer_id": 5,
"membership_id": 10,
"domain": "example.com",
"path": "/",
"title": "My New Site",
"template_id": 1,
"type": "customer_owned"
}

3. API Keahlian

Laluan Asas: /memberships

Cipta Keahlian

POST /wu/v2/memberships
Content-Type: application/json

{
"customer_id": 5,
"plan_id": 3,
"status": "active",
"gateway": "stripe",
"gateway_subscription_id": "sub_1234567890",
"auto_renew": true
}

4. API Produk

Laluan Asas: /products

Dapatkan Semua Produk

GET /wu/v2/products

5. API Pembayaran

Laluan Asas: /payments

Cipta Pembayaran

POST /wu/v2/payments
Content-Type: application/json

{
"customer_id": 5,
"membership_id": 10,
"status": "completed",
"gateway": "stripe",
"gateway_payment_id": "pi_1234567890",
"total": 29.99,
"currency": "USD"
}

6. API Domain

Laluan Asas: /domains

Petakan Domain

POST /wu/v2/domains
Content-Type: application/json

{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}

Titik Akhir Pendaftaran

Titik akhir /register menyediakan aliran pembayaran/pendaftaran yang lengkap:

POST /wu/v2/register
Content-Type: application/json

{
"customer": {
"username": "newuser",
"password": "securepass123",
"email": "[email protected]"
},
"products": ["basic-plan"],
"duration": 1,
"duration_unit": "month",
"auto_renew": true,
"site": {
"site_url": "mynewsite",
"site_title": "My New Site",
"template_id": 1
},
"payment": {
"status": "completed"
},
"membership": {
"status": "active"
}
}

Respons:

{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}

Titik Akhir Penyewa Berdaulat

Ultimate Multisite: Multi-Tenancy 1.2.0 menambah liputan REST penyewa berdaulat untuk integrasi yang menyediakan, memeriksa, atau mengesahkan penyewa terpencil.

Payload permintaan yang tepat bergantung pada keupayaan hos yang didayakan, tetapi integrasi harus menjangkakan kumpulan titik akhir ini:

POST /wu/v2/tenants/{site_id}/bootstrap
GET /wu/v2/tenants/{site_id}/migration-status
POST /wu/v2/tenants/{site_id}/verify
DELETE /wu/v2/tenants/{site_id}

Gunakan titik akhir bootstrap untuk menyediakan pendaftaran penyewa, database, sistem fail, dan keadaan penghalaan. Gunakan titik akhir status migrasi dan pengesahan sebelum menukar trafik produksi. Gunakan titik akhir pemadaman untuk pembongkaran berdaulat supaya kredensial database dialih keluar melalui aliran pembersihan addon.

Respons status migrasi biasa termasuk:

{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}

Anggap ready: false sebagai penyekat pra-pelancaran. Semak butiran pengesahan, baiki pengikatan hos database, baris gilir, penyediaan pengguna, atau isu penghalaan, kemudian cuba semula pengesahan.

Respons Ralat

{
"code": "wu_rest_invalid_parameter",
"message": "Invalid parameter value",
"data": {
"status": 400,
"params": {
"email": "Invalid email format"
}
}
}

Penomboran dan Penapisan

Parameter Pertanyaan:

GET /wu/v2/customers?per_page=20&page=2&search=john&status=active

Parameter biasa:

  • per_page - Item setiap halaman (lalai: 20, maks: 100)
  • page - Nombor halaman
  • search - Istilah carian
  • orderby - Medan isihan
  • order - Arah isihan (asc/desc)
  • status - Tapis mengikut status
  • date_created - Tapis mengikut julat tarikh