eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
بیایید این کد را قدم به قدم توضیح دهیم. شرح کد: این کد یک کلاس به نام RequestParameters در فضای نام zarinpalasp.netcorerest.Models ایجاد می‌کند. این کلاس برای نگهداری پارامترهای مربوط به درخواست پرداخت از زرین‌پال استفاده می‌شود. جزئیات کد: فضای نام و استفاده‌ها: csharp using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; این خطوط از کد، فضاهای نام مورد نیاز برای عملکرد برنامه را وارد می‌کنند. تعریف کلاس: csharp namespace zarinpalasp.netcorerest.Models { public class RequestParameters { کلاس RequestParameters در فضای نام zarinpalasp.netcorerest.Models تعریف شده است. خصوصیات کلاس: csharp public string merchant_id { get; set; } public string amount { get; set; } public string description { get; set; } public string callback_url { get; set; } public string[]? metadata { get; set; } این خصوصیات پارامترهای مختلف مربوط به درخواست پرداخت را تعریف می‌کنند: merchant_id: شناسه تاجر. amount: مقدار پرداخت. description: توضیح درباره پرداخت. callback_url: URL بازگشتی برای تأیید یا لغو پرداخت. metadata: اطلاعات اضافه‌ای که می‌تواند شامل موبایل و ایمیل باشد. سازنده کلاس: csharp public RequestParameters(string merchant_id, string amount, string description, string callback_url, string? mobile, string? email) { this.merchant_id = merchant_id; this.amount = amount; this.description = description; this.callback_url = callback_url; this.metadata = new string[2]; if (mobile != null) { this.metadata[0] = mobile; } if (email != null) { this.metadata[1] = email; } } سازنده کلاس RequestParameters پارامترهای ورودی را می‌پذیرد و آن‌ها را به خصوصیات کلاس اختصاص می‌دهد. همچنین، آرایه metadata را مقداردهی اولیه می‌کند و در صورت وجود مقادیر موبایل و ایمیل، آن‌ها را به آرایه metadata اضافه می‌کند. تبدیل ضمنی: csharp public static implicit operator RestSharp.RequestParameters(RequestParameters v) { throw new NotImplementedException(); } این خط از کد یک تبدیل ضمنی (implicit) از RequestParameters به RestSharp.RequestParameters تعریف می‌کند. اما چون پیاده‌سازی نشده، یک استثنای NotImplementedException پرتاب می‌کند. نتیجه‌گیری کلاس RequestParameters برای نگهداری پارامترهای مربوط به درخواست پرداخت از زرین‌پال استفاده می‌شود. این کلاس شامل پارامترهای مهمی مانند merchant_id, amount, description, callback_url, و metadata (که می‌تواند موبایل و ایمیل باشد) است.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد یک کلاس به نام URLs در فضای نام zarinpalasp.netcorerest.Models ایجاد می‌کند. این کلاس شامل آدرس‌های URL ثابت (constant) است که برای ارتباط با زرین‌پال در حالت sandbox استفاده می‌شود. جزئیات کد: فضای نام و استفاده‌ها: csharp using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; این خطوط از کد، فضاهای نام مورد نیاز برای عملکرد برنامه را وارد می‌کنند. در این مورد، فضای نام‌های استانداردی مانند System, System.Collections.Generic, System.Linq, و System.Threading.Tasks وارد شده‌اند. تعریف کلاس: csharp namespace zarinpalasp.netcorerest.Models { public class URLs { کلاس URLs در فضای نام zarinpalasp.netcorerest.Models تعریف شده است. این کلاس به عنوان یک محتوای ثابت برای نگهداری URLهای مربوط به زرین‌پال استفاده می‌شود. تعریف آدرس‌های URL ثابت: csharp public const String gateWayUrl = "https://sandbox.zarinpal.com/pg/StartPay/"; public const String requestUrl = "https://sandbox.zarinpal.com/pg/v4/payment/request.json"; public const String verifyUrl = "https://sandbox.zarinpal.com/pg/v4/payment/verify.json"; این خطوط از کد سه آدرس URL ثابت (constant) را تعریف می‌کنند: gateWayUrl: آدرس URL که برای شروع فرآیند پرداخت استفاده می‌شود. requestUrl: آدرس URL که برای ارسال درخواست پرداخت به زرین‌پال استفاده می‌شود. verifyUrl: آدرس URL که برای تأیید پرداخت استفاده می‌شود. نتیجه‌گیری کلاس URLs شامل آدرس‌های URL ثابت است که برای ارتباط با زرین‌پال در حالت sandbox استفاده می‌شود. این آدرس‌ها شامل آدرس‌هایی برای شروع پرداخت، ارسال درخواست پرداخت، و تأیید پرداخت می‌باشند. این ساختار کد به شما امکان می‌دهد تا به راحتی از این URLها در سایر بخش‌های برنامه خود استفاده کنید و در صورت تغییر آدرس‌ها، تنها کافی است این ثابت‌ها را در یک مکان تغییر دهید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد یک کلاس به نام VerifyParameters در فضای نام zarinpalasp.netcorerest.Models ایجاد می‌کند. این کلاس برای نگهداری پارامترهای مربوط به تأیید پرداخت از زرین‌پال استفاده می‌شود. جزئیات کد: فضای نام و استفاده‌ها: csharp using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; این خطوط از کد، فضاهای نام مورد نیاز برای عملکرد برنامه را وارد می‌کنند. در این مورد، فضای نام‌های استانداردی مانند System, System.Collections.Generic, System.Linq, و System.Threading.Tasks وارد شده‌اند. تعریف کلاس: csharp namespace zarinpalasp.netcorerest.Models { public class VerifyParameters { کلاس VerifyParameters در فضای نام zarinpalasp.netcorerest.Models تعریف شده است. این کلاس به عنوان یک مدل داده برای نگهداری پارامترهای مربوط به تأیید پرداخت استفاده می‌شود. خصوصیات کلاس: csharp public string amount { set; get; } public string merchant_id { set; get; } public string authority { set; get; } این خصوصیات پارامترهای مختلف مربوط به تأیید پرداخت را تعریف می‌کنند: amount: مقدار پرداخت. merchant_id: شناسه تاجر. authority: شناسه مربوط به تراکنش. نتیجه‌گیری کلاس VerifyParameters برای نگهداری پارامترهای مربوط به تأیید پرداخت از زرین‌پال استفاده می‌شود. این کلاس شامل پارامترهای مهمی مانند amount, merchant_id, و authority است. این ساختار کد به شما امکان می‌دهد تا به راحتی این پارامترها را به عنوان بخشی از فرآیند تأیید پرداخت مدیریت کنید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
توضیح کد: این کد یک کنترلر به نام HomeController است که برای مدیریت عملیات پرداخت با استفاده از زرین‌پال طراحی شده است. این کنترلر شامل یک متد اکشن به نام Payment است که مسئولیت ارسال درخواست پرداخت و هدایت کاربر به صفحه پرداخت زرین‌پال را دارد. جزئیات کد: تعریف کنترلر: csharp public class HomeController : Controller { private readonly ILogger<HomeController> _logger; string merchant = "cfa83c81-89b0-4993-9445-2c3fcd323455"; string amount = "1100"; string authority; string description = "خرید تستی "; string callbackurl = "http://localhost:2812/Home/VerifyByHttpClient"; این خطوط از کد، کنترلر HomeController را تعریف می‌کنند و چندین خصوصیت خصوصی را برای نگهداری اطلاعات مربوط به پرداخت، مانند merchant, amount, authority, description و callbackurl ایجاد می‌کنند. سازنده کنترلر: csharp public HomeController(ILogger<HomeController> logger) { _logger = logger; } این سازنده برای تنظیم شیء logger استفاده می‌شود که برای ثبت وقایع و خطاها به کار می‌رود. متد Payment: csharp public IActionResult Payment() { try { RestSharp.RequestParameters Parameters = new RequestParameters(merchant, amount, description, callbackurl, "", ""); var client = new RestClient(URLs.requestUrl); Method method = Method.Post; var request = new RestRequest("", method); request.AddHeader("accept", "application/json"); request.AddHeader("content-type", "application/json"); request.AddJsonBody(Parameters); var requestresponse = client.ExecuteAsync(request).Result; JObject jo = JObject.Parse(requestresponse.Content); if (jo["data"] != null && jo["data"].HasValues) { authority = jo["data"]["authority"].ToString(); string gatewayUrl = URLs.gateWayUrl + authority; return Redirect(gatewayUrl); } else if (jo["errors"] != null && jo["errors"].HasValues) { string errorscode = jo["errors"]["code"].ToString(); string errorsMessage = jo["errors"]["message"].ToString(); return BadRequest($"Error code: {errorscode}, Error message: {errorsMessage}"); } else { return BadRequest("Unexpected response format from ZarinPal."); } } catch (Exception ex) { _logger.LogError(ex, "An error occurred while processing the payment request."); return BadRequest($"Exception: {ex.Message}"); } } این متد مسئول ارسال درخواست پرداخت به زرین‌پال است. مراحل اصلی آن عبارتند از: ایجاد شیء RequestParameters: پارامترهای مورد نیاز برای درخواست پرداخت را ایجاد و مقداردهی می‌کند. ایجاد شیء RestClient و RestRequest: برای ارسال درخواست HTTP به زرین‌پال. تنظیم هدرهای درخواست: شامل نوع محتوا و پذیرش JSON. اضافه کردن پارامترهای JSON به بدنه درخواست: پارامترهای پرداخت را به بدنه درخواست اضافه می‌کند. ارسال درخواست و پردازش پاسخ: درخواست را ارسال و پاسخ آن را پردازش می‌کند. بررسی وجود داده‌ها و هدایت کاربر به صفحه پرداخت: اگر درخواست موفقیت‌آمیز باشد، کاربر به صفحه پرداخت هدایت می‌شود. مدیریت خطاها: در صورت بروز خطا، پیام خطا برگردانده می‌شود. نتیجه‌گیری: این کنترلر به شما امکان می‌دهد تا یک درخواست پرداخت به زرین‌پال ارسال کنید و کاربر را به صفحه پرداخت هدایت کنید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد یک متد اکشن به نام VerifyPayment در کنترلر HomeController است که برای تأیید پرداخت با استفاده از زرین‌پال استفاده می‌شود. جزئیات کد: تعریف متد: csharp public IActionResult VerifyPayment() { این خط نشان می‌دهد که متد VerifyPayment یک اکشن از نوع IActionResult است که در کنترلر HomeController قرار دارد. بدنه متد: csharp try { VerifyParameters parameters = new VerifyParameters(); if (HttpContext.Request.Query["Authority"] != "") { authority = HttpContext.Request.Query["Authority"]; } parameters.authority = authority; parameters.amount = amount; parameters.merchant_id = merchant; var client = new RestClient(URLs.verifyUrl); Method method = Method.Post; var request = new RestRequest("", method); request.AddHeader("accept", "application/json"); request.AddHeader("content-type", "application/json"); request.AddJsonBody(parameters); var response = client.ExecuteAsync(request); JObject jodata = JObject.Parse(response.Result.Content); string data = jodata["data"].ToString(); JObject jo = JObject.Parse(response.Result.Content); string errors = jo["errors"].ToString(); if (data != "[]") { string refid = jodata["data"]["ref_id"].ToString(); ViewBag.code = refid; return View(); } else if (errors != "[]") { string errorscode = jo["errors"]["code"].ToString(); return BadRequest($"error code {errorscode}"); } } catch (Exception ex) { throw new Exception(ex.Message); } return NotFound(); } بیایید این بدنه را تجزیه کنیم: Try-Catch Block: از try-catch برای مدیریت خطاها استفاده می‌شود. اگر خطایی رخ دهد، یک استثنا (Exception) پرتاب می‌شود. ایجاد شیء VerifyParameters: csharp VerifyParameters parameters = new VerifyParameters(); این خط یک نمونه از کلاس VerifyParameters ایجاد می‌کند که شامل پارامترهای مورد نیاز برای تأیید پرداخت است. دریافت Authority: csharp if (HttpContext.Request.Query["Authority"] != "") { authority = HttpContext.Request.Query["Authority"]; } این کد مقدار Authority را از پارامترهای Query درخواست (Request Query) دریافت می‌کند و در متغیر authority ذخیره می‌کند. تنظیم پارامترها: csharp parameters.authority = authority; parameters.amount = amount; parameters.merchant_id = merchant; این پارامترها به شیء VerifyParameters اضافه می‌شوند. ایجاد RestClient و RestRequest: csharp var client = new RestClient(URLs.verifyUrl); Method method = Method.Post; var request = new RestRequest("", method); request.AddHeader("accept", "application/json"); request.AddHeader("content-type", "application/json"); request.AddJsonBody(parameters); این کد یک RestClient و یک RestRequest ایجاد می‌کند و هدرها و پارامترهای JSON را به درخواست اضافه می‌کند. ارسال درخواست و پردازش پاسخ: csharp var response = client.ExecuteAsync(request); JObject jodata = JObject.Parse(response.Result.Content); string data = jodata["data"].ToString(); JObject jo = JObject.Parse(response.Result.Content); string errors = jo["errors"].ToString(); این کد درخواست را ارسال و پاسخ آن را دریافت می‌کند. سپس پاسخ JSON را به اشیاء JObject تبدیل می‌کند تا بتواند داده‌ها و خطاها را استخراج کند. بررسی داده‌ها و خطاها: csharp if (data != "[]") { string refid = jodata["data"]["ref_id"].ToString(); ViewBag.code = refid; return View(); } else if (errors != "[]") { string errorscode = jo["errors"]["code"].ToString(); return BadRequest($"error code {errorscode}"); } اگر داده‌ها وجود داشته باشند، شناسه تراکنش (refid) استخراج و در ViewBag ذخیره می‌شود و سپس ویو نمایش داده می‌شود. اگر خطا وجود داشته باشد، کد خطا برگردانده می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
مدیریت خطاها: csharp catch (Exception ex) { throw new Exception(ex.Message); } در صورت بروز خطا، یک استثنا با پیام خطا پرتاب می‌شود. بازگشت نتیجه NotFound در صورت عدم وجود داده: csharp return NotFound(); نتیجه‌گیری این متد اکشن برای تأیید پرداخت استفاده می‌شود و در صورت موفقیت، اطلاعات پرداخت را نمایش می‌دهد. اگر خطایی رخ دهد، پیام خطا برگردانده می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد شامل دو متد اکشن در کنترلر HomeController است که به ترتیب VerifyByHttpClient و Index نام دارند. متد VerifyByHttpClient برای تأیید پرداخت با استفاده از HttpClient و متد Index برای نمایش صفحه اصلی استفاده می‌شود. جزئیات کد: متد VerifyByHttpClient: csharp public async Task<IActionResult> VerifyByHttpClient() { try { VerifyParameters parameters = new VerifyParameters(); if (!string.IsNullOrEmpty(HttpContext.Request.Query["Authority"])) { authority = HttpContext.Request.Query["Authority"]; } if (string.IsNullOrEmpty(authority)) { return BadRequest("Authority is missing."); } parameters.authority = authority; parameters.amount = amount; parameters.merchant_id = merchant; using (HttpClient client = new HttpClient()) { var json = JsonConvert.SerializeObject(parameters); HttpContent content = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(URLs.verifyUrl, content); string responseBody = await response.Content.ReadAsStringAsync(); JObject jodata = JObject.Parse(responseBody); if (jodata["data"] != null && jodata["data"].HasValues) { string refid = jodata["data"]["ref_id"].ToString(); ViewBag.code = refid; return View(); } else if (jodata["errors"] != null && jodata["errors"].HasValues) { string errorscode = jodata["errors"]["code"].ToString(); string errorsMessage = jodata["errors"]["message"].ToString(); // مدیریت انصراف کاربر if (errorscode == "-51") { ViewBag.error = "انصراف از پرداخت. تراکنش لغو شده است."; return View("CancelPayment"); } return BadRequest($"Error code: {errorscode}, Error message: {errorsMessage}"); } else { return BadRequest("Unexpected response format from ZarinPal."); } } } catch (Exception ex) { _logger.LogError(ex, "An error occurred while processing the verification request."); return BadRequest($"Exception: {ex.Message}"); } return NotFound(); } بیایید این بدنه را تجزیه کنیم: Try-Catch Block: از try-catch برای مدیریت خطاها استفاده می‌شود. اگر خطایی رخ دهد، یک استثنا (Exception) پرتاب می‌شود و خطا ثبت (log) می‌شود. ایجاد شیء VerifyParameters: csharp VerifyParameters parameters = new VerifyParameters(); دریافت Authority: csharp if (!string.IsNullOrEmpty(HttpContext.Request.Query["Authority"])) { authority = HttpContext.Request.Query["Authority"]; } بررسی وجود Authority: csharp if (string.IsNullOrEmpty(authority)) { return BadRequest("Authority is missing."); } تنظیم پارامترها: csharp parameters.authority = authority; parameters.amount = amount; parameters.merchant_id = merchant; ایجاد HttpClient و ارسال درخواست: csharp using (HttpClient client = new HttpClient()) { var json = JsonConvert.SerializeObject(parameters); HttpContent content = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(URLs.verifyUrl, content); string responseBody = await response.Content.ReadAsStringAsync(); JObject jodata = JObject.Parse(responseBody); }
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
بررسی و مدیریت پاسخ: csharp if (jodata["data"] != null && jodata["data"].HasValues) { string refid = jodata["data"]["ref_id"].ToString(); ViewBag.code = refid; return View(); } else if (jodata["errors"] != null && jodata["errors"].HasValues) { string errorscode = jodata["errors"]["code"].ToString(); string errorsMessage = jodata["errors"]["message"].ToString(); // مدیریت انصراف کاربر if (errorscode == "-51") { ViewBag.error = "انصراف از پرداخت. تراکنش لغو شده است."; return View("CancelPayment"); } return BadRequest($"Error code: {errorscode}, Error message: {errorsMessage}"); } else { return BadRequest("Unexpected response format from ZarinPal."); } مدیریت خطاها: csharp catch (Exception ex) { _logger.LogError(ex, "An error occurred while processing the verification request."); return BadRequest($"Exception: {ex.Message}"); } بازگشت نتیجه NotFound در صورت عدم وجود داده: csharp return NotFound(); متد Index: csharp public IActionResult Index() { return View(); } این متد اکشن ساده‌ای است که ویوی Index را نمایش می‌دهد. نتیجه‌گیری متد VerifyByHttpClient برای تأیید پرداخت با استفاده از HttpClient و مدیریت پاسخ‌ها و خطاها طراحی شده است. متد Index نیز برای نمایش صفحه اصلی استفاده می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد مربوط به یک ویو به نام Index است که برای نمایش یک صفحه وب در یک پروژه ASP.NET Core استفاده می‌شود. این ویو شامل یک عنوان، یک دکمه برای ارسال درخواست و یک لینک برای پرداخت است. جزئیات کد: ViewData["Title"]: csharp @{ ViewData["Title"] = "zarinpal"; } این خط از کد، عنوان صفحه را با استفاده از ViewData تنظیم می‌کند. در این مورد، عنوان صفحه به "zarinpal" تنظیم شده است. ساختار HTML: html <div class="text-center"> <h1 class="display-4">zarinpal</h1> @*<input type="submit" value="ارسال درخواست" class="btn btn-success" /> *@ <a class="btn btn-primary btn-block" asp-action="PaymenBytHttpClient">پرداخت</a> </div> <div class="text-center">: این تگ div شامل محتوایی است که به صورت مرکزی تراز شده است. <h1 class="display-4">zarinpal</h1>: این تگ h1 یک عنوان بزرگ با کلاس "display-4" از Bootstrap را نمایش می‌دهد که متن آن "zarinpal" است. @<input type="submit" value="ارسال درخواست" class="btn btn-success" /> @: این خط از کد یک ورودی از نوع "submit" است که به عنوان دکمه‌ای برای ارسال درخواست عمل می‌کند. این خط به صورت کامنت شده است و نمایش داده نمی‌شود. <a class="btn btn-primary btn-block" asp-action="PaymenBytHttpClient">پرداخت</a>: این تگ a یک لینک به عملگر PaymenBytHttpClient در کنترلر است که به عنوان دکمه‌ای با کلاس‌های "btn btn-primary btn-block" از Bootstrap نمایش داده می‌شود. متن این دکمه "پرداخت" است. نتیجه‌گیری: این ویو یک صفحه ساده با یک عنوان و یک دکمه برای پرداخت ایجاد می‌کند. با کلیک بر روی دکمه پرداخت، کاربر به عملگر PaymenBytHttpClient در کنترلر هدایت می‌شود تا فرآیند پرداخت را آغاز کند.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد مربوط به یک ویو به نام VerifyPayment است که برای نمایش نتیجه پرداخت در یک پروژه ASP.NET Core استفاده می‌شود. این ویو شامل یک عنوان، پیام موفقیت‌آمیز بودن پرداخت و نمایش شناسه تراکنش است. جزئیات کد: ViewData["Title"]: csharp @{ ViewData["Title"] = "VerifyPayment"; } این خط از کد، عنوان صفحه را با استفاده از ViewData تنظیم می‌کند. در این مورد، عنوان صفحه به "VerifyPayment" تنظیم شده است. ساختار HTML: html <h1>نتیجه پرداخت</h1> <hr /> <div class="alert alert-success"> <h2>پرداخت موفق</h2> <p>شناسه تراکنش : @ViewBag.code</p> </div> <h1>نتیجه پرداخت</h1>: این تگ h1 یک عنوان بزرگ با متن "نتیجه پرداخت" را نمایش می‌دهد. <hr />: این تگ یک خط افقی را در صفحه ایجاد می‌کند. <div class="alert alert-success">: این تگ div یک پیام موفقیت‌آمیز را در یک باکس هشدار سبز (با کلاس‌های "alert alert-success" از Bootstrap) نمایش می‌دهد. <h2>پرداخت موفق</h2>: این تگ h2 یک عنوان کوچک‌تر با متن "پرداخت موفق" را نمایش می‌دهد. <p>شناسه تراکنش : @ViewBag.code</p>: این تگ p یک پاراگراف با متن "شناسه تراکنش :" و مقدار @ViewBag.code را نمایش می‌دهد. مقدار @ViewBag.code از کنترلر به ویو ارسال شده است و شناسه تراکنش را نمایش می‌دهد. نتیجه‌گیری این ویو برای نمایش نتیجه پرداخت طراحی شده است. در صورتی که پرداخت موفق باشد، پیام موفقیت‌آمیز بودن پرداخت و شناسه تراکنش به کاربر نمایش داده می‌شود. استفاده از کلاس‌های Bootstrap باعث زیباسازی و سازماندهی بهتر صفحه می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد مربوط به یک ویو به نام CancelPayment است که برای نمایش نتیجه انصراف از پرداخت در یک پروژه ASP.NET Core استفاده می‌شود. این ویو شامل یک عنوان، پیام انصراف از پرداخت و نمایش پیام خطا (در صورت وجود) است. جزئیات کد: ViewData["Title"]: csharp @{ ViewData["Title"] = "انصراف از پرداخت"; } این خط از کد، عنوان صفحه را با استفاده از ViewData تنظیم می‌کند. در این مورد، عنوان صفحه به "انصراف از پرداخت" تنظیم شده است. ساختار HTML: html <h1>نتیجه پرداخت</h1> <hr /> <div class="alert alert-danger"> <h2>انصراف از پرداخت</h2> <p>@ViewBag.error</p> </div> <h1>نتیجه پرداخت</h1>: این تگ h1 یک عنوان بزرگ با متن "نتیجه پرداخت" را نمایش می‌دهد. <hr />: این تگ یک خط افقی را در صفحه ایجاد می‌کند. <div class="alert alert-danger">: این تگ div یک پیام انصراف از پرداخت را در یک باکس هشدار قرمز (با کلاس‌های "alert alert-danger" از Bootstrap) نمایش می‌دهد. <h2>انصراف از پرداخت</h2>: این تگ h2 یک عنوان کوچک‌تر با متن "انصراف از پرداخت" را نمایش می‌دهد. <p>@ViewBag.error</p>: این تگ p یک پاراگراف با متن خطا (در صورت وجود) را نمایش می‌دهد. مقدار @ViewBag.error از کنترلر به ویو ارسال شده است و پیام خطا را نمایش می‌دهد. نتیجه‌گیری این ویو برای نمایش نتیجه انصراف از پرداخت طراحی شده است. در صورتی که کاربر انصراف از پرداخت را انتخاب کند، پیام مناسب به همراه جزئیات خطا (در صورت وجود) به کاربر نمایش داده می‌شود. استفاده از کلاس‌های Bootstrap باعث زیباسازی و سازماندهی بهتر صفحه می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد یک متد اکشن به نام PaymenBytHttpClient در کنترلر HomeController است که برای ارسال درخواست پرداخت به زرین‌پال با استفاده از HttpClient و دریافت نتیجه پرداخت استفاده می‌شود. همچنین این متد خطاهای مربوط به قطع اتصال به درگاه یا اینترنت را مدیریت می‌کند. جزئیات کد: تعریف متد: csharp public async Task<IActionResult> PaymenBytHttpClient() { این خط نشان می‌دهد که متد PaymenBytHttpClient یک اکشن از نوع Task<IActionResult> است که به صورت ناهمزمان (asynchronous) اجرا می‌شود و یک IActionResult را برمی‌گرداند. بدنه متد: csharp try { using (var client = new HttpClient()) { RequestParameters parameters = new RequestParameters(merchant, amount, description, callbackurl, "", ""); var json = JsonConvert.SerializeObject(parameters); HttpContent content = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(URLs.requestUrl, content); string responseBody = await response.Content.ReadAsStringAsync(); JObject jo = JObject.Parse(responseBody); string errorscode = jo["errors"].ToString(); JObject jodata = JObject.Parse(responseBody); string dataauth = jodata["data"].ToString(); if (dataauth != "[]") { authority = jodata["data"]["authority"].ToString(); string gatewayUrl = URLs.gateWayUrl + authority; return Redirect(gatewayUrl); } else { return BadRequest("Error: " + errorscode); } } } بیایید این بدنه را تجزیه کنیم: Try-Catch Block: از try-catch برای مدیریت خطاها استفاده می‌شود. اگر خطایی رخ دهد، یک استثنا (Exception) پرتاب می‌شود و خطا ثبت (log) می‌شود. ایجاد HttpClient: csharp using (var client = new HttpClient()) { این کد یک شیء HttpClient ایجاد می‌کند که برای ارسال درخواست HTTP استفاده می‌شود. ایجاد شیء RequestParameters: csharp RequestParameters parameters = new RequestParameters(merchant, amount, description, callbackurl, "", ""); این خط یک نمونه از کلاس RequestParameters ایجاد می‌کند که شامل پارامترهای مورد نیاز برای درخواست پرداخت است. سریال‌سازی JSON: csharp var json = JsonConvert.SerializeObject(parameters); این کد شیء parameters را به یک رشته JSON سریال‌سازی می‌کند. ایجاد HttpContent: csharp HttpContent content = new StringContent(json, Encoding.UTF8, "application/json"); این کد محتوای درخواست HTTP را با استفاده از رشته JSON ایجاد می‌کند و نوع محتوا را به application/json تنظیم می‌کند. ارسال درخواست و دریافت پاسخ: csharp HttpResponseMessage response = await client.PostAsync(URLs.requestUrl, content); string responseBody = await response.Content.ReadAsStringAsync(); این کد درخواست POST را به URL مشخص شده ارسال و پاسخ آن را به صورت ناهمزمان دریافت می‌کند. تجزیه پاسخ JSON: csharp JObject jo = JObject.Parse(responseBody); string errorscode = jo["errors"].ToString(); JObject jodata = JObject.Parse(responseBody); string dataauth = jodata["data"].ToString(); این کد پاسخ JSON را به اشیاء JObject تبدیل می‌کند تا بتواند داده‌ها و خطاها را استخراج کند. بررسی داده‌ها و خطاها: csharp if (dataauth != "[]") { authority = jodata["data"]["authority"].ToString(); string gatewayUrl = URLs.gateWayUrl + authority; return Redirect(gatewayUrl); } else { return BadRequest("Error: " + errorscode); } اگر داده‌ها وجود داشته باشند، شناسه تراکنش (authority) استخراج و کاربر به صفحه پرداخت هدایت می‌شود. اگر خطا وجود داشته باشد، پیام خطا برگردانده می‌شود.