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

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

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

بروزرسانی در ۱۶ مرداد ۱۳۹۷ : افزودن نسخه هماهنگ با +۷ php

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

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

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

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

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

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

بعد از ثبت درخواست  و تایید به شما ۳ نوع اطلاعات اختصاص می یابد :

  1. شماره پذیرندگی (MerchantId)
  2. شماره ترمینال (TerminalId)
  3. کلید تراکنش (TerminalKey)

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

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

  • مشتریان حقیقی :
    اصل و کپی شناسنامه و کارت ملی مالک سایت
    نداشتن مطالبات معوق و چک برگشتی در سیستم بانکی کشور
    دارا بودن اسناد تملیکی و استیجاری مرتبط با محل فعالیت
    امکان ارائه مجوزهای رسمی از مراجع ذیصلاح جهت کسب و کار اینترنتی
    دارا بودن آدرس اینترنتی (دامنه) با پسوندهای مجاز نظیر
    .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

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

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

در اینجا به جای nusoap از CURL برای ارسال درخواست تراکنش استفاده می کنیم که به عنوان یک تابع در فایلfunction.php تعریف شده است.

نکته : اگر از php ورژن ۷ و به بالا استفاده می کنید به جای function.php فایل function.v7.php را فراخوانی کنید چرا که تابع mcrypt_* مربوط به رمزنگاری در نسخه های جدید php حذف شده است و جایگزین آن از OpenSSL_encrypt استفاده کردیم

برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود

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

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

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

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

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

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

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

  1. طه اخلاق ۱۴ اسفند ۱۴۰۲

    stdClass Object ( [ResCode] => -1 [Token] => [Description] => عملیات ناموفق بود )
    به من این ارور رو میده
    مشکل چی هستش ؟

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

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

      پاسخ
      1. طه اخلاق ۲۵ اسفند ۱۴۰۲

        نه قبلش

        پاسخ
  2. علی ۲۷ تیر ۱۴۰۲

    سلام تمام موارد اوکی هست داخل postman ادرس رو میزنم اوکیه صفحه بانک باز میشه
    ولی وقتی داخل مرورگز همون ادرس رو میزنم خطای زیر رو میده
    “آدرس هدایت شده برای پرداخت ، در محدوده آدرس های اعلام شده از طرف پذیرنده نمی باشد .لطفا مسئول فني پذيرنده با بانک تماس حاصل فرمايند”

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

      سلام. درخواست احتمالا بصورت post هست وقتی از مرورگر میزنید بصورت get هست و قابل قبول نیست

      پاسخ
      1. alaaaaaaa ۲۸ تیر ۱۴۰۲

        سلام هم post – get هر دو postman اوکی هست
        میتونه واسه این باشه چون مستقیم ادرس ور میزن broswer اجرا میشه باشه؟
        یا باید حتما از طریق یه دکمه داخل صفحه ارسال بشه – یعنی روی دکمه کلیک کنن

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

        مقادیری که همراه با ادرس ارسال میشه مهمه

        پاسخ
  3. azad ۱۸ خرداد ۱۴۰۲

    سلام من میتونم بصورت شخصی برای شما پیام بدم ادرس تلگرام یا موبایل

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

      سلام از بخش ارتباط با مای سایت میتونید پیام بدید

      پاسخ
  4. امین ۳۰ آبان ۱۳۹۹

    سلام
    من درگاه بانک ملی برای ووکامرس قرار دادم اما بعد از ثبت سفارش به سایت بانک منتقل نمیشه میتونید راهنمایی کنید؟؟

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

      سلام.
      از اقزونه اصلی خود بانک ملی برای ووکامرس استفاده کنید
      https://github.com/SadadPsp-Lab/WooCommerce/archive/master.zip
      موفق باشید.

      پاسخ
      1. امین ۱ آذر ۱۳۹۹

        از همین مورد هم استفاده کردم جواب نداده

        پاسخ
  5. ابوالفضل ۱۴ مهر ۱۳۹۹

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

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

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

      پاسخ
      1. ابوالفضل ۱۴ مهر ۱۳۹۹

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

        پاسخ
  6. عاطفه ۲۵ مرداد ۱۳۹۹

    سلام
    خسته نباشید
    موقع اتصال به درگاه پرداخت با پیغام زیر مواجه میشم
    “آدرس هدایت شده برای پرداخت ، در محدوده آدرس های اعلام شده از طرف پذیرنده نمی باشد .لطفا مسئول فني پذيرنده با بانک تماس حاصل فرمايند”
    مشکل از کجا میتونه باشه؟ تمام اطلاعات رو درست وارد کردم
    ممنون میشم راهنماییم کنید

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

      سلام. ممنون.
      مطمین شوید که آدرس کالبک با آدرس دامنه شما یکی باشه و مشکل میتونه از این مورد باشه

      پاسخ
      1. عاطفه ۲۵ مرداد ۱۳۹۹

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

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

        خیر. مشکلی نیست ولی به هر حال شما باید کد php رو جدا تست کنید و بعد ببرید روی اپلیکیشن.

        پاسخ
      3. عاطفه ۲۶ مرداد ۱۳۹۹

        بله درسته.
        واقعا نمیدونم باید چیکار کنم. همش پیغام “آدرس هدایت شده برای پرداخت ، در محدوده آدرس های اعلام شده از طرف پذیرنده نمی باشد .لطفا مسئول فني پذيرنده با بانک تماس حاصل فرمايند” برهم نشون داده میشه
        $ReturnUrl رو هم برابر آدرس سایت خودم قرار میدم. همونی که ثبت کردم موقع گرفتن اطلاعات.
        https://website.com/Verify.php و فایل Verify.php هم تو public_html هاستم قرار دادم. یعنی فایل Send.php و Verify.php و function
        واقعا مشکل از کجاست. ممنون میشم کمکم کنید

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

        شاید آدرس به www یا ساب دامین اگر دارید گیر داده به هر حال باید تمام حالات رو تست کنید و همچنین سعی کنید دستی مقدار متغییر رو قرار بدید و در یک فایل خام جدا تست کنید و بعد بیارید تو پروژه

        پاسخ
      5. عاطفه ۲۶ مرداد ۱۳۹۹

        ممنونم از اینکه با حوصله به پیامام جواب دادید
        سپاااس فرااواان

        پاسخ
    2. مهدی مقدسی ۶ تیر ۱۴۰۲

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

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

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

    https://github.com/shetabit/payment

    پاسخ
  8. سعید ۱۲ اسفند ۱۳۹۸

    سلام و عرض ادب
    بابت راهنمایی و این پست ممنونم .

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

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

      پاسخ
  9. Arash ۱ تیر ۱۳۹۸

    سلام و عرض ادب
    من یه مشکلی برام پیش اومده که بعد از انجام عملیات شرط if($arrres->ResCode!=-1 && $ResCode==0) برقرار شده و کدهای داخل بلاک هم اجرا شده ، اما شماره پیگیری سفارش که عنوانش تو داکیومنت SystemTraceNo هست خالی اومده
    در واقع من اصلا شماره پیگیری دریافت نکردم و پول هم بعد از بانک برگشت شده به حساب کاربر
    بنظرتون برای رفع این مشکل باید چیکار کرد؟
    بهتر نیس که شماره پیگیری رو تو شرط بگذاریم؟
    البته مستلزم تغییراتی هست

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

      سلام. وقت بخیر.
      همه مواردی که نیاز دارید داخل آرایه $arrres هست. شما داخل این شرط در اولین خطش این متغییر رو var_dump و exit کنید ببینید چه مواردی از سمت بانک برگشت داده میشه.
      بله شما باید شماره تراکنش یا همان سفارش رو در همان ابتدای ارسال درخواست پرداخت به سمت بانک دریافت و داخل دیتابیس ذخیره کنید و در این مرحله ای که گفتید باید بررسیش کنید.
      ذخیره سازی کد تراکنش باید در فایل pay.php قبل از ریدایرکت کردن کاربر به بانک انجام بشه و بعد برگشت هم باید همانند مورد بالا بررسیش کنید.

      موفق باشید.

      پاسخ
      1. Arash ۱ تیر ۱۳۹۸

        ممنون

        پاسخ
  10. مهدی ۶ فروردین ۱۳۹۸

    من میخوام سایت فروش فالور بزنم
    زیرساخت ها اماده هس
    مثل هاست- دامنه- سرور اختصاصی – پنل فالور- وب سرویس و…
    ولی اصلا یاد ندارم چ جوری درگاه متصل کنم ب سایت یا یادندارم وب سرویس متصل کنم ب سایت
    لطفا میشه کمک کنید
    هزینه اش هم میدم
    ممنون

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

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

      پاسخ
  11. hasan ۲۰ آبان ۱۳۹۷

    من دقیقا همین مراحل ذکر شده رو رفتم با پیغام
    اطلاعات SignData ارسالی اشتباه است
    مواجه شدم !
    لطفا کمی راهنمایی کنید.

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

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

      پاسخ
  12. hasan ۲۰ آبان ۱۳۹۷

    $key چیست؟ دقیقا از کجا قابل دسترسی هست؟
    مرسی

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

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

      پاسخ
  13. محمدی مهدی ۴ مهر ۱۳۹۷

    ایا صفحه ی Verify.php صفحه ی تایید پرداخت هستش ؟؟ یا اینکه باید بزاریم verify کارش رو انجام بده و ما اون ته بنویسیم به صفحه ی تکمیل پرداخت ریدارکت بشه ؟

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

      سلام. بله verify.php صفحه تایید پرداخت است و بعد برگشت از بانک باید به این صفحه کاربر هدایت بشه (callback)
      موفق باشید.

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

    میشه یه توضیح در مورد $ResCode== بدید من نمیفهمم گفتید با چی مساوی باشه ؟

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

      سلام . حتما به این مورد توجه کنید
      برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود
      بنابراین به اینصورت میشه : if($arrres->ResCode==0)
      موفق باشید.

      پاسخ
  15. محمد ۳ مرداد ۱۳۹۷

    اینکار و هم کردم ولی باز هم به صفحه درگاه نمیره و خطایی هم نمیده!!

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

      از ورژن ۵٫۶ استفاده کنید تا اوکی بشه . بعضی از هاستینگ ها این آپشن رو داخل خود کنترل پنل هاست قرار دادند که میتونید تغییر بدید و یا اینکه تیکت بزنید تا براتون تغییر بدند.
      موفق باشید

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

      سلام .
      نسخه هماهنگ با php ورژن ۷ به بالا اضافه شد.
      موفق باشید

      پاسخ
  16. محمد ۲ مرداد ۱۳۹۷

    سلام من دقیقا همین کدها رو از بانک گرفتم ولی قسمت SignData=encrypt_pkcs7 اجرا نمیشه به بانک هم گفتیم ولی نتونستن کمک کنن و فکر کنم ایت تابع در PHP 7 سرور هاست من اجرا نمیشه ؟میتونید کمک کنید؟نیاز فوریه

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

      سلام . بله توابع mcrypt تو نسخه php 7.1 منسوخ اعلام شده و خطا میده و تو نسخه های ۷٫۱ به بعد هم کاملا حذف شده . میتونید از php نسخه ۷٫۰ و یا قبل تر استفاده کنید

      موفق باشد.

      پاسخ
      1. محمد ۳ مرداد ۱۳۹۷

        سلام امکانش نیست چراکه نسخه هاست سایت PHP version: 7.0.26 است و نمی دونم چکار کنم؟

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

        سلام .
        توابع مربوط به mcrypt تو نسخه جدید php کاملا حذف شدند و دیگر پشتیبانی نمیشه برای همین باید از ssl_encrypt برای اینکار استفاده بشه و نسخه هماهنگ با php ورژن ۷ به بالا اضافه شد. که می توانید از باکس دانلود دریافت کنید.
        موفق باشید.

        پاسخ
  17. حمید ۲۲ خرداد ۱۳۹۷

    با سلام و خسته نباشید مجدد ماژول درگاه بانک ملی واسه opencart 2.0.3 هم موجود هست ؟

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

      سلام ممنون . متاسفانه خیر ماژول این نسخه رو نداریم.
      موفق باشید.

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