Modül Kataloğu
Hangi modüllerin bulunduğunu, hangilerinin çalıştığını yöneten beş uç.
Genel Bakış
WISECP'nin dış dünyayla konuştuğu her yer bir modüldür: ödeme alma, alan adı kaydı, posta gönderme, kısa mesaj, dolandırıcılık denetimi ve ürün türleri. Bu makale hangi modüller var, hangileri çalışıyor sorusunu yanıtlar.
Altı grup vardır ve seçim biçimleri aynı değildir. Ödeme ve ürün grupları aynı anda birden çok modül kullanır; posta, alan adı ve kısa mesaj grupları tek bir modül seçer. Dolandırıcılık grubu ise her modülü tek tek açar.
Bu ayrım uçlara da yansır: grup seçimi bir uçta, tek tek açma başka bir uçta durur. Hangisinin geçerli olduğunu grup belirler.
Referans
Bir Grubun Modüllerini Listeleme
Bir gruptaki modülleri ve grubun etkin seçimlerini döndürür.
active ya da passive.curl 'https://panel.ornek.com/api/v1/admin/modules/payment?status=active' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/modules/payment?status=active', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data, meta } = await res.json();
console.log(meta.active, meta.card_storage_module);$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/payment?status=active');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Alti grup vardir: payment, registrars, mail, sms, fraud, product. Baskasi 404 verir.
foreach (['payment', 'registrars', 'mail', 'sms', 'fraud', 'product'] as $g)
$all[$g] = Api::Modules()->GetModules(['group' => $g])['meta']['active'];Tek Modülü Okuma
Modülün özetini, alanlarını ve yeteneklerini döndürür.
curl 'https://panel.ornek.com/api/v1/admin/modules/payment/Stripe' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/${group}/${key}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();
if (data.capabilities.has_test_connection) showTestButton();$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/' . $group . '/' . $key);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Bir formu once yeteneklere gore kurun: her modulde alan da baglanti testi de yoktur.
$m = Api::Modules()->GetModule(['group' => $group, 'module' => $key])['data'];
if (! $m['capabilities']['has_config_fields']) $form = null;Grubun Etkin Modüllerini Seçme
Bir gruptaki etkin modül seçimini yazar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/modules/payment/activation' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"modules":["Free","Stripe"],"card_storage_module":"Stripe"}'const now = await fetch('https://panel.ornek.com/api/v1/admin/modules/payment', {
headers: { Authorization: `Bearer ${apiKey}` },
}).then((r) => r.json());
const res = await fetch('https://panel.ornek.com/api/v1/admin/modules/payment/activation', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ modules: [...now.meta.active, 'Stripe'] }),
});$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/payment/activation');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['modules' => $keys]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Liste YERINE GECER: tek anahtar gondermek diger butun odeme modullerini kapatir.
$live = Api::Modules()->GetModules(['group' => 'payment'])['meta']['active'];
Api::Modules()->UpdateModuleActivation([
'group' => 'payment', 'modules' => array_values(array_unique([...$live, 'Stripe'])),
]);Tek Modülü Açma ve Kapatma
Dolandırıcılık ve ürün modüllerini tek tek açar ya da kapatır.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/modules/fraud/MaxMind/status' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"enabled":1}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/${group}/${key}/status`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ enabled: 1 }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/' . $group . '/' . $key . '/status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['enabled' => 1]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Dolandiricilik modulunde ACMA once kimlik bilgilerini dogrular; ayarlari ONCE yazin.
Api::Modules()->UpdateModuleSettings([
'group' => 'fraud', 'module' => $key, 'settings' => ['license_key' => $lic],
]);
Api::Modules()->SetModuleStatus(['group' => 'fraud', 'module' => $key, 'enabled' => 1]);Modülü Kaldırma
Modülün dosyalarını sunucudan kaldırır.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/modules/payment/Stripe' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/${group}/${key}`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/' . $group . '/' . $key);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Ayarlari ve kimlik bilgilerini de goturur; once yapilandirmayi disa aktarip saklayin.
$cfg = Api::Modules()->GetModuleConfig(['group' => $group, 'module' => $key])['data'];
file_put_contents("$key.json", json_encode($cfg));
Api::Modules()->DeleteModule(['group' => $group, 'module' => $key]);Tuzaklar
Ödeme ve ürün gruplarında gönderdiğiniz liste eskisinin yerine geçer. Tek bir modül eklemek isterken yalnız onu göndermek diğerlerini kapatır ve müşteri o ödeme yöntemlerini bir daha göremez. Önce listeyi okuyup üzerine ekleyin.
Dolandırıcılık modülleri grup seçimi ucunu kabul etmez ve activation_not_supported döner; onlar tek tek açılır. Ürün grubu ise her iki yolu da kabul eder. Genel bir yönetim aracı yazıyorsanız grubu önce sınıflandırın.
Kart saklayacak ödeme modülünü belirtmek, o modül etkin listede olmasa bile listeye eklenmesine yol açar. Yani tek bir alanı yazmak bir ödeme yöntemini müşteriye açabilir. Yanıttaki etkin listeyi okuyup beklediğiniz kümeyle karşılaştırın.
Dolandırıcılık modülünü açmak kimlik bilgilerini doğrular; eksikse çağrı module_error ile döner. Kurulum sırasında sıra bu yüzden önemlidir: önce ayarları yazın, sonra açın. Ters sıra çalışmaz ve hata modülün kendisinden gelir.
Silme ucu modülün dizinini siler; ayarları ve kimlik bilgileri de gider. Dosyalar kısmen kaldırılabilirse removal_failed döner ve geriye yarım bir dizin kalır. Silmeden önce yapılandırmayı dışa aktarın.
İ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.