Mock Test Sunucusu¶
MuditaKurye 3. parti entegrasyonunu test etmek için hazır bir mock sunucu sağlanmaktadır. Bu sunucu:
- MuditaKurye API'sine test siparişleri gönderir
- Durum güncelleme ve iptal webhook'larını alır
- HMAC signature doğrulaması yapar
- Web tabanlı dashboard sunar
Hızlı Başlangıç¶
Docker ile Çalıştırma (Önerilen)¶
cd docs/mock-thirdparty-server
# .env dosyasını oluşturun
cp .env.example .env
# .env dosyasını kendi bilgilerinizle düzenleyin
# Başlatın
docker-compose up -d
Node.js ile Çalıştırma¶
cd docs/mock-thirdparty-server
npm install
# Ortam değişkenlerini ayarlayın
export MUDITAKURYE_API_URL=http://localhost:8080
export MUDITAKURYE_API_KEY=yk_your_api_key
export MUDITAKURYE_RESTAURANT_ID=rest_your_restaurant_id
# Başlatın
npm start
Dashboard¶
Sunucu başlatıldıktan sonra http://localhost:4444 adresinden dashboard'a erişebilirsiniz.
Dashboard üzerinden:
- ⚙️ Mevcut yapılandırmayı görüntüleyin
- 📤 Tek tıkla test siparişi gönderin
- 📬 Alınan webhook'ları gerçek zamanlı takip edin
- 📋 Gönderilen siparişlerin geçmişini inceleyin
Yapılandırma¶
| Değişken | Varsayılan | Açıklama |
|---|---|---|
MUDITAKURYE_API_URL |
http://host.docker.internal:8080 |
MuditaKurye API adresi |
MUDITAKURYE_API_KEY |
yk_test_key_here |
API Key (panelden alınır) |
MUDITAKURYE_RESTAURANT_ID |
rest_test_id_here |
Restoran ID (panelden alınır) |
WEBHOOK_SECRET |
(boş) | Webhook HMAC doğrulama secret'ı |
PORT |
4444 |
Mock sunucu portu |
API Endpoints¶
Sipariş Gönderme¶
# Test siparişi gönder (varsayılan payload ile)
curl -X POST http://localhost:4444/api/send-order
# Özel payload ile
curl -X POST http://localhost:4444/api/send-order \
-H "Content-Type: application/json" \
-d '{
"customerName": "Test Müşteri",
"customerPhone": "+905551234567",
"deliveryAddress": "Kızılay, Ankara",
"paymentMethod": "CASH",
"total": 150.00,
"items": [
{
"productCode": "DONER-001",
"productName": "İskender",
"quantity": 2,
"unitPrice": 75.00,
"totalAmount": 150.00
}
]
}'
Webhook Alıcıları¶
Mock sunucu şu endpoint'lerde webhook'ları kabul eder:
| Endpoint | Açıklama |
|---|---|
POST /webhook/status |
Durum güncellemesi webhook'u |
POST /webhook/cancel |
İptal webhook'u |
Bu URL'leri MuditaKurye panelinde Ayarlar → 3. Parti → Webhook URL'leri bölümüne girin:
- Durum Güncelleme URL:
http://your-server:4444/webhook/status - İptal URL:
http://your-server:4444/webhook/cancel
Ngrok ile Dış Erişim
Eğer MuditaKurye'nin bulut sunucuları mock sunucunuza erişmesi gerekiyorsa:
Ngrok URL'ini (örn:https://abc123.ngrok.io) webhook URL'leri olarak kullanın.
Log Endpoint'leri¶
# Alınan webhook'ları listele
curl http://localhost:4444/api/webhooks
# Gönderilen siparişleri listele
curl http://localhost:4444/api/orders
# Yapılandırmayı göster
curl http://localhost:4444/api/config
# Health check
curl http://localhost:4444/health
Test Akışı¶
- Mock sunucuyu başlatın
- MuditaKurye panelinden API Key ve Restaurant ID alın
.envdosyasını güncelleyin- Dashboard'dan sipariş gönderin
- MuditaKurye panelinde siparişin oluştuğunu doğrulayın
- Sipariş durumunu değiştirin (onay, hazırlama, teslim)
- Mock sunucunun webhook'ları aldığını dashboard'dan kontrol edin
sequenceDiagram
participant Dev as Geliştirici
participant Mock as Mock Server (:4444)
participant API as MuditaKurye API
participant Panel as MuditaKurye Panel
Dev->>Mock: POST /api/send-order
Mock->>API: POST /webhook/third-party/order
API-->>Mock: 202 Accepted
Mock-->>Dev: Sipariş sonucu
Note over Panel: Sipariş onaylandı
API->>Mock: POST /webhook/status (VALIDATED)
Mock->>Mock: Webhook logla
Note over Panel: Kurye teslim etti
API->>Mock: POST /webhook/status (DELIVERED)
Mock->>Mock: Webhook logla
Dev->>Mock: GET /api/webhooks
Mock-->>Dev: Tüm webhook geçmişi
Sorun Giderme¶
"Connection refused" hatası¶
Docker kullanıyorsanız, MUDITAKURYE_API_URL değerini http://host.docker.internal:8080 olarak ayarlayın.
Webhook'lar gelmiyor¶
- MuditaKurye panelinde webhook URL'lerini kontrol edin
- URL'nin dışarıdan erişilebilir olduğundan emin olun (ngrok kullanın)
- Mock sunucu loglarını kontrol edin
401 Unauthorized¶
API Key'in doğru olduğunu ve MuditaKurye panelinden kopyalandığını doğrulayın.