50درصد تخفیف سورس فروشگاهی دیجی کالا + اپلیکیشن اندروید تا پایان این هفته - کد تخفیف : off50
با تخفیف میخرم

آموزش اتصال به درگاه زرین پال php

  • آپدیت شده در تاریخ

آموزش اتصال به درگاه زرین پال php

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

برای همین توصیه میشه به محض راه اندازی فروشگاه آنلاین و یا اضافه کردن بخش پولی و محصولات به وب سایت یک درگاه پرداخت داشته باشید تا بتوانید بدون وقفه ای, محصولات را بفروش برسانید.

برای ساده تر شدن کار ما از درگاه واسط پرداخت استفاده می کنیم که یکی از آنها ZarinPal است.

مزیت دیگری که درگاه واسط پرداخت دارد این است که شما در صورت قطعی موقت درگاه مستقیم بانکی خود می توانید بدون مشکل از خدمات پرداخت آنلاین رو سایت بهره ببرید که بسیار مهم و ضروی است چرا که در کمپین های تبلیغاتی و یا ایمیل مارکتینگ , بوجود آمدن این مشکل هزینه بر است.

پس در این آموزش قصد داریم به شما نحوه اتصال به درگاه زرین پال php را با یک مثال کاربردی و سورس کد php درگاه زرین پال به شما نمایش بدیم.

دریافت درگاه زرین پال

کافی است یک وب سایت که در آن بخش فروشگاه یا خدمات پرداخت را دارد داشته باشید و بعد ثبت نام و ارسال مدارک , مرچنت کد درگاه پرداخت خود را دریافت کنید.

اتصال به درگاه زرین پال php

به منظور استفاده هرچه راحتر یک نمونه کد ” اتصال به درگاه زرین پال php ” برای ارسال تراکنش و یک نمونه کد برسی تراکنش بعد از برگشت از بانک نوشتم که کار شما رو تا حد زیادی راحت میکنه

در آخر پست از بخش دانلود باکس می توانید سورس کد کامل برای اتصال به درگاه واسط را به همراه دیتابیس و ذخیره سفارشات را دریافت کنید.

config.php – تنظبمات مربوط مربوط به پروژه

کد مرچنت که از درگاه واسط دریافت کردید را وارد کنید. همچنین به جای www.site.com آدرس وبسایت خود را وارد کنید (به همراه فولدر این پروژه)

send.php – ارسال تراکنش به درگاه زرین پال ZarinPal :

در بالا مقدار اصلی $amount است که باید بنابر قیمت محصول خود که از دیتابیس می خوانید به تومان قرار بدید .همچنین بخش Descriptionرو میتونید شماره فاکتور یا نام محصول رو قرار بدید.

بقیه متغییرها اطلاعاتی در مورد سفارش و مشتری است که می توانید خالی قرار بدید

verify.php – جهت برسی نتیجه تراکنش :

همانطور که در بالا دیدید تمام مقدار ها ثابت بودند مثل قیمت و ما هیچ عملیاتی مثل ذخیره سازی اطلاعات سفارش در دیتابیس mysql و همچنین دادن محصول یا لینک دانلود و یا هر خدمت دیگری را انجام ندادیم.

در صورتی که نیاز است قبل از اتصال به درگاه پرداخت ما ابتدا به دیتابیس متصل و قیمت واقعی رو بیرون بکشیم و داخل متغییر$amount قرار بدیم.

بعد از آن یک سطر را در جدول مثلا orders ثبت و id آن سفارش را به صورت یک query string در url بازگشتی (callback.php) قرار بدیم تا هنگام بازگشت کاربر از درگاه, آن id را از url دریافت بر اساس نتیجه تراکنش, وضعیت پرداخت را در جدول orders تغییر بدیم.

همچنین اگر پرداخت موفقیت آمیز بود, محصول را برای کاربر ثبت کنید.

 

بنابراین کد بالا یک مثال ساده از نحوه اتصال و بررسی وضعیت تراکنش بعد از بازگشت بود و در صورتی که مرچنت کد زرین پال را ندارید می توانید بصورت تستی این مورد رو روی هاست تست کنید.

برای همین به جای آدرس های https://zarinpal.com در کدها آدرس https://sandbox.zarinpal.com را جایگزین کنید و همچنین در حالت تست می توانید مقدار $MerchantID را هر کاراکتری که خواستید قرار بدید.

در سورس کد نمونه ما یک دیتابیس و جدول برای ثبت سفارشات کاربر داریم که بنابر آن هنگام بازگشت از درگاه, وضعیت آن را در جدول مورد نظر بروزرسانی می کنیم.

برای دانلود سورس کد آموزش آموزش اتصال به درگاه زرین پال php + کد های نمونه + مستندات PDF به همراه دیتابیس MySQL  به باکس دانلود مراجعه کنید

هر سوالی داشتید از نظرات همین مطلب ارسال کنید. سریعا, پاسخگوی سوالات شما هستیم.

موفق و پیروز باشید.

حسن شفیعی علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم

آموزش های رایگان بیشتر در اینستاگرام ما ...

NETPARADIS /
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۲۲)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. کاظم زارعیان ۱۴ آبان ۱۳۹۹

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

    پاسخ
    1. حسن شفیعی ۱۴ آبان ۱۳۹۹

      سلام.
      حتما در فایل config.php باید اطلاعات دیتابیس خودتان را وارد کنید و همچنین فایل .sql را ایمورت کنید.
      داخل فایل core.php اطلاعات کلاس تابع pdo اتصال به دیتابیس قرار داده شده.
      این مورد تست شده هست و مشکلی از این نظر نداره.
      اگر موردی دیدید دقیق با خطا بفرمایید راهنمایی بشه.
      موفق باشید.

      پاسخ
  2. مهدی ربیعیان ۲۷ اردیبهشت ۱۳۹۹

    سلام خسته نباشید فرض کنید من ربات فروشگاه میخوام بسازم الان کسی از طریق زرین پال پرداخت کرد چطور میتونم کاری بکنم هرکسی برا خودش حساب داشته باشه و این در حساب زخیره بشه؟زخیره بشه منظورم پولی که پرداخت میکنه که اگه چیزی خرید از حسابش کم ششه

    پاسخ
    1. حسن شفیعی ۲۸ اردیبهشت ۱۳۹۹

      سلام. ممنونم.
      باید اعتبار کیف پول ایجاد کنید که خود یک جدول جداست و نیاز داره در هنگام ثبت سفارش هم از این جدول استفاده بشه که userid کاربر سطری هست که اعتبار را به عدد ذخیره می کند.
      در ربات فروشگاه آنلاین خدمات این کار رو انجام دادیم :
      https://netparadis.com/market-telegram-bot-source

      پاسخ
  3. میلاد محمدی ۱۵ فروردین ۱۳۹۹

    سلام وقت بخیر
    من یه چیزیو درست متوجه نمیشم، هنوزم برای اپلیکیشن ام تست نکردم کد رو، فقط میخوام قبل از تست بدونم اگه در خط ۲۱ فایل send.php محتوای verify.php رو قرار بدیم (تا دیگه لازم نباشه دوباره یه شی soapClient بسازیم یا مقادیر مختلف رو مثه همین Authority از طریق GET دریافت کنیم یا config.php رو require کنیم) و نتیجه ی نهایی مد نظرو بفرستیم برای اپلیکیشن بهتر نیس؟

    پاسخ
    1. حسن شفیعی ۱۷ فروردین ۱۳۹۹

      سلام. ممنون.
      بله میتونید هر دو عملیات رو در یک فایل انجام بدید. دلیل اینکه هر دو را در دو فایل جداگانه send.php و verify.php انتقال درک بهتر نحوه پیاده سازی این درگاه است تا دوستانی که تازه شروع کردند بتوانند به راحتی درگاه پرداخت را به پروژه خود اضافه کنند.
      موفق باشید.

      پاسخ
  4. محمدامین مهدویان ۲۳ بهمن ۱۳۹۸

    سلام ببخشید از من ارور
    Fatal error: Uncaught Error: Call to a member function query() on null in C:\wamp64\www\zar\pay.php on line 11

    این رو میگیره من نمیدون متغیر $telegram دقیقا چیه

    پاسخ
    1. حسن شفیعی ۲۴ بهمن ۱۳۹۸

      سلام.
      اطلاعات دیتابیس را باید بدرستی وارد کنید و همچنین جداول رو هم باید داخل دیتابیس ایمپورت کنید.
      موفق باشید.

      پاسخ
      1. محمدامین مهدویان ۲۴ بهمن ۱۳۹۸

        همه این کارا رو انجام دادم ولی مشکل اینجاست که متغیر $telegram اصلا تعریف نشده که چیه

        پاسخ
      2. حسن شفیعی ۲۴ بهمن ۱۳۹۸

        بله الان چک شد درست می فرمایید. این متغییر مربوط به کانکشن دیتابس بود که فایل اصلی آن در فایل zip قرار داده نشده بود.
        الان فایل تغییر کرد مجدد از باکس دانلود فایل جدید را دریافت و استفاده کنید.
        موفق باشید.

        پاسخ
      3. محمدامین مهدویان ۲۴ بهمن ۱۳۹۸

        خیلی از شما ممنونم بابات رسیدگی سریع به مشکلات

        پاسخ
      4. حسن شفیعی ۲۴ بهمن ۱۳۹۸

        خوشحالیم که مفید واقع شده.
        موفق باشید.

        پاسخ
  5. ali ۵ بهمن ۱۳۹۸

    سلام
    چجوری می تونم روی لوکال تست کنم زرین پال رو ؟
    Transaction canceled by user
    مشکل در تأیید جواز امنیتی

    همچین اروری به من نشون میده

    پاسخ
    1. حسن شفیعی ۸ بهمن ۱۳۹۸

      سلام. از ساب دامین sandbox استفاده کنید.
      موفق باشید.

      پاسخ
  6. حسین ۲۰ شهریور ۱۳۹۸

    سلام و درود
    خیلی خوب بود
    ممنون.
    زنده باد

    پاسخ
    1. حسن شفیعی ۲۰ شهریور ۱۳۹۸

      سلام ممنون. خوشحالیم که مفید واقع شده.
      موفق باشید.

      پاسخ
  7. حمید ۲۰ تیر ۱۳۹۸

    دمت گرم ، عالی بود.

    پاسخ
    1. حسن شفیعی ۲۰ تیر ۱۳۹۸

      سلام. خوشحالیم که مفید واقع شده.
      موفق باشید.

      پاسخ
      1. حمید ۲۱ تیر ۱۳۹۸

        همچنین ، فقط یه ‘}’ داخل verify.php بعد از خط ۱۸ کم گذاشتید.

        پاسخ
      2. حسن شفیعی ۲۱ تیر ۱۳۹۸

        این بخش از کد صحیح است و مشکلی ندارد.
        موفق باشید.

        پاسخ
  8. مهدی ۲۹ بهمن ۱۳۹۷

    فوق العاده بود

    پاسخ
    1. حسن شفیعی ۲۹ بهمن ۱۳۹۷

      خوشحالم که مفید واقع شده. موفق باشید.

      پاسخ
دوره های آموزشی

دانلود رایگان کتاب آموزش PHP

صفر تا صد PHP و MySQL را یکجا یاد بگیرید
همین الان دانلود کن
نگران نباشید. ایمیل‌های مزاحم نمی‌فرستیم
close-link