اتصال به درگاه بانک ملت php

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

بروزرسانی در ۳ بهمن ۱۳۹۷ : افزودن لیست خطاهای درگاه بانک ملت

بروزرسانی در ۲۷ شهریور ۱۳۹۷ : افزودن کلاس PHP جدا و پکیج لاراول درگاه بانک ملت

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

دریافت درگاه بانک ملت

برای دریافت درگاه بانک ملت به سایت به پرداخت تحت مجموعه خود بانک ملت به آدرس زیر مراجعه کنید

ثبت درخواست پذیرندگی

بسته به نوع کسب و کار خود نوع حقوقی و یا حقیقی را انتخاب کنید

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

بعد از ثبت درخواست از شما مدارکی به شرح زیر اخذ می شود .

مدارک مورد نیاز دریافت درگاه بانک ملت

  • مشتریان حقیقی :
    اصل و کپی شناسنامه و کارت ملی مالک سایت
    دارا بودن اسناد تملیکی و استیجاری مرتبط با محل فعالیت
    امکان ارائه مجوزهای رسمی از مراجع ذیصلاح جهت کسب و کار اینترنتی
    دارا بودن آدرس اینترنتی (دامنه) با پسوندهای مجاز نظیر
    .com , .org , .net , .biz , .ir (All .ir SubDomain like .co.ir or .ac.ir and …)
  • مشتریان حقوقی :
    کپی شناسنامه و کارت ملی صاحبان امضا
    نداشتن مطالبات معوق و چک برگشتی در سیستم بانکی کشور
    کپی آگهی تاسیس و آخرین تغییرات شرکت-روزنامه رسمی
    کپی اساسنامه شرکت
    دارا بودن آدرس اینترنتی (دامنه) با پسوندهای مجاز نظیر
  • com , .org , .net , .biz , .ir (All .ir SubDomain like .co.ir or .ac.ir and …)

خوب بعد از آماده سازی این مدارک برروی ثبت درخواست کلیک کنید تا وارد صفحه بعد بشید.

نکته : شما باید یک حساب در بانک ملت داشته باشید که بیشتر از ۴۸ ساعت از افتتاح حساب گذشته باشه

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

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

نکته ۲ : برای دریافت درگاه بانک ملت حتما سایت شما باید نماد اعتماد الکترونیک (اینماد) داشته باشد که هزینه سالیانه آن فقط ۳۵ هزار تومان است.(رایگان شد!) لینک ثبت نام Enamad

نکته خیلی مهم : اطلاعات مربوط به آدرس سایت خود و آی پی فروشگاه اینترنتی خود را وارد نمایید(برای به دست آوردن آی پی راه های متفاوتی وجود داره که بهترین راه تیکت زدن و پرسیدن اون آی پی از مسئول سرورتون که هاست ازش خریدین ، هستش) دقت داشته باشین IP بسیار مهم هست و برای اتصال درگاه به سایت شما نقش اساسی دارد پس IP درست را وارد نمایید.

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

پس از تایید و ارسال فرم یک ایمیل راهنمایی برای شما ارسال می شود که از شما مدارکی را می خواهند که باید بصورت عکس های تکی به ایمیل ضمیمه کنید.بعد از بررسی های نداشتن مطالبات معوق و چک برگشتی در سیستم بانکی کشور و خوش حساب بودن شما پس از طی مراحل اداری حدودا از ۴ روز تا ۱ هفته شایدم بیشتر اطلاعات درگاه براتون ایمیل میشه که شامل شماره ترمینال یوزرنیم و پسورد هستش که در مراحل بعد در کد نویسی آموزش اتصال به درگاه بانک ملت php استفاده خواهیم کرد.

اتصال به درگاه بانک ملت php

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

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

در آخر پروژه فایل nusoap برای اتصال به بانک را برای دانلود قرار دادیم

 

index.php – ارسال تراکنش به درگاه بانک ملت :

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

لیست ارورهای درگاه بانک ملت

Error پیغام
۰ تراکنش با موفقیت انجام شد
۱۱ شماره کارت نامعتبر است
۱۲ موجودی کافی نیست
۱۳ رمز نادرست است
۱۴ تعداد دفعات وارد کردن رمز بیش از حد مجاز است
۱۵ کارت نامعتبر است
۱۶ دفعات برداشت وجه بیش از حد مجاز است
۱۷ کاربر از انجام تراکنش منصرف شده است
۱۸ تاریخ انقضای کارت گذشته است
۱۹ مبلغ برداشت وجه بیش از حد مجاز است
۲۱ پذیرنده نامعتبر است
۲۳ خطای امنیتی رخ داده است
۲۴ اطلاعات کاربری پذیرنده نامعتبر است
۲۵ مبلغ نامعتبر است
۳۱ پاسخ نامعتبر است
۳۲ فرمت اطلاعات وارد شده صحیح نمی باشد
۳۳ حساب نامعتبر است
۳۴ خطای سیستمی
۳۵ تاریخ نامعتبر است
۴۱ شماره درخواست تکراری است
۴۲ یافت نشد Sale تراکنش
۴۳ قبلا درخواست Verify داده شده است
۴۴ درخواست Verfiy یافت نشد
Error پیغام
۴۵ تراکنش Settle (تسویه) شده است
۴۶ تراکنش Settle (تسویه)نشده است
۴۷ تراکنش Settle یافت نشد
۴۸ تراکنش Reverse شده است
۴۹ تراکنش Refund یافت نشد
۵۱ تراکنش تکراری است
۵۴ تراکنش مرجع موجود نیست
۵۵ تراکنش نامعتبر است
۶۱ خطا در واریز
۱۱۱ صادر کننده کارت نامعتبر است
۱۱۲ خطای سوییچ صادر کننده کارت
۱۱۳ پاسخی از صادر کننده کارت دریافت نشد
۱۱۴ دارنده کارت مجاز به انجام این تراکنش نیست
۴۱۲ شناسه قبض نادرست است
۴۱۳ شناسه پرداخت نادرست است
۴۱۴ سازمان صادر کننده قبض نامعتبر است
۴۱۵ زمان جلسه کاری به پایان رسیده است
۴۱۶ خطا در ثبت اطلاعات
۴۱۷ شناسه پرداخت کننده نامعتبر است
۴۱۸ اشکال در تعریف اطلاعات مشتری
۴۱۹ تعداد دفعات ورود اطلاعات از حد مجاز گذشته است
۴۲۱ IP نامعتبر است

محتوای فایل ZIP :

  • دو نسخه هماهنگ با PHP ورژن های ۵٫۶ به پایین و ۷ به بالا در فولدر /purePHP  وجود دارد.
  • کلاس آماده درگاه بانک ملت نیز در فولدر /phpClass  قرار دارد که می تواند آن را در همه جای پروژه فقط با ساختن شی استفاده کنید (نحوه استفاده از این کلاس و یک فایل نمونه از آن همراه سورس کد قرار داده شده است).
  • نسخه مخصوص اتصال به درگاه بانک ملت برای فریموک لاراول نیز در فولدر /Laravel قرار دارد.

برای دانلود سورس کد آموزش اتصال به درگاه بانک ملت php + کد های نمونه + مستندات PDF + کتابخانه nusoap از قسمت زیر اقدام کنید

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۸۸)

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

  1. هاشمیان ۲ خرداد ۱۳۹۹

    ارور ۴۳ رو چجوری برطرف کنیم؟
    بعضی مشتریا وقتی که پرداخت میکنن و پیام موفقیت رو دریافت میکنن ولی بعدش میگه پرداخت با مشکل مواجه شده تا ۷۲ ساعت دیگه به حسابتون برمیگرده .ولی هیچ مشکلی نیس درواقع ، پولم به حسابشون برنمیگرده
    ایا از طرف بانک مشکل داره یا کدنویسی ایراد داره؟ حدس میزنم که بعضیا چون صفحه رو رفرش میکنن بعد از گرفتن پیام موفقیت آمیز این مشکل رو دارن .چون فقط یه تعدادی با این مشکل مواجه شدن.

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

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

      پاسخ
    2. هاشمیان ۳ خرداد ۱۳۹۹

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

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

        در صفحه نمایش نتیجه شما یه ریدایرکت مثلا ۵ ثانیه ای بزارید تا کاربر به صفحه دیگری مثلا پنل کاربری یا صفحه تشکر یا سایت یا صفحه محصول هدایت بشه و فرصت نکنه رفرش کنه

        پاسخ
  2. علی ۳۱ اردیبهشت ۱۳۹۹

    با سلام من مدت ۲ سال کدها رو داخل سایت گذاشتم و کار می کرد ولی چند وقتی هست این خطا رو میده نه هاست و نه بانک هم میگن ایراد از ما نیست منم به کد ها دست نزدم نمی دونم ایراد از کجاست ممنون میشم راهنمایی کنید اینک خطایی که میده Error : HTTP Error: no proper separation of headers and document
    با سپاس

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

      سلام. بخاطر nusoap یا تداخل با ورژن php شما میتونه باشه. سورس کد را مجدد دانلود و بر اساس ورژن php که ۵ یا ۷ است یکی از nusoap ها را جایگزین و مجدد تست کنید

      پاسخ
      1. علی ۱۳ خرداد ۱۳۹۹

        با سلام مجدد ورژن php سایت ۵ هست و soap رو هم وقتی infophp() رو زدم enable هست و سرویس دهنده هاست هم میگه چک کردم مشکلی نداره حتی sample برنامه رو هم از خود بانک گرفتم بارگزاری کردم اون هیچ جوابی نمیده بانک هم میگه شما هیچ لاگی نمی ندازید اصلا به منا وصل نمیشید یعنی سرویس دهنده هم میگه همچی درسته برنامه هم که دست نخورده دیگه واقعا نمیدونم ایراد از کجاست اگه میشه لطف کنید راهنمایی کنید، سپاس

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

        سلام. لطفا با برنامه نویس سایتتون در ارتباط باشید تا مشکل بوجود آمده را حل کنند. چون با وجود مواردی که گفتید باید مشکل خاصی وجود داشته باشد.
        میتونه مشکل از نوع اینکود فایل باشه یا هر نوع مورد دیگری که تا دستی بررسی نشه نمیشه گفت مشکل چی هست
        میتونید روی هاست یک فایل جدا مثلا test.php بسازید و بعد کدهای بخش index.php – ارسال تراکنش به درگاه بانک ملت : داخلش قرار بدید و بعد اطلاعات ترمینال رو که جایگزین کردید یک تراکنش تستی انجام بدید ببینید متصل میشه یا خیر البته چون نیاز به nusoap هم دارید میتونید از دانلود باکس دریافت و کنار این فایل تستی قرار بدید (بنابر ورژن php از یکی از فولدر ها بردارید.)

        پاسخ
      3. علی ۱۳ خرداد ۱۳۹۹

        برنامه نویسی رو خودم انجام دادم الانم کاری که گفتید رو انجام دادم بازم همون پیغام رو داد فقط چیزی که هست من مطمئنم ایراد از سمت سرور هست ولی اونا میگن مشکلی نیست و اگر تنظیماتی می خواید بگید تا ما انجام بدیم خلاصه خیلی گیج کننده است در هر صورت خیلی ممنون

        پاسخ
  3. مهدی خانزادی ۱۷ اردیبهشت ۱۳۹۹

    سلام. اگه از لاراول استفاده میکنید یه نگاهی به پکیج زیر بندازید. تمام درگاه های بانکی کشور رو تقریبا ساپورت میکنه

    https://github.com/shetabit/payment

    پاسخ
  4. رسا ۱۵ اردیبهشت ۱۳۹۹

    خب الان چطور میشه ازش استفاه کرد

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

      بنابر ساختار پروژه باید به کدهای php خود بخش هدایت به درگاه در بخش ثبت سفارش اضافه کنید

      پاسخ
  5. مهدی ۴ اردیبهشت ۱۳۹۹

    سلام. من die_dump میگیرم (همون dd) توی لاراول، همه چی اوکی هست و ResCode صفر دریافت می‌کنم. اما به درگاه هدایت نمیشه! باید کاری کنم که به درگاه بره؟

    پاسخ
  6. مهدی ۲ اردیبهشت ۱۳۹۹

    برای من عدد ۲۱ رو return می‌کنه. مشکل چیه؟

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

      پذیرنده نامعتبر است. اطلاعات درگاه را بدرستی وارد نکردید

      پاسخ
      1. مهدی ۳ اردیبهشت ۱۳۹۹

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

        پاسخ
  7. نظری ۲۵ فروردین ۱۳۹۹

    سلام. بنده به برنامه نویس قبلی شرکت دسترسی ندارم. یکی از سایتهایمان هنگام اتصال به درگاه بانکی ارور “مبلغ نامعتبر می باشد” میدهد. قبل از این درست کار میکرده.ما تغییرات در سورس نداشتیم فقط هاستمان مشکل پیدا کرده بود. با بانک مکاتبه کرده اند، گفتند: اخطار از سمت برنامه نویسی سایت است. اطلاعات کمی از php میدانم. لطفا راهنمایی بفرمایید.

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

      سلام. نمیشه نظر خاصی داد. باید روی هاست برنامه تست و خطایابی بشه

      پاسخ
      1. نظری ۲۵ فروردین ۱۳۹۹

        ممنونم. مثلا چه تستی؟ چند ارور جزیی هم در سایر سایت ها داشتیم که به پرمیشن مربوط بود. درست که کردیم، اوکی شد.

        پاسخ
      2. حسن شفیعی ۲۶ فروردین ۱۳۹۹

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

        پاسخ
  8. محمد معین ۲۱ فروردین ۱۳۹۹

    سلام میلاد صفحه پرداخت در کدوم قسمت سورس هست ؟
    از این سورس چجوری استفاده کنیم؟
    لاراول هم لازمه ؟
    لطفا راهنمایی کنید؟
    خیلی ممنون

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

      سلام. اگر از لاراول استفاده می کنید نیاز نیست.
      داخل فولدر purePHP دو بخش وجود دارد که بنابر ورژن php خودتون یکی رو انتخاب و استفاده کنید.

      پاسخ
  9. حسین ۱ دی ۱۳۹۸

    سلام خسته نباشید
    من برای گرفتن درگاه توی فرم بانک یه آدرس call back و پورت call back را میخام.میشه راهنمایی کنید بگین اینا چی هست واز کجا پیداش کنم؟؟؟
    ممنونم

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

      سلام ممنون.
      آدرس کال بک همان آدرس سایتتون است و پورت هم که میتونید ۸۰ بزارید.
      موفق باشید.

      پاسخ
      1. حسین ۱ دی ۱۳۹۸

        ممنونم .لطف کردین

        پاسخ
  10. اتصال کوتاه ۲۱ آذر ۱۳۹۸

    سلام
    داکیومنت خود بانک ملت ناقص هست
    در بخش وریفای تراکنش پیشنهاد میکنم که از در ابتدا از تمام داده های POSTشده از طرف بانک استفاده نمایید
    بانک داده های بیشتری از انچه که در داکیومت موجود هست از درگاه به سایت پذیرنده POST میکند که برای اعتبار سنجی واطمینان از عدم وجود اقدام غیر مجاز کاربران جلوگیری کرده

    پاسخ
  11. شهروز ۱۲ آبان ۱۳۹۸

    سلام
    اگر بخوام از پکیج شما برای نوشتن api در لاراول استفاده کنم امکانش هست؟
    api مربوط به پرداخت نهایی که به سمت بانک فرستاده میشه چطور انجام میشه؟

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

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

      پاسخ
      1. شهروز ۱۸ آبان ۱۳۹۸

        ممنون
        بله اون پکیج رو دیدم، ولی اینجوری که بخوایم api بنویسیم به نحوی که view نداشته باشه و فقط api نوشته شده ی ما، از طرف اندروید یا ios صدا زده بشه… به این شکل امکانش هست؟

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

        این آموزش ها رو باید مطالعه کنید : https://netparadis.com/?s=api
        موفق باشید.

        پاسخ
  12. امیرحسین آقاجانی ۶ آبان ۱۳۹۸

    با تشکر از آموزش خوبتون!
    اگر بخوام از یه درگاه دیگه استفاده کنم چطور میتونم موقه برگشت یه value برگردونم که بفهمم مال یه سایت دیگس ؟
    هر دو سایت مال خودم هست!

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

      سلام. خوشحالیم که مفید واقع شده.
      هنگام ارجاع کاربر به بانک می توانید در callback url یک کویری استرینگ بصورت مثلا gateway=mellat تعریف کنید و هنگام بازگشت از بانک بخوانید و عملیات موردنظر را پیش ببرید.
      موفق باشید.

      پاسخ
      1. امیرحسین آقاجانی ۹ آبان ۱۳۹۸

        مشکل حل شد! خیلی ممنونم.

        پاسخ
  13. farhad ۲ مرداد ۱۳۹۸

    سلام برای اتصال سایت جوملایی به درگاه پارسیان کد آماده وجود داره؟یا همین کدها رو میشه تغییر داد؟

    پاسخ
    1. حسن شفیعی ۲ مرداد ۱۳۹۸
  14. محمدرضا اکبرپور ۱۱ بهمن ۱۳۹۷

    سلام وققتون بخیر
    من از لاراول استفاده میکنم وقتی که درخواست با موفقیت ارسال میشه بعد از اینکه پرداخت رو انجام میدم در مرحه وریفای ۲ تا پارامتر از طریق متد پست به آدرس کالبک ارسال میشه خب مشکل اینجا شروع میشه همرا متد پست باید csrf هم ارسال بشه . خب برای این موضوع چکاری باید انجام بدم تا با خطا مواجه نشم

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

      سلام ممنون.
      نیاز نیست از csrf استفاده کنید چرا که شماره سفارش و پارامتر دیگری که برگشت داده میشه اگر در جدول ذخیره می کتید (که حتما باید ذخیره شود) به راحتی قابل اعتبارسنجی است و نیازی به افزودن توکن به فرم و هدرها نیست.

      پاسخ
    2. علی ۱۸ آذر ۱۳۹۹

      باید توی میدلور VerifyCsrfToken تو قسمت $except اون route رو استثنا کنید.

      پاسخ
  15. 916517 ۱۱ بهمن ۱۳۹۷

    منظورتون اینه که پکیج های
    {
    “require”: {
    “illuminate/support” : “^5.2”,
    “econea/nusoap”: “v0.9.5.*”
    },
    “autoload”: {
    “psr-0”: {
    “NetParadis\\BankMellatPaymentService\\”: “src”
    }
    }
    }
    به فایل کامپوزر دات جیسون پروژه لاراول ضمیمه کنم ، تا با دستور کامپوزر آپدیت پکیج ها نصب بشن؟
    در این صورت که دو فایل اصلی (mellat-bank-netparadis/Laravel/src/BankMellatPayment.php و سرویس پروایدر) به پروژه لاراول ایمپورت نمیشن تا من از کلاس BankMellatPayment با متد های مختلفش استفاده کنم؟

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

      بله با کامپوزر میتونید به راحتی میتونید نصب کنید و نیاز به افزودن جداگانه فایل ها در پروژه نیست و بصورت خودکار از سمت سرور دانلود می شوند.

      پاسخ
  16. 916517 ۱۱ بهمن ۱۳۹۷

    ممنون بابت زحمات
    تا جایی که من متوجه شدم:
    ۱٫ استخراج فایل
    ۲٫ استفاده از کامپوزر داخل پوشه لاراول (پوشه لاراولی که درون فایل شما قرار داره) برای نصب پکیج ها
    ۳٫ انتقال پیکیج های نصب شده به پوشه وندور پروژه لاراول
    ۴٫ انتقال فایل src/config/BankMellatPayment.php به laravel/config
    ۵٫ انتقال محتویات فایل README.md (البته به جز چند خط توضیح ابتدا فایل) به laravel/.env
    ۶٫ جایگذاری اطلاعات دریافت شده از بانک به جای داده های نمونه انتقال داده شده به فایل laravel/.env

    اما مواردی که متوجه نشدم :
    ۱٫ محل قرار گیری فایل mellat-bank-netparadis/Laravel/src/BankMellatPayment.php
    ۲٫ محل قرار گیری فایل mellat-bank-netparadis/Laravel/src/BankMellatPaymentServiceProvider.php
    ۳٫ نحوه استفاده (یعنی اگه امکانش هست یک مثال برای نحوه استفاده در لاراول با استفاده از کلاس BankMellatPayment و متدی که گفتید قرار بدید)

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

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

      همینکه از composer استفاده کنید بصورت خودکار برای شما نصب میشه و کافیه هر کجا که لازم بود کلاس رو لود و استفاده کنید.
      اگر هم دستی اضافه می کنید که باید هنگام استفاده از متد ها از use استفاده کنید که این موارد رو در صورتی که از کامپوزر استفاده کردید و ویرایشگر حرفه ای مثل phpstorm داشته باشید به راحتی تشخیص داده میشه.
      برای استفاده از درگاه نیز باید از کلاس BankMellatPayment و متد paymentRequest بهره ببرید و هنگام بازگشت از بانک نیز در صفحه کال بک از متد verifyPayment استفاده کنید.

      موفق باشید.

      پاسخ
  17. hamed ۷ بهمن ۱۳۹۷

    با سلام
    ارور ۴۱۸ میده ! مشکل از کجاست ؟

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

      سلام. ارور ۴۱۸: اشکال در تعریف اطلاعات مشتری
      مشکل از سمت به پرداخته با پشتیبان تماس بگیرید تا مشکل رو حل کنند.

      پاسخ
  18. بهمن ۷ بهمن ۱۳۹۷

    ممنون، تست کردم و خطای ۴۱۸ گرفتم. با پشتیبان به پرداخت تماس گرفتم، مشکل از سمت به پرداخت بود. بازم تشکر

    پاسخ
  19. بهمن ۵ بهمن ۱۳۹۷

    نسخه php سازگار با whmcs من ۵٫۶ هست. ولی با PHP های مختلف تست کردم و فایل های ۷٫x و ۵٫x که قرار داده بودید رو هم تست کردم، هیچ کدوم از حالت ها جواب نگرفتم. ولی مثلاً در php ورژن ۵٫۶ nusoap.php شما رو جایگزین کردم، بعد از پیغام “امکان اتصال وجود ندارد، لطفا دوباره تلاش کنید” warning برطرف شد. مشکل از چی هست به نظرتون؟
    تشکر

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

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

      پاسخ
  20. بهمن ۵ بهمن ۱۳۹۷

    ممنون مهندس
    این فایل رو آپلود کردم و اطلاعات درگاه رو داخل فایل config قرار دادم، موقع پرداخت صورتحساب پیغام “امکان اتصال وجود ندارد، لطفا دوباره تلاش کنید” نمایش داده می شود و بعد خطای زیر رو نمایش میده:
    Warning: Creating default object from empty value in /home3/…/public_html/fa/modules/gateways/Mellat/lib/nusoap.php on line 74
    این خطا برای چی هست؟

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

      خواهش می کنم. این ارور مربوط به نسخه php روی هاست است و یا باید ورژن رو بالا پایین کنید یا در فولدر lib این ماژول nusoap.php متناسب با هاست خودتون رو جایگزین کنید.
      دو نسخه متفاوت از nusoap رو در باکس دانلود همین مقاله در پوشه های مختلف قرار دادیم که میتونید دانلود و جایگزین و تست کنید.
      موفق باشید.

      پاسخ
  21. بهمن ۴ بهمن ۱۳۹۷

    سلام مهندس، ممنون بابت زحماتت
    تو WHMCS چطور میتونم از این کدها استفاده کنم؟

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

      سلام. در WHMCS نیاز است که با ماژول نویسی این CMS آشنا بشید.
      به هر حال نسخه سالم درگاه ملت آپلود شدکه میتونید استفاده کنید
      http://s9.picofile.com/file/8350038426/whmcs_mellat.zip.html

      داخل فولدر gateways\Mellat و فایل config.php اطلاعات درگاه را وارد کنید و کل فایل های فولدر gateways موجود در فایل Zip را داخل فولدر modules/gateways موجود در whmcs از طریق هاست آپلود کنید تا درگاه ملت به بخش درگاه های پرداخت اضافه بشه.

      موفق باشید.

      پاسخ
  22. علیرضا ۴ بهمن ۱۳۹۷

    ببینید اول باید یه اطلاعاتی به index.php ارسال بشه بعد اون صفحه هم اتوماتیک وصل میشه به سایت بانک . چیکار کنم که کسی نتونه amount رو دستکاری کنه ؟ من الان مقدار amount رو با فرم html ساده میفرستم اشکال داره ؟

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

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

      موفق باشید.

      پاسخ
  23. محمد ۹ دی ۱۳۹۷

    سلام لطفا یه راهنمایی بکنید و توضیح بدید برای استفاده از نمونه کد لاراول

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

      سلام. کار بسیار ساده هستش ابتدا فولدر را اکسترکت کنید
      بعد با استفاده از کامپوزر بسته رو نصب کنید
      https://netparadis.com/what-composer-in-php/
      و اطلاعات داخل README.md را که مشخص شده داخل فایل .env خودتون قرار بدید و اطلاعات مربوط به ترمینال و غیره را تغییر بدید.

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

      موفق باشید.

      پاسخ
  24. Milad ۱۱ آبان ۱۳۹۷

    باسلام و خسته نباشید خدمت شما. چطور میشه از قسمت additionalData در قسمت پارامترها استفاده کرد درواقع اطلاعات کاربر رو داخلش قرار بدیم و در موقع برگشت از درگاه بانک اطلاعات کاربر رو بهمون برگردونه تا در دیتابیس قرار بدیم.
    اضافه کنم که additionalData رو به صورت آرایه مینویسم و در داخل آرایه پارامتر قرار میدم ولی خطای زیر میاد:
    [faultstring] => Unmarshalling Error: unexpected element (uri:””, local:”names”). Expected elements are (none)
    چطور این مشکل حل بشه؟

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

      سلام ممنونم.
      مقدار additionalData را باید بصورت رشته (string) قرار بدید نه آرایه ای . با قرار دادن یک رشته متنی “” این ارور رفع میشه. اطلاعاتی که داخل این پارامتر قرار میدید بصورت فرضی توضیحات تکمیلی سفارش است نه کاربر و این اطلاعات رو شما فقط به سمت بانک پاس می دیدید و در هنگام بازگشت برای شما ارسال نمی شوند و در واقع این اطلاعات داخل دیتابیس بانک و برای این سفارش ذخیره میشه و تمام.

      اگر قصد دارید اطلاعات برگشتی از بانک مثل شماره کارت کاربر و موارد غیره رو بگیرید لطفا در صفحه اعتبارسنجی یکبار $_POST را var_dump بگیرید تا ایندکس این اطلاعات برگشت داده از بانک را پیدا و در صورت نیاز ذخیره کنید.

      موفق باشید.

      پاسخ
  25. ali ۳ آبان ۱۳۹۷

    در فایل index.php ، متد $mellat->startPayment(‘2000’, ‘https://netparadis.com’); مارو به صفحه بانک میفرسته چطور متد بعدی یعنی $mellat->checkPayment($_POST); اجرا میشه در حالی که از ایندکس خارج شدیم؟

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

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

      /**
      * تایید تراکنش
      */

      به فایل دیگری مثلا verify.php انتقال بدید تا بعد از برگشت از بانک با مشخص کردن آدرس فایل verify در callback عملیات اعتبارسنجی انجام بشه.

      همچنین در تک فایل می توانید با قرار دادن یک سری موارد مثل action و $_GET تمام عملیات را در یک فایل مدیریت کنید که اگر آشنا نیستید بهتره هر دو بخش ارسال به صفحه بانک و وریفای رو جدا کنید.

      موفق باشید.

      پاسخ
  26. علی ۳۰ مهر ۱۳۹۷

    سپاس فراوان

    پاسخ
  27. علی ۳۰ مهر ۱۳۹۷

    وریفای باید در آدرسی که به عنوان callBackUrl میدیم انجام بشه؟

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

      سلام . بله . آدرسی که در callBackUrl مشخص می کنید رو بانک دریافت و اطلاعات تراکنش انجام شده را به آن ارسال می کند و شما بر اساس اطلاعات دریافتی از سمت بانک صحت تراکنش (verify) را بررسی می کنید .
      موفق باشید.

      پاسخ
  28. علیرضا ۲۶ مهر ۱۳۹۷

    سلام و عرض ادب

    ممنون بابت آموزش خوبتون . فقط یک سوال داشتم . میخواستم بدونم آیا میشه برای دیگر درگاه های پرداخت مثل ملی ، پاسارگاد و پارسیان از این نمونه کد ملت استفاده کنیم ؟ تشکر

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

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

      بانک ملی : https://netparadis.com/melli-bank-sadad-gateway-php
      بانک پارسیان : https://netparadis.com/parsian-bank-gateway-php

      سعی میشه برای بانک پاسارگارد هم این مورد اضافه بشه

      موفق باشید.

      پاسخ
  29. امیر ۱۸ شهریور ۱۳۹۷

    سلام. بدست آوردن IP با Ping مشکلی نداره؟

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

      سلام . بله مشکلی نیست ولی بهتر است برای اطمینان از هاستینگ بپرسید چرا که بعضی سرورها مثل میهن وبهاست رنج IP سرور برای پرداخت آنلاین متفاوت دارند.

      موفق باشید.

      پاسخ
  30. امیرحسین آقاجانی ۹ شهریور ۱۳۹۷

    سلام!
    ممنون از آموزش خوبتون ولی من با Error : 421 مواجه شدم!
    کجای کار ایراد داره ؟

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

      سلام . بهتر است داکیومنتی که همراه سورس قرار داره رو بررسی کنید

      ۴۲۱ : آدرس IP نا معتبر است.

      با پشتیبانی به پرداخت در ارتباط باشید تا مشکل رو حل کنند.

      موفق باشید.

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