آیا تا به حال با خطای 402 مواجه شدهاید؟ این خطا به طور خاص به مواردی اشاره دارد که به پرداخت نیاز دارند اما پرداخت به هر دلیل انجام نشده است. در واقع، این وضعیت HTTP میخواهد به کاربر بگوید که به منابعی دسترسی ندارد مگر آنکه فرآیند پرداخت کامل شود.
کد 402 در دنیای وب به عنوان نشانهای برای «پرداخت مورد نیاز است» ایفای نقش میکند. کاربرد این کد عموماً در واقعیت روزمره کمتر دیده میشود، چرا که بسیاری از سیستمهای پرداخت اینترنتی روشهای جایگزین برای مدیریت پذیرش یا عدم پذیرش پرداختها پیدا کردهاند. این کد وضعیت تا حد زیادی در مرحله ایجاد و آزمایش باقی مانده است.
فرض کنید یک سایت یا سرویس آنلاین دارید که بعضی از قسمتهای آن پولی است. زمانی که کاربری قصد دارد به محتوای پولی دسترسی پیدا کند و پرداخت لازم را انجام نداده، میتوانید از کد 402 برای اعلام عدم دسترسی استفاده کنید. این نکته بسیار مهم است که قبل از ارسال این کد، کاربر به صورت واضح و روشن از شرایط پرداخت آگاه باشد.
با این حال، استفاده گسترده از این کد در تعاملات واقعی شبکه مشاهده نمیشود. شاید یکی از دلایل آن عدم اجماع عمومی بر سر نحوه یا زمان استفاده از این کد در پروتکل HTTP باشد. همچنین، راهحلهای متفاوتی مانند مدیریت وضعیتهای مالی یا محدودیت دسترسی از طریق دیتابیسها و سیستمهای مدیریت کاربر برای پوشش این وضعیت مورد استفاده قرار گرفته است.
از منظر برنامهنویسی، شما میتوانید از این کد در برنامههای خود استفاده کنید تا به توسعهدهندگان و کاربرانتان نشان دهید که درخواست مورد نظر آنها مستلزم پرداخت است. این کار میتواند با افزودن شرایط لازم برای پرداخت به سیستم احراز هویت شما صورت پذیرد. به همین دلیل استفاده از مشکل پیشگیری میکند و به اطلاعرسانی شفافتر کمک میکند.
نمونه کد
if ($paymentRequired) {
header('HTTP/1.1 402 Payment Required');
echo 'لطفا قبل از ادامه پرداخت را انجام دهید.';
exit;
}
توضیحات کد خط به خط
if ($paymentRequired) {
اگر متغیر $paymentRequired
به معنی نیاز به پرداخت باشد وارد شرط میشود.
header('HTTP/1.1 402 Payment Required');
این خط کد، کد وضعیت HTTP 402 را ارسال میکند تا نشان دهد پرداخت مورد نیاز است.
echo 'لطفا قبل از ادامه پرداخت را انجام دهید.';
یک پیغام برای کاربر نمایش داده میشود که نیاز به پرداخت را توضیح میدهد.
exit;
اسکریپت را به طور کامل متوقف میکند تا کاربر قبل از ادامه، پرداخت را انجام دهد.