Biznesingiz uchun real vaqt rejimida bildirishnomalarni sozlash — xoh klinika uchun qabul vaqtini tasdiqlash bo'lsin, xoh ta'mirlash ustaxonasi uchun buyurtma yangilanishlari — yetkazib berish holatini kuzatishning ishonchli usulini talab qiladi. Callback URL manzilingizni sozlaganingizdan so'ng, tizimingiz yetkazib berish hisobotlari va kiruvchi xabarlarni xatosiz qayta ishlashini ta'minlash uchun webhook sozlangandan so'ng sms-ni qanday test qilishni bilish muhim keyingi qadamdir.

1-qadam: Mahalliy Webhook tinglovchisini sozlang

Tizimingiz SMS yetkazib berish hisobotlarini qanday ishlashini sinab ko'rishdan oldin, SMS shlyuzidan HTTP POST so'rovlarini qabul qila oladigan ochiq URL manzili kerak bo'ladi. Agar siz mahalliy muhitda ishlayotgan bo'lsangiz, localhost:3000 portida ishlayotgan serveringizga internetdan kirib bo'lmaydi. Ushbu bo'shliqni to'ldirish uchun ngrok, LocalTunnel kabi mahalliy tunnel vositalaridan yoki Webhook.site kabi onlayn webhook test vositalaridan foydalanishingiz mumkin.

Tezkor va sozlashlarsiz test qilish uchun Webhook.site tavsiya etiladi. U noyob, vaqtinchalik ochiq URL yaratadi, u yerda siz kelayotgan ma'lumotlarni real vaqtda kuzatishingiz mumkin. Agar siz to'g'ridan-to'g'ri mahalliy ilovangizda test qilmoqchi bo'lsangiz, mahalliy portingizni ochish uchun ngrok-ni ishga tushiring:

ngrok http 3000

Ushbu buyruq ommaviy HTTPS yo'naltirish URL-manzilini yaratadi (masalan, https://your-subdomain.ngrok-free.app). Siz ushbu URL-ga webhook marshrutingizni qo'shasiz — masalan, https://your-subdomain.ngrok-free.app/webhooks/sms — va undan webhook endpointi sifatida foydalanasiz.

Oddiy Express.js Webhook qabul qiluvchisini yozish

Agar siz o'z backend-ingizda ma'lumotlarni qayd etish va tekshirishni xohlasangiz, tezkor endpoint yaratish uchun Node.js va Express kod namunasi:

const express = require('express');
const app = express();
app.use(express.json());

app.post('/webhooks/sms', (req, res) => {
  console.log('Received Webhook Payload:', JSON.stringify(req.body, null, 2));
  // Qabul qilinganligini tasdiqlash uchun har doim tezda 200 OK holatini qaytaring
  res.status(200).send({ status: 'success' });
});

app.listen(3000, () => console.log('Webhook receiver listening on port 3000'));

2-qadam: SMS shlyuzida Webhook URL-manzilini sozlang

Ommaviy webhook URL-manziliga ega bo'lganingizdan so'ng, uni SMS shlyuzi panelida ro'yxatdan o'tkazishingiz kerak. Twilio yoki Vonage kabi murakkab A2P 10DLC ro'yxatdan o'tishni, biznes profilini tekshirishni va kampaniya tasdiqlarini talab qiladigan eski provayderlardan farqli o'laroq, MySMSGate sizga o'z Android telefoningizni oddiy QR-kod orqali ulash va darhol test qilishni boshlash imkonini beradi.

MySMSGate-da webhook-ni sozlash uchun:

  1. MySMSGate boshqaruv paneliga kiring.
  2. API sozlamalari yoki Developer Integration paneliga o'ting.
  3. Webhook URL manzilingizni (masalan, Webhook.site URL manzili yoki ngrok manzili) "Webhook URL" maydoniga joylashtiring.
  4. Obuna bo'lmoqchi bo'lgan hodisalarni tanlang (masalan, sms.sent, sms.delivered, sms.failed yoki sms.received).
  5. Sozlamalarni saqlang.

Ushbu sozlama sizning jismoniy Android SIM-kartalaringiz va backend ilovangiz o'rtasidagi aloqani ta'minlaydi, har qanday SMS holati o'zgarishi yoki kiruvchi xabar darhol serveringizga yo'naltiriladi.

3-qadam: Webhook yetkazib berilishini tekshirish uchun test SMS yuboring

Webhook-ni sinab ko'rishning eng ishonchli usuli — haqiqiy SMS xabarini yuborishdir. MySMSGate yordamida virtual raqamlar sotib olishingiz yoki sandbox muhitini yaratishingiz shart emas. Platforma Android telefoningizni SMS shlyuziga aylantirgani sababli, siz o'z SIM-kartangiz orqali test uchun o'z mobil raqamingizga haqiqiy xabarlar yuborasiz.

Test SMS-ni to'g'ridan-to'g'ri veb-paneldagi Web Conversations interfeysi orqali yoki bizning oddiy REST API orqali dasturiy ravishda yuborishingiz mumkin. Test xabarini yuborish uchun curl misoli:

curl -X POST https://mysmsgate.net/api/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+998901234567",
    "message": "MySMSGate-dan webhook test xabari",
    "sim_slot": 1
  }'

Ushbu so'rovni bajarganingizdan so'ng, ulangan Android telefoningiz SIM-karta orqali xabarni darhol yuboradi. Xabar holati "pending"dan "sent"ga va nihoyat "delivered"ga o'zgarganda, MySMSGate sozlangan webhook URL-manziliga HTTP POST so'rovlarini yuboradi.

4-qadam: Yetkazib berish holati ma'lumotlarini tekshiring

Test SMS-ni yuborganingizdan so'ng, webhook tinglovchingizni (masalan, Webhook.site yoki ngrok ishlayotgan terminal) tekshiring. Siz kiruvchi HTTP POST so'rovini ko'rishingiz kerak. Ushbu ma'lumotlarni tahlil qilish webhook sozlangandan so'ng sms-ni qanday test qilishni o'rganishning muhim qismidir.

MySMSGate-dan odatiy yetkazib berish holati webhook ma'lumotlari quyidagicha ko'rinadi:

{
  "event": "sms.status_changed",
  "message_id": "msg_8f7d6e5c4b3a",
  "to": "+998901234567",
  "status": "delivered",
  
  "sim_slot": 1,
  "device_id": "dev_android_01",
  "timestamp": "2026-08-05T14:32:01.000Z",
  "error_code": null
}

Ushbu ma'lumotlarni tahlil qilishda quyidagi maydonlarni tekshiring:

  • message_id: Dastlabki API chaqiruvi tomonidan qaytarilgan ID-ga mos keladi.
  • status: Xabar muvaffaqiyatli yuborilgani yoki yetkazilganini tasdiqlaydi.
  • sim_slot: Qaysi SIM-karta ishlatilganligini aniqlaydi (ayniqsa, ikki SIM-kartali Android telefonlar uchun foydali).
  • error_code: Agar holat "failed" bo'lsa, ushbu maydonda sabab ko'rsatiladi (masalan, signal yo'qligi, mablag' yetishmasligi).

5-qadam: Webhook-ning maxsus holatlari va qayta urinishlarni sinab ko'ring

Mustahkam ishlab chiqarish ilovasi nafaqat muvaffaqiyatli yetkazib berishlarni, balki boshqa holatlarni ham boshqarishi kerak. Webhook integratsiyasini sinab ko'rayotganda, ushbu uchta holatni simulyatsiya qilishni unutmang:

  1. Yetkazib berish xatosini simulyatsiya qiling: Noto'g'ri yoki o'chirilgan telefon raqamiga SMS yuboring. Webhook ma'lumotlarini kuzating. status maydoni failed bo'lishi va error_code to'ldirilishi kerak. MySMSGate-da har qanday muvaffaqiyatsiz SMS uchun mablag' avtomatik ravishda balansingizga qaytariladi.
  2. Server to'xtab qolishini simulyatsiya qiling: Mahalliy webhook qabul qiluvchi serveringizni vaqtincha o'chiring va SMS yuboring. Yaxshi SMS shlyuzi yetkazib berish hisobotlarini navbatga qo'yadi va agar serveringiz 5xx xatosini qaytarsa yoki vaqt tugasa, ularni qayta yuborishga harakat qiladi. Serveringizni qayta yoqqaningizdan so'ng, shlyuz webhook-ni qayta yuborganini tekshiring.
  3. Takroriy Webhook-larni boshqarish: Kamdan-kam hollarda tarmoq muammolari tufayli serveringiz bir xil webhook hodisasini ikki marta qabul qilishi mumkin. Backend kodingiz idempotent ekanligiga ishonch hosil qiling — ya'ni har qanday biznes mantiqini bajarishdan oldin ma'lumotlar bazasida message_id holati allaqachon yangilanganligini tekshiring.

SMS shlyuzlarining Webhook test muhitlarini solishtirish

Webhook-larni sinab ko'rish siz tanlagan SMS API provayderiga qarab juda farq qilishi mumkin. Eski bulutli aloqa platformalari ko'pincha murakkab muvofiqlik qoidalari va sandboxlar orqali qiyinchiliklar tug'diradi, zamonaviy Android-ga asoslangan SMS shlyuzlari esa ishlab chiquvchilar ishini osonlashtiradi.

Quyida turli platformalarda webhook-larni sinash va SMS yetkazib berishni boshqarish bo'yicha taqqoslash keltirilgan:

Xususiyat / ParametrMySMSGateTwilio / PlivoEski SMS shlyuzlari
Sozlash vaqti< 5 daqiqa (QR-kod orqali)Kunlar yoki haftalar (A2P 10DLC)Soatlar (murakkab API kalitlari)
Test muhitiHaqiqiy Android qurilmasi va SIM-kartaCheklangan Sandbox yoki pullik virtual raqamlarFaqat simulyatsiya qilingan sandbox
Narxlar tuzilmasiFiksirlangan $0.02/SMS (oylik to'lovsiz)Segment uchun billing + operator to'lovlari + oylik ijaraOylik obuna (masalan, $9.99/oy)
Xato bo'lgan SMS siyosatiMuvaffaqiyatsizlikda balansni avtomatik qaytarishYetkazib berilmasa ham to'liq narx olinadiFarq qiladi (ko'pincha baribir olinadi)
No-Code integratsiyalarZapier, Make.com, n8n, Web DashboardMaxsus kod yoki murakkab middleware talab qiladiCheklangan integratsiyalar

O'z Android telefoningizdan SMS shlyuzi sifatida foydalanish orqali siz webhook-larni sinab ko'rish uchun qimmatbaho qisqa kodlar yoki virtual raqamlarni sotib olish zaruratidan qutulasiz. Bu MySMSGate-ni murakkab shartnomalarsiz oddiy va ishonchli bildirishnomalarni xohlaydigan kichik biznes egalari uchun eng arzon SMS API-ga aylantiradi.

Ko'p so'raladigan savollar

Quyida ishlab chiquvchilar va biznes egalari SMS webhook-larini sozlash va sinab ko'rishda so'raydigan eng keng tarqalgan savollar keltirilgan.

Webhook endpointim SMS yetkazib berish holatlarini qabul qilayotganini qanday tekshiraman?

Buni server loglarini tekshirish yoki Webhook.site kabi vositadan foydalanish orqali tekshirishingiz mumkin. SMS yuborilganda, shlyuz sizning URL-manzilingizga HTTP POST so'rovini yuboradi. Agar server loglarida 200 OK javob kodi bilan kiruvchi POST so'rovi ko'rinsa, endpointingiz yetkazib berish holatlarini muvaffaqiyatli qabul qilmoqda.

Webhook-larni mahalliy darajada sinab ko'rish uchun qaysi vositalardan foydalanishim kerak?

Mahalliy webhook testlari uchun eng yaxshi vositalar — ngrok (mahalliy serveringizni xavfsiz tunnel orqali internetga ochish uchun) va Webhook.site (kod yozmasdan xom JSON ma'lumotlarini tezda tekshirish uchun). Ikkala vosita ham bepul va ishlab chiquvchilar orasida keng qo'llaniladi.

Nima uchun SMS webhook testi paytida 500 xatosini qaytarmoqda?

500 Internal Server Error kodingiz kiruvchi ma'lumotlarni qayta ishlashda xatoga yo'l qo'yganini yoki to'xtab qolganini anglatadi. Backend server loglarini tekshiring. Kodingiz JSON ma'lumotlarini to'g'ri tahlil qilayotganiga va ma'lumotlar bazasi operatsiyalarini bajarishdan oldin tezda 200 OK javobini qaytarayotganiga ishonch hosil qiling.

Agar serverim oflayn bo'lsa, MySMSGate webhook-ni qayta yuborishni qanday boshqaradi?

Agar serveringiz oflayn bo'lsa yoki xato holatini (masalan, 500 yoki 503) qaytarsa, MySMSGate-ning webhook yetkazib berish tizimi bildirishnomani avtomatik ravishda navbatga qo'yadi va uni ma'lum vaqt oraliqlarida qayta yuborishga harakat qiladi. Bu server yangilanishlari paytida muhim yetkazib berish hisobotlari yoki mijoz javoblarini yo'qotmasligingizni ta'minlaydi.