Hesap Durumu ve Toplu İşlem
Hesabı engelleyen, hizmetleri toplu askıya alan ya da iptal eden ve ödenmemiş faturaları hatırlatan altı uç.
Genel Bakış
Bu uçlar bir hesabın ve o hesaba bağlı hizmetlerin durumunu değiştirir: engelleme, toplu askı, toplu iptal ve ödenmemiş faturaların hatırlatılması.
Engelleme iki biçimde vardır. Tek müşteri için block ucu nedeni de saklar; bir liste için bulk ucu aynı işi neden tutmadan yapar. Panel toplu hizmet işlemlerini ilerleme çubuğu için tek tek işler, API ise tek çağrıda tüm seti işler.
Referans
Hesabı Engelleme
Hesabı engeller ya da engeli kaldırır. Müşteriye bildirim gönderilir.
true engeller, false engeli kaldırır.gate:user.block kancası işlemi veto etti.curl -X PUT 'https://panel.ornek.com/api/v1/admin/clients/42/block' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"blocked":true,"reason":"Payment dispute"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/block', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ blocked: true, reason: 'Payment dispute' }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/block');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'blocked' => true,
'reason' => 'Payment dispute',
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->SetClientBlock([
'id' => 42,
'blocked' => true,
'reason' => 'Payment dispute',
]);
// Kanca veto ederse istek hata doner, engel uygulanmaz.
if (isset($response['error'])) {
$code = $response['error']['code'];
}Toplu İşlem Uygulama
Bir listedeki müşterilere aynı işlemi uygular. Üye olmayan hesaplar atlanır.
verify e-posta ve telefonu doğrulanmış sayar, reactivate hesabı aktife çeker, block engeller.ids boş.curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/bulk' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"action":"verify","ids":[80,81]}'const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/bulk', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ action: 'verify', ids: [80, 81] }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/bulk');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'action' => 'verify',
'ids' => [80, 81],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$sent = [80, 81, 3];
$response = Api::Clients()->BulkClientActions([
'action' => 'verify',
'ids' => $sent,
]);
// Atlananlari gormek icin listeyi karsilastirin (yonetici hesaplari islenmez).
$skipped = array_diff($sent, $response['data']['processed'] ?? []);{
"data": {
"action": "verify",
"processed": [80, 81]
}
}{
"error": {
"code": "action_invalid",
"message": "action must be verify/reactivate/block."
}
}Tüm Hizmetleri Askıya Alma
Müşterinin aktif hizmetlerinin tümünü askıya alır. Askı nedeni Account bulk suspended olarak yazılır.
{id, error} taşır. Boş dizi hepsinin geçtiği anlamına gelir.curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/42/services/suspend' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/services/suspend', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/services/suspend');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->SuspendClientServices(['id' => 42]);
// Kismi basari mumkundur: bazi hizmetler gecer, bazilari 'failed' icinde doner.
foreach ($response['data']['failed'] ?? [] as $fail) {
$serviceId = $fail['id'];
$reason = $fail['error'];
}Toplu Askıyı Kaldırma
Toplu olarak askıya alınan hizmetleri geri açar. Başka bir nedenle askıdaki hizmetlere dokunmaz.
{id, error} taşır. Boş dizi hepsinin geçtiği anlamına gelir.curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/42/services/unsuspend' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/services/unsuspend', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/services/unsuspend');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->UnsuspendClientServices(['id' => 42]);Tüm Hizmetleri İptal Etme
Müşterinin iptal edilmemiş ve tamamlanmamış tüm hizmetlerini iptal eder.
{id, error} taşır. Boş dizi hepsinin geçtiği anlamına gelir.gate:user.services_bulk_cancel kancası işlemi veto etti.curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/42/services/cancel' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/services/cancel', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/services/cancel');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->CancelClientServices(['id' => 42]);Ödenmemiş Faturaları Hatırlatma
Müşterinin ödenmemiş her faturası için hatırlatma bildirimi gönderir. Hatırlatması müşteriye ulaşamayan fatura listelenir ve kaydedilmez; durum kodu yine 200 olur.
disabled, blocked, opted_out, client_side_off, send_failed ya da no_recipients.reason'ın İngilizce açıklaması.curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/42/remind-invoices' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/remind-invoices', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/remind-invoices');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->RemindClientInvoices(['id' => 42]);
// Odenmemis fatura yoksa bu bir hatadir, bos sonuc degil.
if (($response['error']['code'] ?? '') === 'no_unpaid_invoices') {
return;
}Tuzaklar
Toplu hizmet uçları 200 döndüğü hâlde bazı hizmetler başarısız olmuş olabilir; bunlar failed dizisinde {id, error} olarak gelir. Yalnız durum koduna bakan bir istemci sorunu göremez.
Geri açma ucu yalnız toplu askı ile durdurulmuş hizmetleri açar. Ödeme gecikmesi ya da elle askıya alınmış bir hizmet olduğu yerde kalır; bu, tek çağrıyla istemeden yeniden başlatmayı önler.
Gönderdiğiniz listede üye olmayan bir hesap varsa sessizce atlanır ve processed içinde yer almaz. Kaçının işlendiğini bilmek için gönderdiğiniz listeyle dönen listeyi karşılaştırın.
Toplu iptal panelde yönetici şifresi ister. API'de böyle bir ikinci adım yoktur: anahtarın kapsamı yeterlidir. Bu ucu açtığınız anahtarın kimlerde olduğunu bilerek verin.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.