درباره ی نویسنده


اسماعیل شیدایی
مدت 8 سال است که برنامه نویسی می کنم از همان ابتدا با زبان سی شارپ کارم را شروع کردم با تکنولوژی و زبان های سی شارپ، MVC, PHP, SQL Sever, و مباحث وب به خوبی آشنا هستم
در مدت فعالیتم پروژه های زیادی را انجام داده ام برخی در ایران و برخی نیز خارج از ایران بوده است که می توانید مفصلا آنها را در LinkedIn من مشاهده کنید.

مطالب مرتبط

تعداد نظرات 22

  1. User Comment

    shima

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

    1. User Comment

      مدیر سایت

      با عرض سلام

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

      باتشکر

  2. User Comment

    امیر

    درود

    و خسته نباشید

    آقای شیدایی واقعا کارتون خیلی درسته

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

    1. User Comment

      مدیر سایت

      با عرض سلام

      ما نیز بسیار خوشحال هستیم که توانسته ایم نظر دوستان عزیزی همچون شما را جذب کنیم.

      موفق باشید

  3. User Comment

    حسام

    سلام و خسته نباشید 

    من به یه مشکل خوردم سایت همش به خطای Ip  نامعتبر پیغام میده در صورتی که با یه سایت دیگم رو همون سرور داره کار می کنه 
    ؟

    1. User Comment

      مدیر سایت

      با عرض سلام

      یک بار کد خطا را با مستندات بانک بررسی کنید و مطمئن شوید کدی که به شما اعلام می شود کد خطای IP است.

      باتشکر

  4. User Comment

    مجید جمشیدی

    اگر امکانش هست پرداخت الکترونیکی رو با php هم اموزش بدید ، سپاسگذارم

    1. User Comment

      مدیر سایت

      با عرض سلام

      بله در حال تکمیل دوره های آموزشی PHP هستیم

      موفق باشید

  5. User Comment

    حسام

    آقا سایتتون بسیار عالی هس خیلی خوشم اومد 


    درست شد تشکر  مشکل از خود مرکز بود IP رو NAT  کرده بود 

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

  6. User Comment

    حسام

    راستی من مدت زمان Session  رو 15 دقیقه گذاشتم

  7. User Comment

    حسام

    لطفا کمک کنید 

    1. User Comment

      مدیر سایت


      با عرض سلام

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

      web config پروزه را به صورت زیر تنظیم کنید


      <system.web>
        <sessionState mode="InProc" cookieless="false" timeout="20" />
        <authentication mode="Forms">
          <forms name=".SAMPLESITEAUTH" loginUrl="~/Login.aspx" protection="All" timeout="20" slidingExpiration="true" path="/" cookieless="UseCookies"></forms>
        </authentication>
      </system.web>

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


      <forms
         name="name"
         loginUrl="URL"
         defaultUrl="URL"
         domain=".example.com">
      </forms>


      همچنین می توانید در web config خود مقدار Machine Key  را نیز تنظیم کنید.

      و آخرین روش اینکه می توانید اطلاعات session خود را به صورت cookie ذخیره کنید و آنها را در مواقع نیاز بخوانید.

      protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
          {
            /* only apply session cookie persistence to requests requiring session information*/
       
            #region session cookie /*check and set data*/
            if (Context.Handler is IRequiresSessionState || Context.Handler is IReadOnlySessionState )
            {
              /* Ensure ASP.NET Session Cookies are accessible throughout the subdomains.*/
       
              if (Request.Cookies["ASP.NET_SessionId"] != null && Session != null && Session.SessionID != null)
              {
                Response.Cookies["ASP.NET_SessionId"].Value = Session.SessionID;
                Response.Cookies["ASP.NET_SessionId"].Domain = ".know24.net"; /* the full stop prefix denotes all sub domains*/
                Response.Cookies["ASP.NET_SessionId"].Path = "/"; /*default session cookie path root */
              }
            }
            #endregion    
          }




      موفق باشید

  8. User Comment

    حسام

    با سلام و خسته نباشید 


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

    سپاس فراوان 

  9. User Comment

    امیر

    فقط یک کلمه : تشکر

    1. User Comment

      مدیر سایت

      باعرض سلام


      از لطف شما متشکریم

      موفق باشید

  10. User Comment

    کاربر ABLY

    ممنون. خیلی خوب بود

  11. User Comment

    hamid

    سلام دوباره خسته نباشید.من یه سوال راجع به payerId پرسیده بودم که هیچ شناسه ای از بانک من نگرفتم،آیا صفر گذاشتن آن مشکلی برام ایجاد میکنه?
    یه سوال دیگه راجع به صفحه BankCallback دارم و اونم اینه که من طبق آموزش شما یه اکشن مشابه اکشن شما در کنترلر نوشتم و برای این اکشن یه View ایجاد کردم،اما سوالم اینه چگونه تو View می تونم به پارامترهای ارسالی از بانک دسترسی داشته باشم و اونارو نشون بدم.تو آموزش شما راجع به View مربوط به BankCallback هیچ حرفی نزدین.
    مشتاقانه منتظر پاسخ شما هستم.
    تشکر و سپاس.

    1. User Comment

      مدیر سایت

      با عرض سلام


      بانک تمامی اطلاعات را به صورت POST برای شما ارسال می کند و شما نیز می توانید اطلاعات ارسالی را مثلا در ViewBag و یا Tempdata و یا حتی به صورت پارامتر به View مورد نظر خود انتقال دهید و اطلاعات کامل را برای کاربران خود در آنجا نمایش دهید.

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

  12. User Comment

    hamid

    سلام دوباره خسته نباشید.من یه سوال راجع به payerId پرسیده بودم که هیچ شناسه ای از بانک من نگرفتم،آیا صفر گذاشتن آن مشکلی برام ایجاد میکنه?
    یه سوال دیگه راجع به صفحه BankCallback دارم و اونم اینه که من طبق آموزش شما یه اکشن مشابه اکشن شما در کنترلر نوشتم و برای این اکشن یه View ایجاد کردم،اما سوالم اینه چگونه تو View می تونم به پارامترهای ارسالی از بانک دسترسی داشته باشم و اونارو نشون بدم.تو آموزش شما راجع به View مربوط به BankCallback هیچ حرفی نزدین.
    مشتاقانه منتظر پاسخ شما هستم.
    تشکر و سپاس.

  13. User Comment

    Sadaf Ziya

    سلام درگاه من نشون داده میشه و کدنویسی هم تا جاییکه دیدم درست انجام شده ولی وقتی میخواد به متد bankcallback بیاد خطا میده و واردش نمیشه

  14. User Comment

    اسماعیل شیدایی

    با عرض سلام

    بهترین راه حل در چنین شرایطی ذخیره و بررسی خطای رخ داده است، بهتر است کدهای خود را درون یک بلاک try catch قرار دهید و سپس با استفاده از دستورات زیر خطا را دریک فایل ذخیره و دلیل رخ دادن خطا را بررسی کنید.

     

     

    
    catch (Exception er)
    {
    using (StreamWriter writer =
    	    new StreamWriter("C:\\log.txt", true))
    	{
    	    writer.WriteLine(er.Message);
    	}
    }
    

     

     

  15. User Comment

    Sadaf Ziya

    روی لوکال با اعداد تست وارد میشه ولی زمانی که صفحه بانک نشون میده و خرید و تکمیل خرید انجام میشه وارد این تابع نمیشه من درون این تابع لاگ گذاشتم لاگها بررسی کردم و مشخص شد اصلا واردش نمیشه که بخواد خطا بده . روی برنامه آپلود شده با برنامه پست من چکش کردم ارور 404 میده و بعد از کلی امتحان یهو چندتااز درخواست 200ok داد ولی باز 404 شد . این موردیم که شما گفتید را تست میکنم باز (شاید وارد شه و خطاشو ثبت کنه!) مرسی

    1. User Comment

      اسماعیل شیدایی

      با سلام

      برخی مواقع به دلیل استفاده Package های مختلف در web.config تنظیماتی ایجاد می شود که شما اجازه دسترسی و صدا زدن برخی توابع را از بیرون نمی دهید.

      این مورد را هم  حتما در نظر بگیرید

       

  16. User Comment

    Sadaf Ziya

    ممنون مرسی از سایت خوبتون

  17. User Comment

    Sadaf Ziya

    سلام

    من درگاه اینترنتی را درست کردم و پرداخت انجام میشه

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

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

    1. User Comment

      اسماعیل شیدایی

      با عرض سلام

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

  18. User Comment

    Sadaf Ziya

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

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

  19. User Comment

    تورنادو زارع

    با سلام

    ممنون از سایت بسیار مفیدتون و مطالب پربار آن

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

    با تشکر

  20. User Comment

    مسعود ش.

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

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

    آیا SaleReferenceId همون کد هست یا چیز دیگه ایه؟

    باز هم از زحمتی که برای تهیه آموزش کشیدید تشکر می کنم

    1. User Comment

      اسماعیل شیدایی

      با عرض سلام
      از لطف شما بسیار سپاسگزارم

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

      مختصرا، برای تعیین اینکه مبلغ مورد نظر پرداخت شده است باید پارامتر شماره ی تراکنش را به همراه تابع verify چک کنید که در صورت واریز شدن به حساب شما بانک کد مربوطه را اعلام کنید.

  21. User Comment

    مسعود ش.

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

  22. User Comment

    کاربر ABLY

    با سلام و تشکر از آموزش خوبتون

    من کد رو استفاده کردم مرحله پرداخت به درستی انجام میشه ولی وقتی بازگشت با سایت پذیرنده رو میزنم page not found برای url همون callback یعنی /payment/BankCallback نمایش داده میشه.

     

    اول action backCallback این کد رو گذاشتم ولی لاگ نمیشه توش:

     

    using (StreamWriter writer = new StreamWriter("C:\\log.txt", true)) { writer.WriteLine("ENTERED"); }

     

    برداشت خودم این که وقتی روی برگشت به سایت پذیرنده میزنم درخواستی که توی browser بوجود میاد از نوع get هست و action از نوع httpPost و فراخوانی نمیشه.

     

    ممنون میشم راهنماییم بکنید که مشکل از کجاست؟

    1. User Comment

      اسماعیل شیدایی

      با عرض سلام

      شاید شما Route خاصی را تعریف کرده اید و این سبب پیدا نشدن صفحه ی مربوطه می شود، ابتدا تست کنید که اگر آدرس را به صورت دستی وارد می کنید آیا سایت باز می شود یا خیر؟ اگر باز شد پس مشکل در کدهای شما برای بانک است ولی اگر کلا صفحه ی مورد نظر باز نشد حتما Route یا آدرس شما مشکل دارد 

      موفق باشید

حاصل جمع عدد 8 با عدد 4 برابر است با

میزبانی شده بر روی سرورهای قدرتمند 20Host.ir

2016 Powered & Desigened By ABLY Co, ABLY