پرداخت ناموفق در گوگل کروم و حل مشکل Session
مشکلی که چند ماهی ما و کاربران وردپرسی با آن دستوپنجه نرم میکردیم، مشکل پرداختهای ناموفق ایزی دیجیتال دانلودز و ووکامرس با نسخه جدید گوگل کروم بود. تمام پرداختهایی که با درگاههای پرداخت بانکی مثل بهپرداخت ملت و پرداخت سامان انجام میشد. به دلیل استفاده از SoapClient با پیام عدم دریافت اطلاعات پرداخت مواجه میشدند. این مشکل فقط در نسخه جدید گوگل کروم وجود داشت و باید مشکل پرداخت ناموفق در گوگل کروم را با هر روش ممکن برطرف میکردیم.
فقط در نسخه جدید گوگل کروم!
این مشکل فقط در مرورگر گوگل کروم نسخه ۸۴ به بعد نمایش داده میشد و در مرورگر هایی نظیر فایرفاکس هیچ مشکلی با پرداخت نداشتیم. پس نتیجه گرفتیم که مشکل از گوگل کروم هست.
چند ماهی درگیر این قضیه بودیم. از سایتهای خارجی و فرومهای پشتیبانی وردپرس و گوگل کروم تا سایتهای ایرانی خدمات دهنده هاستینگ را بررسی کردیم. چندتا از ارائه دهندههای هاستینگ عزیز هم پیشنهاد کردند با مبلغی حدود ۳۰۰ هزار تومان مشکل را بررسی و حل خواهند کرد. اما مسئله مبلغ نبود. میخواستیم این مشکل را پیدا کنیم و بهعنوان یک مرجع وردپرس فارسی راهحل را در اختیار شما عزیزان قرار دهیم.
بررسی تغییرات نسخه جدید گوگل کروم
در نتیجه تصمیم گرفتیم به سراغ Changelog گوگل کروم برویم و ببینیم در نسخههای جدید کروم چه قابلیتها و تغییراتی اضافه شده. به موضوعی برخوردیم که مربوط به امنیت بیشتر گوگل کروم بود. بله دوستان گوگلی قابلیتی به گوگل کروم اضافه کرده بودند که باعث میشد برای امنیت کاربر، اگر شما کاربری را به سایت دیگری منتقل کنید و آن وبسایت بیش از ۲۰ ثانیه کاربر را نگهدارد، بعدکه کاربر به سمت سایت شما آمد، تمام سشنها از نو نوشته میشود.
Session چیست
Session در واقع متغیری خاص از کوکی هست که در مرورگر ذخیره میشود تا بررسی کنیم که این کاربر مهمان که روی سایت ما خرید انجام داد، با این session خاص که در مرورگرش ذخیره شده همان شخصی هست که قبلا از سایت ما به درگاه پرداخت ارجاع داده شده. وقتی کاربر در سایت ما لاگین نکرده باشد، با کوکی و سشن میتوانیم مقادیری را برای شناسایی آن کاربر در نظر بگیریم.
حالا که کروم سشنهای کاربر ما را حذف میکرد، طبیعتا کاربر ما نمیتوانست خرید خود را تکمیل کند. چراکه اصلا Easy Digital Downloads یا ووکامرس این کاربر را تشخیص نمیداد.
حل مشکل پرداخت ناموفق در گوگل کروم
برای حل این مشکل کافیست این قابلیت گوگل کروم را برای سایت خود غیر فعال کنیم. البته غیرفعال کردن این قابلیت نیاز به تغییر Rule های وب سرور شما دارد که اینکار باید توسط هاستینگ انجام شود. اما راه دیگری در وردپرس هست که به آن Define کردن میگوییم. کافیست کد زیر را در خط ۲ فایل wp-config.php قرار دهید تا مشکل برای همیشه حل شود.
define( 'WP_SAMESITE_COOKIE', 'None' );
به همین راحتی. شما مشکل پرداختهای ناموفق در نسخه جدید گوگل کروم را حل کردید.
موفق باشید.
نوشته پرداخت ناموفق در گوگل کروم و حل مشکل Session اولین بار در بیست اسکریپت. پدیدار شد.