ملی ای‌پی‌آی

استعلام قبض ایرانسل مبلغ نمی‌دهد؟ سه حالت و راه‌حل

استعلام قبض ایرانسل فقط برای خط دائمی نتیجه دارد؛ اگر مبلغ نیامد اول نوع خط، بعد دو بلوک پایان‌دوره و میان‌دوره، و آخر شناسهٔ پرداخت را بسنجید.

اگر استعلام قبض ایرانسل برای شماره‌ای مبلغی نشان نمی‌دهد، اول بپرسید این خط دائمی است یا اعتباری. صورتحساب دوره‌ای فقط برای خط دائمی وجود دارد و خط اعتباری چیزی ندارد که استعلام شود.

بیشتر کسانی که با «قبض ایرانسل مبلغ نمی‌دهد» به جست‌وجو می‌آیند، با خط اعتباری سروکار دارند و فکر می‌کنند ایراد از سامانه است. این مقاله بین سه حالت فرق می‌گذارد: خط اعتباری، خط دائمی بدون بدهی، و حالتی که شما فکر می‌کنید پرداخت کرده‌اید ولی هنوز بدهی دیده می‌شود.

حالت اول: خط اعتباری

خط اعتباری پیش‌پرداخت است. شما شارژ می‌خرید و مصرف از آن کم می‌شود؛ هیچ صورتحسابی در پایان ماه صادر نمی‌شود.

برای این خط، به جای قبض باید موجودی را بپرسید. منابع عمومی کد دستوری و اپلیکیشن اپراتور را برای این کار معرفی می‌کنند. وب‌سرویس استعلام قبض ایرانسل این کار را نمی‌کند: ورودی‌اش شمارهٔ موبایل است ولی خروجی‌اش صورتحساب دوره‌ای است.

اگر محصول شما به کاربر عادی خدمت می‌دهد، بخش بزرگی از شماره‌هایی که می‌گیرید ممکن است اعتباری باشند. من در طراحی رابط، پیش از فراخوان یک پرسش می‌گذارم: «خط شما دائمی است یا اعتباری؟» این یک پرسش ساده است ولی جلوی بخش بزرگی از «نتیجه نیامد» را می‌گیرد.

حالت دوم: خط دائمی بدون بدهی

خط دائمی با مبلغ صفر هم یک پاسخ درست است. پاسخ دو بلوک دارد، final_term برای پایان‌دوره و mid_term برای میان‌دوره، و هرکدام مبلغ، شناسهٔ قبض و شناسهٔ پرداخت دارند.

اگر یکی از این دو صفر باشد، یعنی در آن بخش مبلغی ثبت نشده. کاربر را با پیام خطا نترسانید. توضیح دو بخش را در راهنمای قبض میان‌دوره و پایان‌دوره خوانده‌اید؟ همان منطق برای ایرانسل هم صادق است چون شکل پاسخ هر سه اپراتور یکی است.

حالت سوم: پرداخت کرده‌ام ولی بدهی هست

این حالت مشکل‌سازترین است و در گزارش‌های کاربران دیده شده: یک سامانه می‌گوید پرداخت شده، اپلیکیشن اپراتور هنوز بدهی نشان می‌دهد. نمونهٔ آن را در شبکه‌های اجتماعی هم می‌بینید.

دلیل قطعی را ما نمی‌دانیم و حدس هم نمی‌زنم. چیزی که قابل‌اثبات است این است که استعلام آینهٔ رکورد اپراتور در لحظهٔ پرسش است. پس چند چیز را باید جدا کنید:

  1. آیا پرداخت به شناسهٔ درست رفته؟ رسید پرداخت را با payment_id بلوکی که می‌خواستید بپردازید مقایسه کنید. پایان‌دوره و میان‌دوره شناسهٔ جدا دارند.
  2. آیا رکورد هنوز به‌روز نشده؟ تا زمانی که اپراتور رکورد را عوض نکرده، هر تعداد استعلام همان جواب را می‌دهد. پشت سر هم پرسیدن فقط هزینه می‌سازد.
  3. آیا بدهی به بلوک دیگری نشسته؟ ممکن است پایان‌دوره صفر شده باشد ولی میان‌دوره هنوز مبلغ داشته باشد، که طبیعی است.

اگر هر سه را بررسی کردید و اختلاف باقی ماند، رسید بانکی را نگه دارید و از پشتیبانی اپراتور پیگیری کنید. در بخش بعد دلیل اینکه نباید خودکار تکرار کنید را می‌خوانید.

چرا تکرار خودکار استعلام کمک نمی‌کند

وسوسهٔ برنامه‌نویس‌ها این است که اگر پاسخ ناامیدکننده بود، هر ده ثانیه دوباره بپرسند. این کار بی‌فایده است و دو ضرر دارد: نتیجه عوض نمی‌شود و فراخوان‌هایی که پاسخ معتبر گرفته‌اند هزینه دارند. به نظر من بهتر است بعد از پرداخت یک فاصلهٔ معقول بگذارید و به کاربر بگویید «ثبت پرداخت ممکن است کمی طول بکشد».

پاسخ شما چه باید بگوید

برای رابط کاربری، سه پیام متفاوت بنویسید و یکی نکنید:

  • «برای خط اعتباری قبض صادر نمی‌شود.»
  • «قبضی برای پرداخت وجود ندارد.» وقتی هر دو مبلغ صفر است.
  • «پرداخت شما هنوز در رکورد اپراتور دیده نمی‌شود.» وقتی کاربر خودش می‌گوید پرداخت کرده.

سومی را ننویسید مگر کاربر چنین گفته باشد؛ شما از روی استعلام نمی‌توانید بفهمید پرداختی انجام شده یا نه.

آنچه این استعلام نمی‌کند

استعلام قبض ایرانسل با API فقط صورتحساب خط دائمی را می‌دهد. بنابراین:

  • موجودی خط اعتباری یا اعتبار باقی‌مانده را نمی‌دهد.
  • بسته‌های اینترنت و حجم مصرف‌نشده را نشان نمی‌دهد.
  • نمی‌گوید پرداخت شما کی ثبت می‌شود.
  • مالک خط را معرفی نمی‌کند.

چطور بفهمم خطم دائمی است

سه نشانه معمولاً کافی است:

  • هر ماه صورتحساب یا پیامک بدهی می‌گیرید.
  • مصرف را بعد از استفاده حساب می‌کنند، نه از قبل.
  • در اپلیکیشن اپراتور بخشی به نام صورتحساب دارید.

برای خطوطی که کاربر نمی‌داند، رابط شما می‌تواند یک راهنمای کوتاه بگذارد. نوشتن «اگر هر ماه قبض می‌گیرید، دائمی است» برای بیشتر کاربران کافی است.

یک سناریوی فرضی برای رابط

فرض کنید یک سوپراپ پرداخت دارید و کاربری شماره‌ای را وارد می‌کند. استعلام مبلغ صفر در هر دو بخش برمی‌گرداند. اگر پیام عمومی «قبضی یافت نشد» بنویسید، کاربر اعتباری و کاربر دائمی بدون بدهی هیچ فرقی نمی‌بینند. اگر پرسش نوع خط را جلوتر گذاشته باشید، می‌توانید به اولی بگویید «برای خط اعتباری از شارژ استفاده کنید» و به دومی بگویید «بدهی ندارید». این دو جمله پشتیبانی را کم می‌کنند.

پرسش‌های متداول کاربران

آیا استعلام مبلغ یک خط اعتباری را می‌گوید؟ نه. موجودی و شارژ موضوع دیگری است و از راه‌های خود اپراتور بررسی می‌شود.

چرا یک سامانه می‌گوید پرداخت شده و دیگری نه؟ هر سامانه رکورد خودش را می‌خواند. ممکن است یکی تازه‌تر باشد. اگر رسید و شناسهٔ پرداخت دارید، کار پیگیری ساده‌تر می‌شود.

چند بار می‌توانم پشت سر هم استعلام بگیرم؟ فنی‌اش ممکن است، ولی فایده ندارد. تا وقتی رکورد اپراتور عوض نشده، پاسخ همان است. بهتر است به کاربر بگویید ساعاتی بعد دوباره امتحان کند.

اگر هر دو مبلغ صفر بود، یعنی خط سالم است؟ یعنی بدهی ثبت‌شده‌ای در آن لحظه نیست. دربارهٔ وضعیت فعال یا مسدود بودن خط چیزی نمی‌گوید.

اگر خودتان رابط می‌سازید

سه کار کوچک خیلی کمک می‌کند. اول، نمایش زمان استعلام کنار مبلغ. دوم، دکمه‌ای برای تلاش دوباره که بعد از هر استعلام چند دقیقه غیرفعال بماند، تا کاربر بی‌دلیل فراخوان تکراری نسازد. سوم، نمایش شناسه‌های پرداخت به‌صورت قابل‌کپی، تا اگر کاربر بخواهد با پشتیبانی تماس بگیرد، شناسه را در دست داشته باشد.

این سه مورد کم‌هزینه‌اند ولی بخش بزرگی از تماس‌های «مبلغم را نمی‌بینم» را حذف می‌کنند.

در یک نگاه

مبلغ نیامدن بیشتر به نوع خط برمی‌گردد تا به خطای سامانه. نوع خط را بپرسید، دو بلوک را جدا بخوانید، شناسهٔ پرداخت را با رسید بسنجید و بی‌دلیل تکرار نکنید. توضیح فنی ورودی و خروجی در مستندات API است.

آخرین بازبینی: تیم تحریریه ملی ای‌پی‌آی

وب‌سرویس مرتبط با این راهنما

API استعلام قبض ایرانسل

صورتحساب خط دائمی ایرانسل.

مشاهده مشخصات فنی و تعرفه

راهنماهای مرتبط

پرسش و تجربه کاربران

اگر این راهنما جوابتان را نداد، همین‌جا بپرسید. پرسش‌ها را تیمملی ای‌پی‌آی پاسخ می‌دهد و هر نظر پیش از انتشار بررسی می‌شود.

هنوز پرسشی ثبت نشده، اولین نفر باشید.