Ana içeriğe geç

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 http 4444
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ışı

  1. Mock sunucuyu başlatın
  2. MuditaKurye panelinden API Key ve Restaurant ID alın
  3. .env dosyasını güncelleyin
  4. Dashboard'dan sipariş gönderin
  5. MuditaKurye panelinde siparişin oluştuğunu doğrulayın
  6. Sipariş durumunu değiştirin (onay, hazırlama, teslim)
  7. 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

  1. MuditaKurye panelinde webhook URL'lerini kontrol edin
  2. URL'nin dışarıdan erişilebilir olduğundan emin olun (ngrok kullanın)
  3. Mock sunucu loglarını kontrol edin

401 Unauthorized

API Key'in doğru olduğunu ve MuditaKurye panelinden kopyalandığını doğrulayın.