Spoleto.VirtualKassa.MultiBank 2.0.8

dotnet add package Spoleto.VirtualKassa.MultiBank --version 2.0.8                
NuGet\Install-Package Spoleto.VirtualKassa.MultiBank -Version 2.0.8                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Spoleto.VirtualKassa.MultiBank" Version="2.0.8" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Spoleto.VirtualKassa.MultiBank --version 2.0.8                
#r "nuget: Spoleto.VirtualKassa.MultiBank, 2.0.8"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Spoleto.VirtualKassa.MultiBank as a Cake Addin
#addin nuget:?package=Spoleto.VirtualKassa.MultiBank&version=2.0.8

// Install Spoleto.VirtualKassa.MultiBank as a Cake Tool
#tool nuget:?package=Spoleto.VirtualKassa.MultiBank&version=2.0.8                

Spoleto.VirtualKassa.MultiBank

alternate text is missing from this package README image alternate text is missing from this package README image Build

C# SDK для интеграции с хостом Мульти-Банка (Узбекистан) для передачи информации об оплатах покупок.

The project for integration with MultiBank host.

Быстрый старт

Клиент написан на C# .NET 7.0, .NET 8.0

Установка Nuget пакета:

Для использования этого SDK необходимо установить Nuget пакет Spoleto.VirtualKassa.MultiBank: https://www.nuget.org/packages/Spoleto.VirtualKassa.MultiBank

Install-Package Spoleto.VirtualKassa.MultiBank -ProjectName StoreApplication

MultiBankProvider

Для создания экземпляра MultiBankProvider рекомендуется использовать Spoleto.VirtualKassa.MultiBank.MultiBankProviderFactory:

var factory = new MultiBankProviderFactory();

var provider = factory.Build();

// Либо с передачей экземпляра HttpClient:
var httpClient = new HttpClient();
var factory = new MultiBankProviderFactory()
              .WithHttpClient(httpClient);

var provider = factory.Build();

Dependency Injection

Чтобы интегрировать Spoleto.VirtualKassa.MultiBank в Microsoft Dependency injection следует использовать NuGet пакет Spoleto.VirtualKassa.MultiBank.Extensions. Этот пакет предоставляет методы-расширения для интерфейса IServiceCollection, которые регистрируют MultiBankProvider как transient сервис.

using Microsoft.Extensions.DependencyInjection;
using Spoleto.VirtualKassa.MultiBank.Extensions;
using Spoleto.VirtualKassa.MultiBank.Models;

// Set up the dependency injection container
var services = new ServiceCollection();        

// Register your dependencies here
services.AddMultiBank();

// Build the service provider
var serviceProvider = services.BuildServiceProvider();

Внедрение службы MultiBankProvider в ваши классы

После регистрации Spoleto.VirtualKassa.MultiBank в вашем фреймворке Dependency Injection вы можете внедрить MultiBankProvider в любой класс вашего приложения.

Для этого внедрите интерфейс IMultiBankProvider в конструкторы классов, в которых вы хотите использовать функциональность MultiBankProvider:

public class YourMultiBankClass
{
    private readonly ILogger<YourMultiBankClass> _logger;
    private readonly IMultiBankProvider _multiBankProvider;

    public YourMultiBankClass(ILogger<YourMultiBankClass> logger, IMultiBankProvider multiBankProvider)
    {
        _logger = logger;
        _multiBankProvider = multiBankProvider;
    }

    public async Task Sell(MultiBankOption settings, SaleSlip slip)
    {
        var result = await _multiBankProvider.SellAsync(settings, saleSlip);

        // log the result:
        _logger.LogInformation("Sold {slip} with result: {result}", slip, result);
    }
}

Примеры вызовов методов API

Открытие смены
var settings = new MultiBankOption { ServiceUrl = "http://localhost:8080/" };
var openShiftInfo = new OpenShiftRequest(DateTime.UtcNow, "Иванов Иван");

await multiBankProvider.OpenShiftAsync(settings, openShiftInfo);
Закрытие смены
var settings = new MultiBankOption { ServiceUrl = "http://localhost:8080/" };
var closeShiftInfo = new CloseShiftRequest(DateTime.UtcNow, "Иванов Иван");

await multiBankProvider.CloseShiftAsync(settings, closeShiftInfo);
Продажа
var settings = new MultiBankOption { ServiceUrl = "http://localhost:8080/" };

var multiBankProvider = serviceProvider.GetService<IMultiBankProvider>()!;
var saleSlip = new SaleSlip
{
    Items = new List<SlipItem>
    {
        new SlipItem
        {
            ProductName = "Свитер" ,
            ProductLabel = "4780019900571",
            ProductBarcode = "4780019900571",
            Count = 1,
            ProductPrice = 1000,
            TotalProductPrice = 1000,
            ClassifierClassCode = "01902001009030001"
        }
    },
    ReceiptCashierName = "Иванов Иван",
    ReceiptGnkReceivedCash = 1000,
    ReceiptSum=1000,
    ReceiptGnkTime = DateTime.UtcNow,
    Location = new Location { Latitude = 45.29671408606234, Longitude = 79.21787478269367 }
};

// Act
var result = await multiBankProvider.SellAsync(settings, saleSlip);
Возврат
var saleDate = DateTime.Parse("2023-08-03T12:13:10");
var returnSlip = new ReturnSlip
{
    Items = new List<SlipItem>
    {
        new SlipItem
        {
            ProductName = "Свитер" ,
            ProductLabel = "4780019900571",
            ProductBarcode = "4780019900571",
            Count = 1,
            ProductPrice = 1000,
            TotalProductPrice = 1000,
            ClassifierClassCode = "01902001009030001"
        }
    },
    ReceiptCashierName = "Иванов Иван",
    ReceiptGnkReceivedCash = 1000,
    ReceiptSum=1000,
    ReceiptGnkTime = DateTime.UtcNow,
    RefundInfo = new()
    { 
        TerminalID = "UZ191211502326",
        ReceiptSeq = "1013",
        DateTime = saleDate,
        FiscalSign = "146130134900" 
    },
    Location = new Location { Latitude = 45.29671408606234, Longitude = 79.21787478269367 }
};

// Act
var result = await multiBankProvider.ReturnAsync(settings, returnSlip);
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Spoleto.VirtualKassa.MultiBank:

Package Downloads
Spoleto.VirtualKassa.MultiBank.Extensions

Расширения для работы с Microsoft Dependency injection фреймворком для C# SDK для интеграции с хостом Мульти-Банка (Узбекистан) для передачи информации об оплатах покупок. The extensions for Microsoft Dependency injection framework for the project for integration with MultiBank host.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.8 174 9/20/2024
2.0.7 109 9/6/2024
2.0.6 116 9/5/2024
2.0.5 102 7/18/2024
2.0.4 419 4/26/2024
2.0.3 162 4/2/2024
2.0.2 117 4/1/2024
2.0.1 135 3/29/2024
2.0.0 119 3/29/2024
1.12.6.1732 202 12/6/2023
1.12.6.1730 150 12/6/2023
1.12.6.1622 161 12/6/2023
1.11.28.1250 144 11/28/2023
1.11.28.1235 146 11/28/2023
1.11.17.2106 161 11/17/2023
1.11.17.1209 146 11/17/2023
1.11.16.1614 145 11/16/2023
1.11.2.1248 153 11/2/2023
1.10.30.1628 137 10/30/2023
1.10.27.1544 148 10/27/2023
1.10.26.936 147 10/26/2023
1.10.10.1609 137 10/10/2023
1.8.11.1303 186 8/11/2023
1.8.11.1006 178 8/11/2023
1.8.7.406 183 8/7/2023