در یکی از پروژه‌های فروشگاهی، بعد از راه‌اندازی سایت، مدیر گفت «همه چیز درست است، فقط درگاه پرداخت کار نمی‌کند». وقتی تست کردیم، درگاه واقعاً کار می‌کرد ولی در برخی سفارش‌ها، بعد از پرداخت موفق، وضعیت سفارش در سایت به‌روز نمی‌شد. ریشه: callback URL درگاه با تنظیمات ووکامرس همراستا نبود. آن پروژه، یادآوری شد که اتصال درگاه پرداخت به ووکامرس، پیچیده‌تر از آن است که در آموزش‌های کوتاه گفته می‌شود. در این مقاله، همان مراحل را با جزئیات اجرا می‌کنیم.

چرا اتصال درگاه حساس است؟

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

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

انتخاب درگاه مناسب

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

  1. پشتیبانی از ووکامرس: افزونه رسمی یا افزونه معتبر از سازنده درگاه.
  2. کارمزد و تسویه: کارمزد تراکنش و سرعت تسویه.
  3. پشتیبانی فنی: در صورت بروز خطا، به چه سرعت پاسخ می‌دهند.

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

پیش‌نیازهای اتصال

پیش از هر اقدامی، این‌ها را آماده کنید:

  • فروشگاه ووکامرس فعال: با محصولات تست.
  • SSL فعال: درگاه‌های پرداخت، بدون HTTPS کار نمی‌کنند. مسیر نصب در نصب و فعال‌سازی SSL.
  • اطلاعات درگاه: Terminal ID، API Key، Merchant ID یا هرچه سازنده درگاه ارائه می‌دهد.
  • محیط staging: اگر دارید، تست اول را آنجا انجام دهید.

نصب و پیکربندی افزونه درگاه

افزونه درگاه را از منبع معتبر نصب کنید. اگر افزونه رسمی از سازنده درگاه است، بهتر است. سپس:

  1. در پیشخوان وردپرس: ووکامرس → تنظیمات → پرداخت‌ها.
  2. روی درگاه مورد نظر کلیک کنید و روی Manage یا Enable بزنید.
  3. اطلاعات درگاه (کلیدها، شناسه‌ها) را در فیلدهای مربوطه وارد کنید.
  4. تنظیمات عنوان و توضیحات را برای کاربر قابل‌فهم بنویسید.
  5. ذخیره کنید.

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

Callback URL و تعامل با ووکامرس

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

آدرس پیش‌فرض معمولاً این شکل است:

https://your-domain.com/?wc-api=WC_Gateway_YourGateway

نکته مهم: این آدرس را با HTTPS ثبت کنید، نه HTTP. و اگر سایت شما روی زیرپوشه است، مسیر را کامل وارد کنید.

در بعضی درگاه‌ها، callback به‌صورت POST یا GET ارسال می‌شود. اگر افزونه شما از POST پشتیبانی می‌کند، در پنل درگاه، روش را روی POST بگذارید؛ امن‌تر است.

تست واقعی سفارش

هرگز درگاه را با یک سفارش تست کوچک، بدون بررسی کامل، روی سایت زنده نبندید. مراحل تست:

  1. یک محصول ارزان قیمت اضافه کنید.
  2. مراحل تسویه‌حساب را با اطلاعات واقعی کامل کنید.
  3. پرداخت را انجام دهید.
  4. پس از پرداخت، بررسی کنید: سفارش در پیشخوان ووکامرس با وضعیت Processing ثبت شده باشد.
  5. ایمیل تأییدیه سفارش ارسال شده باشد.
  6. در پنل درگاه، تراکنش با موفقیت ثبت شده باشد.

اگر یکی از این مراحل ناقص بود، ریشه را پیدا کنید. اگر سفارش ثبت نشده، معمولاً مشکل در callback است. اگر ایمیل نیامده، مسئله SMTP است که در رفع خطای ارسال ایمیل آمده است.

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

حالت تست و محیط sandbox

بعضی درگاه‌ها حالت آزمایشی یا sandbox دارند. اگر درگاه شما این امکان را می‌دهد، حتماً از آن استفاده کنید. در sandbox، می‌توانید بدون تراکنش واقعی، رفتار درگاه را تست کنید. اگر درگاه شما sandbox ندارد، حداقل در محیط staging تست کنید.

رفع خطاهای رایج

چند خطای رایج و مسیر رفعشان:

خطااحتمال
سفارش ثبت نمی‌شود ولی پرداخت انجام شدهCallback URL یا عدم تطابق شناسه
خطای «درگاه فعال نیست»IP سرور در پنل درگاه ثبت نشده
خطای «اطلاعات نامعتبر»کلید اشتباه یا منقضی
صفحه سفید بعد از پرداختخطای PHP در افزونه درگاه
خطای HTTPSSSL فعال نیست یا گواهی نامعتبر

برای رفع خطاهای مرتبط با خود ووکامرس، رفع خطاهای رایج ووکامرس و رفع خطای پرداخت در ووکامرس را ببینید.

نکات امنیتی مهم

درگاه پرداخت، نقطه‌ای حساس است. سه نکته امنیتی که حتماً رعایت کنید:

  • HTTPS اجباری در کل سایت: نه فقط صفحه تسویه. با ریدایرکت 301 از HTTP به HTTPS، همه‌چیز امن می‌شود.
  • ذخیره‌سازی امن کلیدها: کلیدهای API را در فایل‌های قالب یا جاوااسکریپت قرار ندهید.
  • به‌روزرسانی منظم: افزونه درگاه، ووکامرس و وردپرس را به‌موقع آپدیت کنید. حفره‌های امنیتی درگاه‌ها معمولاً در نسخه‌های قدیمی کشف می‌شوند.

برای مرور کلی امنیت فروشگاه، امن‌سازی فروشگاه ووکامرس راهنمای کامل است.

جمع‌بندی

اتصال درگاه پرداخت به ووکامرس، در چهار مرحله انجام می‌شود: انتخاب درگاه مناسب، نصب افزونه معتبر، تنظیم درست callback، و تست کامل با سفارش واقعی. توصیه من این است: پیش از اعلام آماده بودن فروشگاه به مشتری، حداقل سه سفارش تستی با سناریوهای مختلف انجام دهید — پرداخت موفق، پرداخت ناموفق، و بازگشت از درگاه بدون پرداخت. این سه سناریو، بیشتر مشکلات احتمالی را آشکار می‌کنند. اگر در پروژه خودتان با مشکل خاصی در اتصال درگاه روبه‌رو شده‌اید، در دیدگاه‌ها بنویسید. 💳