نوع عملیات را مشخص کنید
پیش از حلقه تلاش مجدد، عملیات اتصال را فهرست کنید. خواندن داده را از ایجاد سفارش، تغییر وضعیت و مصرف موجودی جدا کنید. خواندن دوباره در حد API شاید قابل قبول باشد، اما خرید دوباره میتواند سفارش جدید بسازد. مشخصات واقعی را برای قابلیت جلوگیری از تکرار بخوانید. هدر جلوگیری از تکرار سرویس دیگر را بدون مستند بودن قابل استفاده فرض نکنید.
نتیجه خرید نامطمئن را مدیریت کنید
اگر پس از ارسال سفارش اتصال قطع شد، سرور شاید آن را پردازش کرده باشد. اطلاعات درخواست را نگه دارید و قبل از خرید دیگر سفارشهای فعلی را ببینید. اگر شناسه رسیده، همان رکورد را تطبیق دهید. وقتی نتیجه خودکار مشخص نمیشود، وضعیت روشنِ نیازمند بررسی نشان دهید؛ عدم قطعیت را شکست ندانید که باعث پرداخت دوباره شود.
مشکل پاسخ و تجزیه را جدا کنید
خطای احراز هویت، موجودی کم، محدودیت درخواست، پاسخ بدقالب و قطع شبکه هرکدام برخورد متفاوت میخواهند. کد وضعیت و فیلدهای مستند را بخوانید. هر پاسخ ناموفق را دستور یکسان تلاش دوباره نکنید. شکست تجزیه باید زمینه امن، از جمله مسیر و زمان را نگه دارد و کلید و راز پیام را حذف کند. خطای خام سرور را به کاربر نهایی نشان ندهید.
مسیرهای شکست را آزمایش کنید
برای پایان مهلت، پاسخ دیررس، JSON نامعتبر و فراخوانی برگشتی تکراری از نمونه کنترلشده استفاده کنید. مطمئن شوید یک خرید منطقی، چند عملیات خرید نمیسازد. لاگ را با شناسه ارتباطی و زمان مفید کنید، نه با اعتبارنامه کامل. برای سفارش واقعی حلنشده، از رکورد پنل برای تطبیق رخداد کمک بگیرید. قاعده روشن تلاش مجدد، خرید اضافی را کم و بررسی گزارش پشتیبانی را ساده میکند.
پرسش و پاسخ
شکست اتصال HTTP ثابت میکند سفارشی وجود ندارد؟
خیر. ممکن است سرور پیش از قطع اتصال درخواست را پردازش کرده باشد.
هر خطای API باید دوباره تلاش شود؟
خیر. احراز هویت، موجودی، اعتبارسنجی، محدودیت و شبکه نیاز به برخورد متفاوت دارند.
استفاده مسئولانه از SMS Activation
شماره را فقط برای حسابها، درخواستها و تأییدهایی که مجاز به مدیریت آنها هستید استفاده کنید. قواعد پلتفرم و قوانین محلی را رعایت کنید. موجودی شماره، قیمت، مقصدها و شبکههای پرداخت ممکن است تغییر کنند؛ پیش از پرداخت، اطلاعات فعلی را در حساب خود بررسی کنید.
پس از ثبتنام، کشورها، سرویسها، روشهای شارژ رمزارزی، قیمت فعالسازی و دورههای اجاره را میبینید.