Oy ödülleri
Oy ödülleri server.vote Webhook olayını kullanır: handler olayı alır, API ile oy verisini çeker, oyuncuyu kendi sisteminizde bulur ve ödülü yalnızca bir kez verir.
Bu yöntemi entegre etmek için önce proje Webhook’unu ayarlayın ve signature doğrulayın. Oy verisi GET /votes/:vote_id ile istenir.
Akış nasıl çalışır
- Webhook olayını alın ve signature doğrulayın. is_test
trueise oyu çekmeden ve ödül vermeden204dönün. event_typedeğerininserver.voteolduğundan emin olun.event_iddeğerini alın:server.voteiçin bu oy ID’sidir.- GET /votes/:vote_id ile oy verisini alın ve oyuncuyu kendi sisteminizde bulun.
event_type+event_idile tekrar işleme korumasını uygulayın ve ödülü aynı transaction içinde verin.- Ödül güvenli şekilde verilemiyorsa başarısız yanıt dönün, sebebi düzeltin ve teslimatı arayüzden tekrar gönderin.
Ödül örneği
PlayerName oyuncusunun ID’si 1 olan sunucu için oy verdiğini ve sisteminizin 100 coin eklemesi gerektiğini varsayalım.
- GAMEMONITORING
event_type: server.voteveevent_id: 9824cabb-2203-437e-9b6c-aba43dde3e4bile Webhook gönderir. - Handler signature doğrular. İmza geçersizse
401döner ve durur. - Handler
GET /votes/9824cabb-2203-437e-9b6c-aba43dde3e4bister ve nickname, server, user bilgisi alır. - Kendi veritabanınızda handler nickname veya hesap bağlantınızla yerel hesabı bulur.
- Transaction içinde handler
server.vote+event_idile tekrar işleme korumasını uygular ve100coin yazar. - Aynı event’in tekrar teslimatını aynı tekrar işleme koruması kurallarıyla işleyin.
Aynı akış item, rol, VIP süresi, promosyon kodu veya iç kuyruk için de kullanılabilir.
Oy olayı
Bir sunucu oy aldığında GAMEMONITORING server.vote olayı gönderir. Gövde yalnızca teslimat verilerini içerir: event_type, event_id, is_test ve signature. Tam oy verisini ayrıca isteyin.
Bu olayda event_id oy ID’sidir. Nickname, sunucu veya kullanıcı kaynağı olarak Webhook gövdesini kullanmayın: bu veriler API’den gelir.
Oy verisini alma
event_id değerini vote_id olarak kullanın ve oy verisini GET /votes/:vote_id ile isteyin:
Ödül teslimi için genellikle response.nickname, response.server ve public response.user verileri gerekir. Ödül belirli bir sunucuya bağlıysa mutlaka response.server.id kontrol edin.
Eşleme örneği: response.nickname oyuncu hesabını veritabanında bulur, response.server.id server ödül kuralını seçer, response.user.id ödül loguna yazılabilir.
API geçici olarak kullanılamıyorsa veya beklenmeyen yanıt dönerse körlemesine ödül vermeyin. Hata kodu dönün, nedeni düzeltin ve teslimatı tekrar gönderin.
Tam örnek
Örnek imzayı doğrular, oy verisini alır, ödülün tekrar verilmesini önler ve ödülü ekler. Kullanıcı tablosu adı, bakiye alanı ve oyuncu arama kuralını kendi sistem yapınızla değiştirin.
Örneği çalıştırmadan önce proje Webhook’unu ayarlayın, GET /votes/:vote_id endpoint’ini kontrol edin ve SQL user update sorgularını kendi hesap modelinizle değiştirin.