Allmine API

Credit transfer — mobil entegrasyon

~5 dkMobil / WebKararlı

Kredi transferi mobil istemci akışı

Mobil Entegrasyon Rehberi: Kredi Transfer Mesaj Sistemi

Migration rehberi

Yapılandırma sırası için Migration şablonu. Yeni düzenlemelerde Amaç → Önkoşullar → Endpoint → Request/Response → Hata kodları → Client adımları → İlgili sayfalar bölümlerini tercih edin.

Bu döküman, yeni kredi transfer mesaj sisteminin ve socket bildirimlerinin mobil tarafta entegrasyonu için gereken değişiklikleri özetlemektedir.

1. Kredi Transferi Gerçekleştirme (API)

Kullanıcılar arasında kredi transferi yapmak için aşağıdaki endpoint kullanılır. Bu işlem başarılı olduğunda, sistem otomatik olarak bir credit_transfer mesajı oluşturur ve alıcıya socket üzerinden bildirim gönderir.

POST /messages/credit-transfer

İstek Gövdesi (Request Body):

{
  "recipientId": "alıcı_kullanıcı_id",
  "amount": 25
}

Başarılı Yanıt (Success Response):

{
  "senderId": "gönderen_id",
  "recipientId": "alıcı_id",
  "transferredAmount": 25,
  "senderBalance": 175,
  "recipientBalance": 50
}

2. Socket Bildirimleri (Real-time)

/chat namespace'i kullanıcıya özel bildirimleri destekleyecek şekilde güncellendi.

Bağlantı

Mobil uygulama /chat namespace'ine bağlı olmalıdır.

Kanal Aboneliği

joinChat eventi ile bir odaya katıldığınızda, sunucu sizi otomatik olarak kişisel bildirim odanıza da (user:${userId}) dahil eder. Mevcut joinChat kullanımınızda bir değişiklik yapmanıza gerek yoktur.

Yeni Event: creditTransferReceived

Alıcı tarafında anlık "Kredi Alındı" bildirimi veya uyarısı göstermek için bu eventi dinlemelisiniz.

socket.on('creditTransferReceived', (message) => {
  // message: MessageResponseDto tipindedir
  const { amount, senderId } = message.creditTransfer;
  console.log(`${senderId} kullanıcısından ${amount} kredi aldınız.`);
  // UI Bildirimi/Alert uygulayın
});

3. Mesaj Tipleri ve Chat Ekranı

Yeni bir mesaj tipi olan credit_transfer eklendi.

Mesaj Nesnesi Yapısı

GET /messages/chat/:chatId ile geçmişi çekerken veya socket üzerinden newMessage alırken type alanını kontrol edin.

{
  "_id": "mesaj_id",
  "chatId": "chat_id",
  "senderId": "gönderen_id",
  "type": "credit_transfer",
  "content": null,
  "creditTransfer": {
    "amount": 25,
    "recipientId": "alıcı_id",
    "senderId": "gönderen_id"
  },
  "createdAt": "2024-02-04T11:00:00Z"
}

UI Render Önerileri

type === 'credit_transfer' olan mesajlar için:

  • Gönderen (Siz): "[amount] kredi gönderdiniz."
  • Alıcı: "[Kullanıcı Adı] size [amount] kredi gönderdi."
  • Bu mesajlar için standart metin balonu yerine, chat listesinde özel bir "Sistem/İşlem" kartı (örneğin ortalanmış, gri bir kutucuk içinde) kullanılması önerilir. content alanı bu tip mesajlarda null dönecektir.

On this page