Siparişler
Sipariş geçmişini gören, fiyat çıkaran ve siparişi veren dört uç.
Genel Bakış
Müşteri kendi adına sipariş verebilir, ama bu sipariş tarayıcısız tamamlanır. Bu yüzden ödeme dar tutulmuştur: hesap bakiyesi ya da hesapta kayıtlı bir kart.
Üç adımlı bir akış vardır: ürün detayından şemayı okuyun, önizleme ucuyla fiyatı görün, sonra siparişi verin. Önizleme sipariş ucunun aynı zincirini çalıştırır ve hiçbir şey yazmaz.
Alan adı edinmek bu uçlara ait değildir. Yeni bir alan adı önce alan adı uçlarından alınır, sonra siparişte sahip olunan alan adı olarak gösterilir.
Referans
Siparişleri Listeleme
Hesabın siparişlerini en yeniden başlayarak döndürür.
curl 'https://panel.ornek.com/api/v1/client/orders?status=active' \
-H "Authorization: Bearer $CLIENT_KEY"const res = await fetch('https://panel.ornek.com/api/v1/client/orders?status=active', {
headers: { Authorization: `Bearer ${clientKey}` },
});
const { data, meta } = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/client/orders?status=active');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $clientKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Liste SATIRLARI tasimaz: kalemler ve dogan hizmetler ancak detay ucunda gelir.
$rows = Kernel::internal('client:Orders/GetOrders', ['owner_id' => $uid])['data'];Sipariş Detayını Okuma
Siparişin satırlarını, doğan hizmetlerini ve faturasını döndürür.
curl 'https://panel.ornek.com/api/v1/client/orders/918' \
-H "Authorization: Bearer $CLIENT_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/client/orders/${id}`, {
headers: { Authorization: `Bearer ${clientKey}` },
});
const { data } = await res.json();
const ids = data.services.map((s) => s.id);$ch = curl_init('https://panel.ornek.com/api/v1/client/orders/' . $id);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $clientKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Siparis BEKLIYOR kalirken hizmetler zaten dogmus olabilir; ilerlemeyi hizmet durumundan izleyin.
$o = Kernel::internal('client:Orders/GetOrder', ['owner_id' => $uid, 'id' => $id])['data'];
$live = array_filter($o['services'], fn ($s) => $s['status'] === 'active');Siparişi Fiyatlandırma
Sipariş gövdesini fiyatlandırır ve tek satır bile yazmaz.
curl -X POST 'https://panel.ornek.com/api/v1/client/orders/preview' \
-H "Authorization: Bearer $CLIENT_KEY" \
-H 'Content-Type: application/json' \
-d '{"items":[{"product_id":55,"cycle":"monthly","quantity":1}],"coupons":["WELCOME10"]}'const res = await fetch('https://panel.ornek.com/api/v1/client/orders/preview', {
method: 'POST',
headers: {
Authorization: `Bearer ${clientKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ items, coupons }),
});
const { data } = await res.json();
showSummary(data.subtotal, data.discount, data.tax, data.total);$ch = curl_init('https://panel.ornek.com/api/v1/client/orders/preview');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $clientKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['items' => $items]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Onizleme siparis kapilarini KOSTURMAZ: sartlar, dogrulama ve bakiye yeterliligi burada denetlenmez.
$q = Kernel::internal('client:Orders/PreviewOrder', ['owner_id' => $uid, 'items' => $items])['data'];
$due = $q['total']['amount'];Sipariş Verme
Siparişi verir ve aynı çağrıda tahsil eder.
curl -X POST 'https://panel.ornek.com/api/v1/client/orders' \
-H "Authorization: Bearer $CLIENT_KEY" \
-H 'Content-Type: application/json' \
-d '{"terms":true,"items":[{"product_id":55,"cycle":"monthly"}],"payment":{"method":"balance"}}'const res = await fetch('https://panel.ornek.com/api/v1/client/orders', {
method: 'POST',
headers: {
Authorization: `Bearer ${clientKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
terms: true,
items,
payment: { method: 'balance' },
}),
});
const { data } = await res.json();
if (data.payment.status === 'failed') showPayLater(data.invoice);$ch = curl_init('https://panel.ornek.com/api/v1/client/orders');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $clientKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'terms' => true, 'items' => $items,
'payment' => ['method' => 'balance'],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// 201 ODENDI DEMEK DEGILDIR: kart dusse de siparis ve odenmemis faturasi durur, odeme durumunu okuyun.
$o = Kernel::internal('client:Orders/CreateOrder',
['owner_id' => $uid, 'terms' => true, 'items' => $items,
'payment' => ['method' => 'card']])['data'];
if ($o['payment']['status'] !== 'paid') $notify($o['invoice']['invoice_id']);Tuzaklar
Sipariş ucu tahsilat düşse bile sipariş kurulduğu için başarı döndürür: kart reddedilirse sipariş ve ödenmemiş faturası yerinde kalır. Ödendi bilgisini yanıttaki ödeme durumundan okuyun. Yalnız sağlayıcının kesin onayı ödendi sayılır; ara adım isteyen yanıtlar burada başarısızlıktır.
Önizleme fiyatlama zincirinin tamamını çalıştırır ama sipariş anına ait kapıları atlar: şart kabulü, hesap doğrulaması, politika kancası ve bakiye yeterliliği orada denetlenmez. Önizlemeden temiz geçen bir gövde sipariş ucunda yine reddedilebilir.
Satırın alan adı ekseni yalnız sahip olunan bir alan adını ya da ücretsiz bir alt alan adını kabul eder. Kayıt ya da transfer istemek açık bir hatayla reddedilir. Doğru sıra şudur: önce alan adı uçlarından edinin, sonra siparişte sahip olunan olarak gösterin.
Dosya isteyen sipariş alanlarına kodlanmış içerik gönderin; bir adres vermek reddedilir. Bu bilinçli bir güvenlik kararıdır: sunucu çağıranın verdiği bir adresi asla indirmez. Dosyayı istekle birlikte gönderin.
Sipariş durumu tahsilattan hemen sonra bekliyor okunur ve kurulum ilerletene kadar öyle kalır. Bu sırada hizmetler çoktan doğmuş olabilir. İlerlemeyi siparişin durumundan değil, detaydaki hizmet durumlarından izleyin.
Ürün fiyatları, önizleme toplamı ve sipariş toplamı aynı para biriminde gelir: hesabın cüzdan birimi. Bu sayede bakiyeyle karşılaştırma için çevirme gerekmez. Profildeki görüntü tercihi bu rakamları etkilemez.
İ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.