آموزش نحوه راه اندازی درگاه پی لاین در Asp.Net MVC 5
0 0

آموزش نحوه راه اندازی درگاه پی لاین در Asp.Net MVC 5


آموزش نحوه راه اندازی درگاه پی لاین در Asp.Net MVC 5

در پست های قبلی نحوه راه اندازی درگاه پرداخت پی لاین در Asp.Net را بررسی کردیم. و در این قسمت به صورت کامل نحوه راه اندازی درگاه پرداخت پی لاین در Asp.Net MVC 5 می پردازیم.

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

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

پیاده سازی این درگاه ها کمی سخت تر و دردسر خود را دارند. نحوه راه اندازی درگاه بانک ملت با Asp.Net MVC 5 رو می توانید در سایت کارکو مشاهده کنید.

نحوه راه اندازی درگاه پی لاین

ابتدا dll پی لاین را به صورت زیر به برنامه خود اضافه کنید.

نحوه راه اندازی درگاه پی لاین

نحوه راه اندازی درگاه پی لاین

سپس یک کنترلر به نام Home ایجاد کنید و داخل آن یک اکشن به نام index و یک view نیز برای آن ایجاد کنید و کدهای آن را به صورت زیر تغییر دهید.

@{
    Layout = null;
}

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>درگاه پی لاین-یران گنج</title>
    <link href="~/Content/style.css" rel="stylesheet" />
</head>
<body>
    @using (Html.BeginForm())
    {
        @Html.AntiForgeryToken()
        <div class="main">
            <table class="tbl">
                <tr>
                    <td colspan="2">
                        <h2>درگاه پی لاین</h2>
                    </td>
                </tr>
                <tr>
                    <td>مبلغ:</td>
                    <td>
                        <input type="text" id="price" name="price" />
                    </td>
                </tr>
                <tr>
                    <td colspan="2" style="text-align: left;">
                        <input type="submit" value="پرداخت" />
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        @ViewBag.Message
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <a href="http://iranganj.ir" target="_blank">www.iranganj.ir</a>
                    </td>
                </tr>
            </table>
        </div>
    }
</body>
</html>

نکته: شما می توانید این کار را در کنترلری که نیاز دارید انجام دهید

کدهای قسمت اکشن index

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

یک جدول در دیتابیس خود طراحی کنید برای ذخیره اطلاعاتی پرداختی در نظر بگیرید.

فیلد های زیر را می توانید در جدول پرداخت در نظر بگیرید:

  1. شماره فاکتور که بهتر است همان کلید اصلی جدول باشد
  2. شماره تراکنش
  3. شماره پیگیری
  4. وضعیت پرداخت
  5. آی دی کاربر در صورت نیاز
  6. آی پی کاربر هنگام پرداخت
  7. تاریخ پرداخت

ذخیره اطلاعات در دیتابیس و دریافت کد فاکتور

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Index(string price)
        {
            try
            {
                // در این قسمت میتوانید اطلاعات مورد نظر را در دیتابیس ذخیره کنید

                int saleOrderId = 1;
                string redirectPage = "http://localhost:23731/Home/Return?SaleOrderId=" + saleOrderId.ToString();

                //test Api
                string api = "adxcv-zzadq-polkjsad-opp13opoz-1sdf455aadzmck1244567";

                PayLine pay = new PayLine();

                double amount = double.Parse(price) * 10;

                string result = pay.Send("http://payline.ir/payment-test/gateway-send", api, amount, redirectPage);

                if (int.Parse(result) > 0)
                {
                    Response.Redirect("http://payline.ir/payment-test/gateway-" + result);
                }
                else
                {
                    switch (result)
                    {
                        case "-1":
                            ViewBag.Message = "api ارسالی با نوع api تعریف شده در payline ;'.سازگار نیست";
                            break;
                        case "-2":
                            ViewBag.Message = " مقدار amount ;'.داده عددي نمی باشد و یا کمتر از 1000 ریال است";
                            break;
                        case "-3":
                            ViewBag.Message = " مقدار redirect رشته null ;.است";
                            break;
                        case "-4":
                            ViewBag.Message = ".درگاهی با اطلاعات ارسالی شما یافت نشده و یا در حالت انتظار می باشد";
                            break;
                    }

                    ViewBag.Message = "مشکلی در برقراری ارتباط بوجود آمد لطفا بعدا تلاش کنید";


                }
            }
            catch
            {
                ViewBag.Message = "پاسخی از درگاه دریافت نشد";

            }
            return View();
        }

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

آدرس برگشت

سپس آدرس صفحه برگشت را مشخص می کنیم و همچنین شماره فاکتور را به صورت QueryString در آدرس قرار دادیم.

Api

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

Dll پی لاین

ایجاد شی از کلاس پی لاین

مبلغ

در اینجا ما قیمت را در 10 ضرب کردیم تا به صورت ریال ارسال کنیم.

 

ارسال اطلاعات

اطلاعات مورد نیاز را توسط تابع send ارسال می کنیم و سپس نتیجه را مورد بررسی قرار می دهیم در صورتی که result بزرگتر از صفر باشد دوباره توسط دستور Response.Redirect به درگاه پی لاین ارسال می کنیم.

در صورتی که خطای رخ دهد نمایش می دهیم.

بعد از اتصال به درگاه و برگشت به اکشن Return در کنترلر Home

کدهای Html قسمت ویوی Return به صورت زیر می باشد.

@{
    Layout = null;
}

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>درگاه پی لاین-ایران گنج</title>
    <link href="~/Content/style.css" rel="stylesheet" />
</head>
<body>
    <div class="main">
        <table class="tbl">
            <tr>
                <td colspan="2">
                    <h2>درگاه پی لاین</h2>
                </td>
            </tr>
            <tr>
                <td>شماره تراکنش</td>
                <td>
                    @ViewBag.TransId
                </td>
            </tr>
            <tr>
                <td>کد پیگیری</td>
                <td>
                    @ViewBag.IdGet
                </td>
            </tr>
            <tr>
                <td>وضعیت پرداخت</td>
                <td>
                    @ViewBag.Message
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <a href="http://iranganj.ir" target="_blank">www.iranganj.ir</a>
                </td>
            </tr>
        </table>
    </div>
</body>
</html>

 

حالا در اکشن  Return کدهای زیر را بنوسید.

public ActionResult Return(string saleOrderId)
        {
            try
            {
                string transId = Request.Form["trans_id"];
                string idGet = Request.Form["id_get"];
                string SaleOrderId = Request.QueryString["SaleOrderId"];

                if (!String.IsNullOrEmpty(transId) && !String.IsNullOrEmpty(idGet))
                {
                    PayLine GetPayline = new PayLine();

                    //test Api
                    string api = "adxcv-zzadq-polkjsad-opp13opoz-1sdf455aadzmck1244567";

                    //GetPayline.Get(url,"Your-API", trans_id, id_get)
                    string result = GetPayline.Get("http://payline.ir/payment-test/gateway-result-second", api, transId, idGet);

                    switch (result)
                    {
                        case "-1":
                            ViewBag.TransId = transId;
                            ViewBag.IdGet = idGet;
                            ViewBag.Message = "api ارسالی با نوع api تعریف شده در payline .سازگار نیست";
                            break;
                        case "-2":
                            ViewBag.TransId = transId;
                            ViewBag.IdGet = idGet;
                            ViewBag.Message = "trans_id .ارسال شده معتبر نمی باشد";
                            break;
                        case "-3":
                            ViewBag.TransId = transId;
                            ViewBag.IdGet = idGet;
                            ViewBag.Message = "id_get .ارسالی معتبر نمی باشد";
                            break;
                        case "-4":
                            ViewBag.TransId = transId;
                            ViewBag.IdGet = idGet;
                            ViewBag.Message = ".چنین تراکنشی در سیستم وجود ندارد و یا موفقیت آمیز نبوده است ";
                            break;
                        case "1":
                            ViewBag.TransId = transId;
                            ViewBag.IdGet = idGet;
                            ViewBag.Message = ".تراکنش موفقیت آمیز بوده است";
                            break;
                    }
                    // در این قسمت می توانید اطلاعات دریافتی را در دیتابیس ذخیره کنید
                }
                else
                {
                    ViewBag.Message = "دسترسی امکانپذیر نیست";
                }
            }
            catch
            {
                ViewBag.Message = "پاسخی دریافت نشد";
            }
            return View();
        }
    }

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

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

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

در پست بعدی نحوه راه اندازی درگاه پی لاین در PHP نیز خواهیم پرداخت.

دانلود

نویسنده حسین فتحی
گروه مطلب MVC
نوع مطلب فیلم آموزشی
تاریخ انتشار ۶ بهمن ۱۳۹۴
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران مهمان
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha