Sina-Soltani / Parbad

A free, open-source, integrated and extensible library which connects your web applications to online payment gateways. Gateways can be added or developed by you.
GNU Lesser General Public License v3.0
371 stars 81 forks source link

اضافه کردن اطلاعات اکانت در زمان درخواست یا runtime #348

Closed ebrahimkhodadadi closed 1 year ago

ebrahimkhodadadi commented 1 year ago

Is your feature request related to a problem? Please describe. آیا ویژگی درخواستی شما مربوط به مشکل خاصی است؟ زمانی که Request فراخوانی میشه اطلاعات اکانت رو در ورودی نمیشه وارد کرد یا در زمان runtime بعد از pipeline نمیشه اکانتی اضافه کرد

Describe the feature you'd like ویژگی مورد نظر را توضیح دهید ۱- در ورودی Request به غیر از فراخوانی اکانت از قبل اضافه شده اکانت قابل پیاده سازی باشه ۲- امکان حذف یا ویرایش اکانت در زمان runtime باشه

Sina-Soltani commented 1 year ago

درود متوجه منظور شما نمیشم. هدف از انجام این کار چه چیزی هست؟

ebrahimkhodadadi commented 1 year ago

درود متوجه منظور شما نمیشم. هدف از انجام این کار چه چیزی هست؟

پروژه ای هست که به ازای هر یوزر درگاه های خودشون رو دارند در نتیجه نیاز هست که در زمان فراخوانی درگاه دیتابیس چک بشه و اطلاعات درگاه دریافت بشه چون ممکنه اطلاعات ایجاد یا ویرایش یا حذف بشه

Sina-Soltani commented 1 year ago

مگر متد UseAccount و درگاه داینامیک کار شما رو راه نمیندازه؟

ebrahimkhodadadi commented 1 year ago

متد UseAccount اکانتی که از قبل ساخته شده رو میگیره ولی شاید پروژه دیپلوی شده باشه و درحال کار باشه و یوزر بعدا درگاه رو ثبت کنه در نتیجه در کش اضافه نشده و نیاز هست که در زمانی که نیاز به هدایت به درگاه هست اطلاعات درگاه اضافه بشه

Sina-Soltani commented 1 year ago

داکیومنت و راهنما رو لطفا مطالعه کنید درگاه داینامیک

ebrahimkhodadadi commented 1 year ago

بعد از مطالعه مستندات https://github.com/Sina-Soltani/Parbad/wiki/Developing-a-new-Gateway متوجه شدم منظورتون اضافه کردن درگاه هست درصورتی که نیازی به اضافه کردن درگاه ندارم و اطلاعات درگاه (اکانت) به جای UseAccount که فقط اکانتی که از قبل در WithAccounts ایجاد شده رو میگیره درصورتی که میخوام اطلاعات GatewayAccount رو بگیره و در همون لحظه اطلاعات درگاه تعریف بشه

Sina-Soltani commented 1 year ago

حساب درگاه به صورت داینامیک

ebrahimkhodadadi commented 1 year ago

نحوه استفاده: Then all you need to do is to tell Parbad about your custom source as follows:

.ConfigureGateways(gateways =>
{
   gateways
        .AddMellat()
        .WithAccounts(source => source.Add<GatewaysAccounts>(ServiceLifetime.Transient));

   // other gateways...
})

پس بعد از هر بار ویرایش اطلاعات اکانت یا اضافه کردن اکانت باید پروژه ریستارت بشه که pipeline رو طی کنه؟ به عنوان مثال به این شکل نیاز دارم:

var result = await _onlinePayment.RequestAsync(invoice =>
            {
                invoice.SetAmount(viewModel.Amount)
                    .SetCallbackUrl(callbackUrl)
                    .UseMellat().WithAccount(new MellatGatewayAccount()
                {
                    Name = "Mellat",
                    TerminalId = 123,
                    UserName = "MyId",
                    UserPassword = "MyPassword",
                });
             };
Sina-Soltani commented 1 year ago

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