Kısa yanıt
Webhook ile iletim raporu almak için POST isteklerini kabul eden bir HTTPS uç noktası açın ve URL'sini mesajlaşma sağlayıcınıza kaydedin. Her olayı saklayın, hızlıca 2xx durum koduyla yanıtlayın ve olayı eşzamansız işleyin. Olayları mesaj kimliğiyle kayıtlarınızla eşleştirin, tekilleştirin ve geç gelen bir durumun nihai durumun üzerine yazmasına izin vermeyin.
Uç noktayı kurun
Geliştirme sırasında bir tünel, yerel sunucuya genel bir HTTPS URL'si kazandırır.
- JSON gövdeli POST isteklerini kabul eden bir HTTPS uç noktası açın.
- URL'yi sağlayıcınıza verin; böylece doğru hesapta veya alt hesapta yapılandırılır.
- Kendi numaranıza bir test mesajı gönderin ve ham olay gövdesini günlüğe kaydedin.
- İhtiyaç duyduğunuz alanları varsayılan alan adlarından değil, gerçek olaylardan eşleyin.
- Kullandığınız her kanal için örnek yükleri test verisi olarak saklayın.
Hangi durumları alırsınız?
Sağlayıcılar operatör ve kanal bildirimlerini kendi durum adlarına çevirir. Bu normalleştirilmiş küme, OmniChannels.ai'ın SMS, WhatsApp ve diğer kanallarda kullandığı kümedir.
| Durum | Anlamı | Nihai mi? |
|---|---|---|
| SUBMITTED | Kabul edildi ve kuyruğa alındı | Hayır |
| SENT | Operatöre veya kanala devredildi | Hayır |
| DELIVERED | Cihazda doğrulandı | Genellikle evet; ardından READ gelebilir |
| READ | Açıldı (okundu bilgisini bildiren kanallarda) | Evet |
| FAILED | İletilemedi; mümkünse nedeniyle birlikte | Evet |
| REJECTED | Reddedildi, örneğin kayıtsız bir SMS başlığı nedeniyle | Evet |
İşleyiciyi güvenilir kılın
- Ham gövdeyi saklayın, sonra 2xx döndürün. Saklama başarısız olursa olay yeniden denenebilsin diye 5xx döndürün.
- Asıl işi yanıt vermeden önce değil, bir kuyrukta veya işçi sürecinde yapın.
- Mesaj kimliğine göre tekilleştirin; aynı durum iki kez gelebilir.
- Durumları sıralayın; böylece geç gelen bir SENT, DELIVERED durumunun üzerine yazmaz.
- Tanımadığınız durum değerlerinde hata vermek yerine bunları kabul edin.
- Webhook işleyicisinin içinden asla bir mesajı yeniden göndermeyin.
Güvenliği sağlayın ve kaçan raporları kurtarın
Yalnızca HTTPS kabul edin, uzun ve tahmin edilemez bir yol kullanın, gövde yapısını doğrulayın ve iade gibi geri döndürülemez işlemlerden önce durumu bir durum sorgusuyla teyit edin. Uç noktanız devre dışı kaldıysa sağlayıcıdan o dönemin raporlarını yeniden göndermesini isteyin veya durumları raporlama uç noktalarından okuyun.
SMPP'de raporlar webhook yerine bind üzerinde deliver_sm olarak gelir. Bazı operatörler raporları geç iletir ya da hiç iletmez; bu yüzden raporları güçlü bir kanıt olarak değerlendirin, okunduğunun kesin kanıtı olarak değil.
