‫پَرباد – آموزش پیاده‌سازی پرداخت آنلاین در دات نت – تنظیمات


‫پَرباد – آموزش پیاده‌سازی پرداخت آنلاین در دات نت – تنظیمات

در قسمت قبل یاد گرفتیم چگونه عملیات پرداخت را انجام دهیم. در این قسمت قصد داریم با تنظیمات پَرباد آشنا شویم.  این تنظیمات در حالت کلی شامل موارد زیر است: درگاه‌ها (اجباری) HttpContext (اجباری) پایگاه داده (اجباری) پیام‌ها (اختیاری) روش‌های تنظیم: وارد کردن تنظیمات به صورت ثابت (استاتیک) تنظیم به صورت داینامیک (برای مثال استفاده از یک...

در قسمت قبل یاد گرفتیم چگونه عملیات پرداخت را انجام دهیم. در این قسمت قصد داریم با تنظیمات پَرباد آشنا شویم.

این تنظیمات در حالت کلی شامل موارد زیر است:

درگاه‌ها (اجباری) HttpContext (اجباری) پایگاه داده (اجباری) پیام‌ها (اختیاری)

روش‌های تنظیم:

وارد کردن تنظیمات به صورت ثابت (استاتیک) تنظیم به صورت داینامیک (برای مثال استفاده از یک منبع، مانند پایگاه داده وب سایت شما) تنظیم توسط اینترفیس مایکروسافت IConfiguration
اما قبل از شروع یادگیری تنظیمات، بهتر است با نحوه کارکرد تنظیمات آشنا شوید.
پَرباد برای ایجاد و مدیریت تنظیمات و سرویس‌های خود، به صورت توکار از تزریق وابستگی‌ها استفاده می‌کند. بنابراین تنظیم کردن آن به دو حالت امکان پذیر است:
تنظیم برای پروژه‌هایی که از تزریق وابستگی‌های مایکروسافت استفاده میکنند (مانند اپلیکیشن‌های ASP.NET CORE). تنظیم برای پروژه‌هایی که از تزریق وابستگی‌های مایکروسافت استفاده نمی‌کنند (مانند Autofac) و یا اینکه اصلا از هیچ تزریق وابستگی‌ای استفاده نمی‌کنند.
برای روش اول، تنظیمات در حالت کلی به صورت زیر است:
(نمونه مثال در یک اپلیکیشن ASP.NET CORE)
using Parbad.Builder; public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddParbad() // .configurations // .configurations // .configurations }

همانطور که می‌بینید، با استفاده از سرویس موجود در اپلیکیشن، به راحتی می‌توانید تنظیمات مورد نیاز را انجام دهید.

و برای روش دوم، تنظیمات در حالت کلی به صورت زیر است:
(نمونه مثال در یک اپلیکیشن ASP.NET MVC)
using Parbad.Builder; public class Startup { public void Configuration(IAppBuilder app) { ParbadBuilder.CreateDefaultBuilder() // .configurations // .configurations // .configurations } }
اکنون، با توجه به اینکه با روش‌های مختلف تنظیمات آشنا شدید، برای ادامه توضیحات و مثال‌ها (صرفا جهت نوشتن راحت‌تر این مطلب) از همان روش اول استفاده می‌کنیم.

تنظیمات درگاه‌ها

طبیعتا شما برای انجام یک پرداخت در درگاه بانک ملت (برای مثال) نیاز به اطلاعاتی مانند نام کاربری و رمز عبور حساب بانکی خود را دارید.

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


روش اول: وارد کردن اطلاعات ثابت

نمونه کد‌های تنظیم درگاه بانک ملت:

services.AddParbad() .ConfigureGateways(gateways => { gateways .AddMellat() .WithOptions(options => { options.TerminalId = 123; options.UserName = "MyId"; options.UserPassword = "MyPassword"; }); });

نکته: تنظیم سایر درگاه‌ها نیز کاملا مشابه فرمت کد‌های بالا است.


روش دوم: تنظیم به صورت داینامیک
همانطور که در ابتدای این مقاله نیز گفته شد، شما می‌توانید این تنظیمات را به روش‌های دیگری نیز انجام دهید.
مثال: تنظیم درگاه ملت توسط یک منبع:

ما قصد داریم اطلاعات مربوط به درگاه بانک ملت را از پایگاه داده فروشگاه خود دریافت کنیم. بنابراین یک منبع را به صورت زیر تعریف می‌کنیم:

public class MellatOptionsProvider : IParbadOptionsProvider { private readonly IMySettingsService _settingsService; public MellatOptionsProvider(IMySettingsService settingsService) { _settingsService = settingsService; } public void Provide(MellatGatewayOptions options) { var settings = _settingsService.GetSettings(); options.TerminalId = settings.TerminalId; options.UserName = settings.UserName; options.UserPassword = settings.UserPassword; } }

کد بالا اطلاعات مربوط به درگاه بانک ملت را از پایگاه داده (وب سایت شما) دریافت کرده و سپس در متد Provide، آنها را نسبت می‌دهد.

نکته: همانطور که در مثال بالا می‌بینید، در تعریف یک منبع، شما همچنین قادر به
تزریق وابستگی‌ها نیز هستید (در صورت نیاز). بدیهی است که در اینجا، اینترفیس
IMySettingsService توسط تزریق وابستگی اپلیکیشن شما باید ثبت شده باشد، در غیر اینصورت پَرباد قادر به ساخت منبع شما نخواهد بود.
در نهایت منبع را به پَرباد معرفی می‌کنیم:
services.AddParbad() .ConfigureGateways(gateways => { gateways .AddMellat() .WithOptionsProvider(ServiceLifetime.Transient); });

نکته: ServiceLifetime در اینجا تعیین کننده طول عمر منبع ما است.

نمونه مثال کامل را در اینجا می‌توانید پیدا کنید.


روش سوم: تنظیم توسط IConfiguration
اگر با اپلیکیشن‌های ASP.NET CORE آشنایی داشته باشید، پس قطعا IConfiguration را نیز می‌شناسید. این اینترفیس به شما کمک می‌کند تنظیمات مورد نیاز در یک اپلیکیشن را از منابع مختلفی (مانند فایل‌های JSON ) دریافت و استفاده کنید.

کد زیر نمونه تنظیم درگاه بانک ملت، با استفاده از IConfiguration و یک فایل JSON است.

services.AddParbad() .ConfigureGateways(gateways => { gateways .AddMellat() .WithConfiguration(IConfiguration.GetSection("Mellat"); });

و محتوای فایل JSON:

"Mellat": { "TerminalId": 123, "UserName": "MyUsername", "UserPassword": "MyPassword" }

تنظیمات HttpContext

پَرباد برای تبادل اطلاعات با درگاه‌های بانکی، نیاز به یک HttpContext دارد.


ASP.NET WebForms, ASP.NET MVC
ParbadBuilder.CreateDefaultBuilder() .ConfigureHttpContext(builder => builder.UseOwinFromCurrentHttpContext());

در کد بالا، پَرباد HttpContext مورد نیاز خود را توسط Owin تامین می‌کند. متد UseOwin همچنین شامل گزینه‌های دیگری جهت تنظیمات بیشتر نیز می‌باشد.

ASP.NET CORE
services.AddParbad() .ConfigureHttpContext(builder => builder.UseDefaultAspNetCore());

در کد بالا، پَرباد از اینترفیس پیش فرض IHttpContextAccessor در اپلیکیشن ASP.NET CORE استفاده می‌کند.


نکته: اگر این اینترفیس قبلا توسط شما و یا اپلیکیشن شما ثبت شده باشد، پَرباد از آن استفاده خواهد کرد؛ در غیر اینصورت، کلاس پیش فرض HttpContextAccessor را به صورت خودکار جهت استفاده ثبت می‌کند.

تنظیمات پایگاه داده
پایگاه داده استفاده شده در پَرباد سیستم مشهور و شناخته شده‌ی EntityFrameworkCore است. این بدان معناست که شما می‌توانید پایگاه داده مورد نیاز پَرباد را توسط منابع بسیار مختلفی از جمله SQL Server, MySql, Oracle, SQLite و غیره تامین کنید.
SQL Server و InMemory به صورت پیش فرض با پکیج پَرباد در اپلیکیشن شما نصب خواهند شد. اما اگر نیاز به پایگاه داده‌ی دیگری دارید، می‌توانید آن را از بین تامین کننده‌های مختلف انتخاب، نصب و استفاده کنید.
نمونه کد‌های تنظیم را در زیر می‌توانید مشاهده کنید:
SQL Server
services.AddParbad() .ConfigureStorage(builder => builder.UseParbadSqlServer("ConnectionString"));
نکته: همانطور که می‌دانید، متد اصلی دیگری به نام UseSqlServer وجود دارد. تفاوت آن با متد استفاده شده‌ی در کد بالا این است که UseParbadSqlServer ، به صورت خودکار Migration‌های مرتبط با پروژه پَرباد را نیز اعمال می‌کند. هر چند که این عمل توسط خود شما نیز امکان پذیر است.
In Memory Database
services.AddParbad() .ConfigureStorage(builder => builder.UseInMemoryDatabase("MyMemoryName"));

نکته: اگر به هر دلیلی، سرور و یا وب سایت شما، ری‌استارت شود، اطلاعات موجود در این پایگاه داده ( InMemoryDatabase ) نیز از بین خواهند رفت. به عبارت دیگر، این پایگاه داده پایدار نیست و صرفا جهت اهداف تست از آن استفاده می‌شود.


تنظیمات پیام‌ها (اختیاری)
منظور از پیام‌ها، پیام‌های متنی‌ای است که پس از انجام عملیات‌های مختلف به شما بازگشت داده می‌شوند؛ برای مثال: پرداخت با موفقیت انجام شد.
شما می‌توانید این پیام‌ها را به شکل زیر تنظیم کنید:
services.AddParbad() .ConfigureMessages(options => { options.PaymentSucceed = "Payment was successful."; options.PaymentFailed = "Payment was not successful."; });

بدیهی است که شما می‌توانید این تنظیمات را نادیده گرفته و خودتان مسئولیت نمایش پیام به کاربران را به عهده بگیرید.

نکته: شما همچنین می‌توانید از اینترفیس IConfiguration که بالاتر توضیح داده شد نیز برای تنظیم پیام‌ها استفاده کنید.
نمونه پروژه‌ها:
مقاله‌های مرتبط:

dotnettips

‫پَرباد – آموزش پیاده‌سازی پرداخت آنلاین در دات نت – تنظیمات

حتما بخوانید: سایر مطالب گروه آموزش

برای مشاهده فوری اخبار و مطالب در کانال تلگرام ما عضو شوید!



بیشترین بازدید یک ساعت گذشته


تصاویر | تیپ خاص و متفاوت زنان یگان ویژه در رژه روز ارتش