وقتی پیامک نمیرسد، همیشه مشکل از کلید اتصال نیست. ممکن است رویداد اجرا نشده باشد، شماره گیرنده معتبر نباشد، الگو ناقص باشد یا سرویس درخواست را پذیرفته باشد اما پیام به گوشی نرسیده باشد.
برای عیبیابی، ابتدا مشخص کنید پیام در کدام مرحله متوقف شده است. تغییر همزمان پنل، خط، الگو و متن پیام، پیداکردن علت را سختتر میکند.
این راهنما بر مرکز پیامک ووکامرس و اتصال پنلها تمرکز دارد. آزمون پیامک سفارش جای آزمون مستقل ورود با کد یکبارمصرف یا «موجود شد خبرم کن» را نمیگیرد.
۱. نشانه مشکل را دقیق مشخص کنید
یک آزمون مشخص انتخاب کنید و نتیجه آن را یادداشت کنید: پنل، روش ارسال، گیرنده، زمان آزمون و در صورت ارتباط، شماره سفارش.
| نشانه | نقطه شروع بررسی |
|---|---|
| دکمه «ارسال پیامک تست» خطا میدهد | اطلاعات ارسال مستقیم، شماره آزمایشی و متن خطا |
| آزمون مستقیم موفق است، اما اعلان سفارش نمیآید | فعالبودن مرکز پیامک، رویداد، گیرنده و روش ارسال اعلان |
| پیام مستقیم میرسد، اما پیام الگویی نمیرسد | شناسه الگو، نام یا ترتیب متغیرها و مجوز استفاده از الگو |
| در جم پک موفق ثبت شده، اما گوشی پیامی نگرفته | گزارش همان درخواست در پنل پیامکی |
| هیچ رکوردی در تاریخچه نیست | فیلترها، ثبت تاریخچه، اجرای رویداد و بررسیهای پیش از ارسال |
| پیام رسیده، اما اطلاعات آن اشتباه است | متن پیام یا نگاشت متغیرها؛ نه لزوماً اطلاعات اتصال |
دکمه آزمون پنل، ارسال مستقیم را اجرا میکند. نتیجه آن را به ارسال الگویی تعمیم ندهید؛ حسابی که فقط برای مسیر الگویی آماده شده، ممکن است آزمون مستقیم ناموفق داشته باشد.
۲. پنل فعال و اطلاعات اتصال را بررسی کنید
- در تنظیمات جم پک، «اعلانهای پیامکی ← تنظیمات اصلی» را باز کنید.
- پنل انتخابشده را بررسی کنید.
- اگر انتخاب یا اطلاعات اتصال را تغییر دادهاید، تنظیمات را ذخیره کنید و صفحه را دوباره بررسی کنید.
- اطلاعات لازم را با آموزش اختصاصی همان پنل تطبیق دهید.
- فقط بعد از این بررسی، آزمون مناسب روش موردنظر را اجرا کنید.
ارسالها از پنل ذخیرهشده استفاده میکنند. تغییر انتخاب پنل در صفحه، بدون ذخیره، اتصال فعال را عوض نمیکند.
در تطبیق اطلاعات، به این تفاوتها توجه کنید:
- فراپیامک: اتصال به نام کاربری و کلید API نیاز دارد؛ رمز ورود حساب را جای کلید API وارد نکنید.
- ملیپیامک: اتصال بررسیشده از توکن API کنسول استفاده میکند.
- رایگان اساماس: مستقیم به نام کاربری و رمز عبور نیاز دارد؛ الگویی به
AccessHash. اطلاعات یکی جای دیگری را نمیگیرد. - خط فرستنده: بعضی پنلها برای مستقیم به خط نیاز دارند، حتی اگر فیلد در فرم الزامی علامت نخورده باشد.
- ایرانپیامک: آدرس پایه API را حدس نزنید. اگر آدرس اختصاصی لازم است، آن را از سرویسدهنده دریافت کنید.
فهرست پنلها و لینک آموزش هر کدام در انتخاب و اتصال پنل پیامکی قرار دارد.
۳. تاریخچه جم پک و یادداشت سفارش را بخوانید
در بخش «اعلانهای پیامکی»، «تاریخچه پیامک» را باز کنید. برای جستوجوی آزمون، زمان، شماره گیرنده، پنل و در صورت وجود شماره سفارش را در نظر بگیرید.
اگر نتیجه پیدا نمیشود، ابتدا فیلترهای محدودکننده را بردارید. تاریخچه بدون بررسی فیلترها، دلیل قطعی اجرانشدن ارسال نیست.
برای اعلانهای سفارش، یادداشتهای همان سفارش را نیز بررسی کنید. مسیرهای بررسیشده، نتیجه ارسال موفق یا خطای ارسال را در یادداشت سفارش ثبت میکنند؛ اما همه توقفها الزاماً به ثبت یادداشت یا رکورد پیامک نمیرسند.
وضعیتها چه معنایی دارند؟
- `sent`: افزونه پاسخ پنل را موفق تشخیص داده است. این وضعیت بهتنهایی دریافت روی گوشی را تأیید نمیکند.
- `failed`: مسیر ارسال خطا برگردانده یا هنگام اجرا خطایی رخ داده است. متن پاسخ را همراه نام پنل بررسی کنید.
- `pending`: رکورد تلاش ثبت شده، اما نتیجه نهایی در آن رکورد مشخص نیست. آن را معادل صف تضمینشده برای ارسال خودکار بعدی ندانید.
وجود نام وضعیت «تحویلشده» در ساختار تاریخچه، دلیل فعالبودن پیگیری تحویل نیست. در مسیرهای ارسال بررسیشده، دریافت خودکار گزارش تحویل از پنل تأیید نشده است؛ برای وضعیت دریافت، گزارش سرویس را بررسی کنید.
اگر هیچ رکوردی وجود ندارد
این موارد را بهترتیب بررسی کنید:
- فیلترهای تاریخچه، رکورد موردنظر را پنهان نکرده باشند.
- ثبت تاریخچه در «تنظیمات اصلی ← ثبت و تاریخچه پیامک» فعال باشد.
- رکورد قدیمیتر از بازه نگهداری نباشد. مقدار «مدت نگهداری گزارش (روز)» روی پاکسازی سوابق قدیمی اثر دارد.
- آزمون از دکمه پنل نبوده باشد؛ این دکمه مسیر مستقیم جداگانهای دارد و ثبت آن در تاریخچه مرکز پیامک را نباید فرض کرد.
- رویداد و گیرنده فعال باشند و شماره معتبر وجود داشته باشد.
برخی خطاها، از جمله نامعتبربودن شماره، نبود پنل فعال یا خالیبودن متن در مسیر مستقیم، پیش از ساخت رکورد تلاش بررسی میشوند. روشنکردن ثبت تاریخچه نیز سوابق ثبتنشده گذشته را بازسازی نمیکند.
هنگام عیبیابی، دکمه پاکسازی تاریخچه را نزنید؛ ممکن است شواهد لازم حذف شوند.
۴. شماره گیرنده و رویداد سفارش را بررسی کنید
پیام مشتری ارسال نمیشود
شماره مشتری در مسیر بررسیشده از تلفن صورتحساب سفارش خوانده میشود. اگر آن خالی باشد، فیلد جایگزین مشخصی بررسی میشود؛ وجود شماره در پروفایل یا هر فیلد دلخواه دیگر، تضمین استفاده از آن نیست.
برای آزمون اولیه، تلفن صورتحساب سفارش آزمایشی را با قالب 09xxxxxxxxx و ارقام لاتین وارد کنید. بهجای حروف x، رقمهای شماره خودتان را بنویسید؛ نمونه را عیناً بهعنوان شماره گیرنده وارد نکنید.
اگر تلفن صورتحساب پر اما نامعتبر باشد، منتظر جایگزینی خودکار آن با شماره موجود در فیلد دیگر نباشید. ابتدا همان شماره را اصلاح کنید.
سپس بررسی کنید وضعیت موردنظر در تنظیمات پیام مشتری انتخاب شده و سفارش واقعاً به همان وضعیت منتقل شده باشد. صرف ذخیره دوباره سفارش با وضعیت بدون تغییر، آزمون قابل اتکایی برای رویداد تغییر وضعیت نیست.
پیام مدیر ارسال نمیشود
در «تنظیمات اصلی»، شمارههای موبایل مدیران را بررسی کنید. برای آزمون، فقط شمارهای را نگه دارید که پیامکهایش را خودتان دریافت میکنید. شمارههای نامعتبر در مسیر دریافت گیرندگان مدیر کنار گذاشته میشوند.
پس از تأیید شماره، زمان اطلاعرسانی و روش ارسال مدیر را جدا از مشتری بررسی کنید. موفقیت پیام مشتری به معنی کاملبودن تنظیمات مدیر نیست.
پیام سفارش جدید ارسال نمیشود
گزینه اعلان سفارش جدید را برای گیرنده موردنظر بررسی کنید. برای آزمون قابل اتکا، یک سفارش آزمایشی جدید از مسیر موردبررسی بسازید؛ سفارش قدیمی را معادل رویداد سفارش جدید ندانید.
افزونه پردازش اعلان سفارش جدید را علامتگذاری میکند. اگر اعلان مدیر یا مشتری فعال باشد، این علامت ممکن است حتی پس از تلاش ناموفق هم ثبت شود. بنابراین اصلاح اتصال و بازکردن همان سفارش، تضمین اجرای دوباره اعلان نیست. برای بررسی، سفارش آزمایشی تازه بسازید؛ متای سفارش واقعی را دستی پاک نکنید.
۵. خطاهای متن و الگو را برطرف کنید
«متن پیامک خالی است»
برای وضعیت یا رویداد موردنظر، متن مستقیم را بررسی کنید. انتخاب یک وضعیت، بهخصوص وضعیت سفارشی، تضمین نمیکند متن پیشفرضی برای آن وجود داشته باشد.
اگر قصد ارسال الگویی دارید اما شناسه الگو خالی است، مسیر اعلان میتواند به ارسال مستقیم برگردد. روش ارسال و شناسه همان رویداد را با هم بررسی کنید؛ فقط پرکردن یک متن تصادفی، آزمون صحیح الگو نیست.
شناسه الگو نامعتبر است یا الگو پیدا نمیشود
شناسه را از پنل فعال بردارید. عنوان نمایشی الگو همیشه همان شناسه ارسال نیست و قالب شناسه بین سرویسها متفاوت است. شناسه یک پنل را در پنل دیگر استفاده نکنید.
اتصالهایی مثل SMS.ir و فراپیامک به شناسه عددی الگو نیاز دارند و آن را پیش از ارسال بررسی میکنند. این قاعده را به همه پنلها تعمیم ندهید.
فعالبودن یا تأییدشدن الگو و مجوز حساب را نیز در خود پنل بررسی کنید.
پیام الگویی با مقادیر خالی یا جابهجا میرسد
برای پنلهای دارای متغیر نامدار، نام هر متغیر باید مطابق قالب پنل باشد. برای پنلهای ترتیبی، ترتیب ردیفها باید با جایگاههای الگو هماهنگ باشد.
برای نمونه، در SMS.ir نام متغیری که در متن پنل بهشکل #order_id# آمده، در نگاشت با نام order_id وارد میشود؛ نه با علامتهای #. در قاصدک نیز نامی مثل %Code% بدون علامتهای % و مطابق نام اصلی وارد میشود.
محدودیت طول مقدار و تعداد جایگاهها یکسان نیست. اگر نام کامل مشتری یا فهرست محصولات باعث خطا شده، محدودیت گزارششده همان پنل را بررسی کنید و مقدار کوتاهتر و مرتبط انتخاب کنید.
برای تنظیم متن و نگاشت، مدیریت رویدادها و الگوهای پیامکی را ببینید.
روش الگویی در اتصال پنل وجود ندارد
نیازپرداز در اتصال بررسیشده، send_pattern() مستقل ندارد. ساختن شناسه فرضی یا تغییر نام روش، آن را اضافه نمیکند. روش مستقیم و شرایط متن تأییدشده را طبق راهنمای نیازپرداز بررسی کنید.
نبود روش الگویی، خالیبودن شناسه و خطای برگشتی سرویس، سه وضعیت متفاوتاند. بهویژه فرض نکنید بعد از هر خطای ارسال الگو، همان پیام خودکار مستقیم فرستاده میشود.
۶. خطاهای اتصال و پاسخ پنل را تفکیک کنید
متن خطا را با نام پنل و روش ارسال ثبت کنید. یک عدد یکسان در سرویسهای مختلف، لزوماً معنای یکسانی ندارد؛ کد پاسخ HTTP هم با کد داخلی سرویس یکی نیست.
کلید، توکن یا دسترسی حساب
اگر خطا درباره اطلاعات اتصال است، ابتدا نوع اطلاعات موردنیاز را با راهنمای پنل تطبیق دهید. کلید API، توکن کنسول، رمز ورود و AccessHash قابل جایگزینی با یکدیگر نیستند.
چند خطای شناختهشده در اتصالهای جم پک:
| پنل و پاسخ | بررسی مرتبط |
|---|---|
قاصدک، خطای 401 | متن پاسخ، اعتبار کلید و مجازبودن IP سرور برای همان کلید را بررسی کنید. |
فراپیامک، کد -110 | کلید API لازم است؛ رمز ورود حساب را جای آن نگذارید. |
فراپیامک، کد -111 یا -109 | تنظیم IP مجاز را با سرویسدهنده بررسی کنید. |
فراپیامک، کد -112 | وضعیت دسترسی وبسرویس حساب را بررسی کنید. |
نیازپرداز، کد 10 | دسترسی وبسرویس حساب را بررسی کنید. |
این جدول به تفسیر خطاهای شناختهشده کمک میکند. برای تشخیص علت، متن کامل پاسخ سرویس را هم بخوانید، بهویژه اگر توضیح آن با جدول متفاوت است.
IP موردنیاز سرویس، IP خروجی سرور هنگام اتصال است؛ IP رایانه مدیر سایت را جای آن ثبت نکنید. اگر IP خروجی را نمیدانید، از پشتیبانی هاست دریافت کنید.
خط، اعتبار و محدودیت حساب
اگر پاسخ به خط فرستنده، اعتبار یا حساب مربوط است، ابتدا همان مورد را در پنل بررسی کنید؛ تغییر الگو مشکل اعتبار حساب را حل نمیکند.
برای نمونه، اتصال SMS.ir برای کد 123 توضیح فعالسازی خط دارد. اتصال نیازپرداز برای کد 8 کمبود اعتبار و برای کد 6 غیرفعالبودن خط را گزارش میکند. این معانی مخصوص همان اتصالاند؛ آنها را برای پنل دیگری استفاده نکنید.
خطای قالب یا متغیر
چند خطای رایج قالب و متغیر:
- SMS.ir، کد `113`: شناسه قالب را بررسی کنید.
- SMS.ir، کد `114`: طول مقدار متغیر را بررسی کنید؛ توضیح کد اتصال به محدودیت ۲۵ کاراکتر اشاره دارد.
- SMS.ir، کد `116`: نام متغیرهای نگاشت خالی نباشد.
- فراپیامک، کد `-5` در ارسال الگویی: تعداد و ترتیب مقادیر را با الگو تطبیق دهید.
- نیازپرداز، کد `18`: متن ارسال مستقیم را با متن تأییدشده پنل تطبیق دهید؛ شناسه الگوی فرضی وارد نکنید.
اگر خطا به شرایط حساب یا سرویس مربوط است، پس از تطبیق تنظیمات، از پشتیبانی همان سرویس پیگیری کنید.
خطای ارتباط سرور، مهلت اتصال یا گواهی امنیتی
اگر پاسخ نشان میدهد سرور سایت به سرویس دسترسی پیدا نکرده، متن کامل خطا و زمان وقوع را به پشتیبانی هاست بدهید. بررسی باید از همان سروری انجام شود که سایت روی آن اجرا میشود؛ بازشدن سایت سرویس در مرورگر شما، اتصال سرور فروشگاه را تأیید نمیکند.
در گزارش، نشانی سرویس بدون اطلاعات محرمانه، خطای DNS، مهلت اتصال یا TLS و زمان آزمون را مشخص کنید. علت را پیشاپیش «خرابی پنل» یا «مشکل افزونه» ننامید.
برای حل خطای TLS، بررسی گواهی را غیرفعال نکنید و نشانی امن سرویس را به نشانی ناامن تغییر ندهید. کد اتصال را هم صرفاً برای طولانیترکردن زمان انتظار دستکاری نکنید؛ ابتدا علت ارتباط و نتیجه درخواست قبلی روشن شود.
۷. اگر ارسال موفق ثبت شده، اما پیام نرسیده است
گزارش همان پیام را در پنل پیدا کنید. زمان، شماره گیرنده، خط و شناسه درخواست در صورت ارائهشدن از سوی سرویس، برای تطبیق مفیدند.
سپس این موارد را بررسی کنید:
- درخواست واقعاً برای شماره موردنظر ثبت شده است؟
- وضعیت پیام در پنل چه بوده و آیا توضیح خطا یا ردشدن دارد؟
- محدودیت خط، حساب یا دریافت شماره در گزارش ذکر شده است؟
- پیام در بخش مسدودشده یا هرزنامه گوشی قرار نگرفته است؟
برای شمارهای که پیام تبلیغاتی نمیگیرد، صرف عوضکردن روش به الگویی تضمین تحویل نیست. شرایط خط و الگوی مجاز را از سرویسدهنده پیگیری کنید.
تا وقتی وضعیت درخواست روشن نشده، چند بار روی آزمون کلیک نکنید. خطای مهلت اتصال هم الزاماً ثابت نمیکند سرویس درخواست را دریافت نکرده است؛ پیش از ارسال دوباره، گزارش پنل را بررسی کنید.
۸. پیام تکراری یا آزمون تکرارشونده را بررسی کنید
اگر یک پیام چند بار رسیده، متن، زمان، گیرنده و رویداد هر مورد را کنار هم بگذارید. پیام سفارش جدید و پیام تغییر وضعیت میتوانند دو اعلان جدا باشند، حتی اگر متن مشابهی داشته باشند.
پس از ارسال موفق اعلان تغییر وضعیت، افزونه برای مدتی از تکرار همان پیام جلوگیری میکند. این کنترل بر اساس سفارش، نوع گیرنده، وضعیت و شماره انجام میشود. مقدار پیشفرض این بازه ۱۰ دقیقه است و میتواند با کد سفارشی تغییر کند. بنابراین تکرار سریع همان رویداد همیشه به پیام تازه منجر نمیشود.
این محافظ را برای همه مسیرها، پنلها و افزونههای دیگر فرض نکنید. اگر افزونه پیامکی دیگری فعال است، در محیط آزمایشی بررسی کنید آیا هر دو برای یک رویداد ارسال میکنند. همه افزونههای سایت اصلی را برای آزمون غیرفعال نکنید.
برای آزمون مجدد، از سفارش آزمایشی مستقل یا سناریوی کنترلشده استفاده کنید. وضعیتهای سفارش واقعی و علامتهای داخلی جلوگیری از تکرار را دستکاری نکنید.
۹. اصلاح را با یک مثال مشخص تأیید کنید
فرض کنید آزمون مستقیم موفق بوده، اما پیام الگویی مشتری در وضعیت «در حال انجام» خطا داده است.
- پنل فعال ذخیرهشده را بررسی کنید.
- شناسه و نگاشت الگوی مشتری برای همان وضعیت را تطبیق دهید.
- فقط مورد مرتبط با خطای ثبتشده را اصلاح و ذخیره کنید.
- یک سفارش آزمایشی تازه با شماره خودتان آماده کنید.
- آن را به وضعیت موردنظر منتقل کنید.
- یادداشت سفارش، تاریخچه جم پک، گزارش پنل و دریافت روی گوشی را بررسی کنید.
اگر درخواست موفق شده اما متن اشتباه است، کار هنوز تمام نشده است. شناسه سفارش، نام گیرنده و مقادیر پیام باید با سفارش آزمایشی مطابقت داشته باشند.
نتیجه را با عبارت روشن ثبت کنید: «درخواست پذیرفته شد»، «پیام دریافت شد» یا «مقدار متغیر اشتباه بود». همه اینها را با عنوان کلی «پیامک درست شد» یکسان نکنید.
۱۰. چه گزارشی برای پشتیبانی بفرستید؟
- نام پنل و روش ارسال؛
- زمان آزمون با منطقه زمانی سایت؛
- نوع آزمون: دکمه پنل، اعلان سفارش یا مسیر دیگری؛
- شماره سفارش آزمایشی و وضعیت قبل و بعد، در صورت ارتباط؛
- متن دقیق خطا، کد HTTP و کد سرویس در صورت وجود؛
- نتیجه تاریخچه، یادداشت سفارش و گزارش همان درخواست در پنل؛
- نتیجه دریافت روی گوشی و اقداماتی که یکبهیک آزمودهاید.
شماره گیرنده را در گزارش عمومی محو کنید. کلید API، توکن، رمز عبور، اطلاعات مشتری و متن کامل پیام دارای اطلاعات شخصی را در تیکت یا تصویر عمومی قرار ندهید. اطلاعات لازم برای تطبیق درخواست را فقط از مسیر امن پشتیبانی ارائه کنید.
قدمهای بعدی
- انتخاب و اتصال پنل پیامکی: اطلاعات اتصال و دسترسی به آموزش هر سرویس.
- مدیریت رویدادها و الگوهای پیامکی: تنظیم رویداد، متن و متغیرها.
- راهاندازی مرکز پیامک ووکامرس: بررسی راهاندازی اولیه بخش مشترک.
