اتصال به درگاه بانک ملت 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. امید اقاخانی ۱۹ مهر ۱۴۰۳

    سلام دوست عزیز ممنون از پستی که ارسال کردید
    ما یه مشکل خیلی بزرگ داریم و هفته هاس که حل نمیشه
    ما از هر ۵ درخواست بانک ملت، ۴ تاشون توی مرحله بعد وارد کردن کارت بانکی، پیام زیر رو میده
    خطای منتظره:
    متاسفانه دسترسی شما به این صفحه امکان پذیر نمی باشد.
    در صورت تمایل به پرداخت، از طریق یکی از فروشگاه های اینترنتی طرف قرارداد شرکت PSP اقدام نمائید.

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

    پاسخ
    1. حسن شفیعی ۲۵ مهر ۱۴۰۳

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

      پاسخ
  2. Esmaeil ۶ آذر ۱۴۰۲

    سلام. منظور از ref id چی هست؟ ref مخففه چیه؟

    پاسخ
    1. حسن شفیعی ۷ آذر ۱۴۰۲

      سلام. reference یعنی کدی که با ان تراکنش پیگیری میشه

      پاسخ
  3. مهدی ۳۰ مهر ۱۴۰۲

    درود و عرض ادب
    ببخشید من تمام پارامترها رو درست برای درگاه بانک ارسال می کنم، متأسفانه به جای اینکه وارد درگاه بشه که شماره کارت و … را وارد کنیم این ارور رو میده “شماره ارجاع ارسال نشده. با پذیرنده فروشگاه اینترنتی تماس بگیرید” در صورتی که من refId هم به درستی دارم ارسال می کنم. مشکل از چی می تونه باشه؟ ممنون

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

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

      پاسخ
  4. سعید عباسی ۲۹ خرداد ۱۴۰۲

    سلام استاد شرمنده هنوزم این درگاه کار می کند.

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

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

      پاسخ
  5. فرشید ۱۵ فروردین ۱۴۰۲

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

    پاسخ
    1. حسن شفیعی ۱۶ فروردین ۱۴۰۲

      سلام. ممنون
      میتونید این پکیج رو برای لاراول نصب کنید
      https://packagist.org/packages/tohidplus/mellat

      پاسخ
      1. Farshid PC ۱۷ فروردین ۱۴۰۲

        سلام جناب شفیعی ممنون که راهنمایی میکنی
        من از این پکیج استفاده کردم به بانک فرستادن مشکلی ندارم ولی نمیدونم روت paypalverify رو چطور تنظیم میکنم که بازگشتی این خطا رو میده:
        The POST method is not supported for route paypalverify. Supported methods: GET, HEAD.
        روتی که تنظیم کردم اینه:
        Route::get(‘/paypalverify’, [SuddenlyController::class, ‘paypalverify ‘])->name(‘paypalverify’);
        و کنترلی که نوشتم:
        to(‘/paypalverify’));

        Mellat::set(10000);

        return Mellat::redirect(function($message){
        // خطا هنگام ارجاع کاربر به درگاه بانکی
        //dd($message);
        });
        }

        public function paypalverify(Request $request)
        {
        return Mellat::verify(
        function ($log){
        // تراکنش موفق
        //dd($log);
        return ;
        },function ($log){
        // تراکنش ناموفق
        //dd($log);
        });

        }
        }

        پاسخ
      2. حسن شفیعی ۱۷ فروردین ۱۴۰۲

        روت شما get هست و اشتباهه باید post باشه

        Route::post(‘/paypalverify’, [SuddenlyController::class, ‘paypalverify ‘])->name(‘paypalverify’)

        پاسخ
  6. محمد ضرغامی ۳ آذر ۱۴۰۱

    درخواست درگاه ملت

    پاسخ
    1. حسن شفیعی ۳ آذر ۱۴۰۱

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

      پاسخ
  7. Mahdi-S ۸ فروردین ۱۴۰۱

    دریافت آی پی هاست

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

      سلام. به هاستینگ خود اطلاع بدید

      پاسخ
  8. ساشا ۱۲ اسفند ۱۴۰۰

    سلام. لینک برام ارسال نشد !!

    پاسخ
  9. mehdi ۳ بهمن ۱۳۹۹

    سلام من همین توابع رو برای درگاه به پرداخت به کار بردم اما زمانی که پرداخت انجام میشه و به صفحه verify برمیگرده خطا ۵۰۰ میده میشه لطفا راهنمایی کنید؟

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

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

      پاسخ
  10. آرش ۱ بهمن ۱۳۹۹

    سلام-عالی بود کد ها
    فقط مهندس جان
    موقع پرداخت انجام شد و قتی که پیام داد
    The transaction was successful
    ۲ مورد بسیار مهم کم داره
    که بتونیم با اون دیتابیس اپدیت کنیم
    ۱-شماره ارجاع/پیگیری چه جوری نشون بدیم؟(چه کدی در صفحه ورفای بزاریم؟)
    ۲- شماره orderId و payerid از صفحه قبل چجوری تو این صفحه نشون بدیم(چه کدی در صفحه ورفای بزاریم؟)

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

      سلام.
      متغییر $verifySaleReferenceId کد پیگیری هستند که میتونید echo کنید و متغییر $orderId همان شماره سفارشی هست که هنگام ارجاع کاربر به درگاه باید با mt_rand ایجاد و در دیتابیس ذخیره می کردید که باز می تونید این متغییر رو echo کنید.

      پاسخ
  11. ک ۳۱ شهریور ۱۳۹۹

    BankMellatpayment.php و BankMellatpaymentServiceProvider.php در کدام پوشه ها باید قرار گیرد؟

    پاسخ
  12. کیانا کاویانی ۳۰ شهریور ۱۳۹۹

    سلام
    برای لاراول چطور باید استفاده بشه؟
    پوشه رو دانلود کردم اما توضیحی نداره.
    ممنون میشم راهنمایی کنید.

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

      سلام. فایل README.md رو بخونید و همچنین از composer,json مقدار رو به فایل خود اضافه کنید و src هم کاملا مشخصه که به پکیج هاتون باید اضافه کنید

      پاسخ
  13. نوید محمدیان ۱۳ شهریور ۱۳۹۹

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

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

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

      پاسخ
  14. سمیرا ۴ مرداد ۱۳۹۹

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

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

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

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

    سلام ممنون از راهنمایی شما. ممکنه بگید ترمینال آیدی و Payer آیدی چی هستند اینجا؟

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

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

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