Pelajari tentang SMSHook
SMSHook adalah saluran di mana pelanggan menerima informasi pengiriman mereka. Setelah pengguna mengirim permintaan SMS ke EngageLab, EngageLab akan secara sinkron mengembalikan "hasil permintaan" kepada pengguna, sedangkan "hasil pengiriman" dan "hasil peristiwa lainnya" dari SMS akan dikirim secara asinkron ke pengguna melalui SMSHook.
Pemrosesan SMSHook
- EngageLab menyediakan beberapa peristiwa SMS yang dapat dipilih pelanggan untuk diikuti.
- Ketika suatu peristiwa terjadi, EngageLab akan mengirimkan data (POST) ke URL yang telah ditetapkan pelanggan.
- Jenis data yang dikirim EngageLab adalah "Content Type: application/JSON".
- Pelanggan menerima data, mengurai peristiwa dan datanya, dan perlu mengembalikan HTTP Status Code 200 dalam waktu 3 detik. Jika tidak, EngageLab akan mengirim ulang pesan tersebut.
Cara Penggunaan
- Pengguna dapat membuat layanan HTTP sendiri untuk menangani peristiwa terkait, mengurai data yang diterima, dan membuka URL yang sesuai.
- Pengguna memilih peristiwa yang ingin diikuti di
SMSHookEngageLab dan mengonfigurasi URL untuk menerima data.
Verifikasi Tanda Tangan
Untuk memastikan bahwa sumber pesan benar-benar dari EngageLab, Anda dapat memilih untuk melakukan autentikasi keamanan pada sumber data POST (Tanpa verifikasi, Anda juga dapat langsung mengurai data POST).
Metode autentikasi keamanan sebagai berikut:
- Dapatkan
APP SECRETmelalui[Pengaturan Pengiriman] - [SMSHook] - Urai
X-SMSHook Timestamppada header - Urai
X-SMSHook AppKeypada header - Urai
X-SMSHook Signaturepada header - Hasilkan
signaturemenggunakan md5 (timestamp+appkey+secret) dan bandingkan denganX-SMSHook Signature
Pemrosesan Respons
Setelah menerima callback dari EngageLab, layanan pengembang perlu memberikan respons dalam waktu 3 detik sesuai persyaratan berikut.
Penerimaan berhasil: kode status respons HTTP harus mengembalikan 200 atau 204, dan tidak perlu mengembalikan pesan respons.
Penerimaan gagal: kode status respons HTTP harus mengembalikan 5XX atau 4XX, dan pesan respons juga harus dikembalikan dengan format berikut:
{"code":2002,"message":"failed"}
| Parameter | Tipe | Wajib/Opsional | Deskripsi |
|---|---|---|---|
| code | int | Opsional | Kode error |
| message | string | Opsional | Detail error |
Pemrosesan Ulang (Retry)
Jika terjadi kesalahan akses URL atau timeout, EngageLab akan mencoba ulang hingga maksimal 7 kali. Interval waktu antar percobaan ulang adalah 3 menit, 10 menit, 30 menit, 1 jam, 6 jam, 12 jam, dan 24 jam. Artinya, Anda punya cukup waktu untuk memperbaiki URL sebelum pesan hilang.
Jika jumlah percobaan ulang melebihi batas, EngageLab akan membuang pesan tersebut.
Untuk setiap pemrosesan peristiwa dan analisis data, Anda perlu mengembalikan [Respons berhasil diterima] dalam waktu 3 detik. Jika tidak, EngageLab akan mengirim ulang pesan tersebut.
