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
<PackageReference Include="Spoleto.VirtualKassa.MultiBank" Version="2.0.8" />
paket add Spoleto.VirtualKassa.MultiBank --version 2.0.8
#r "nuget: Spoleto.VirtualKassa.MultiBank, 2.0.8"
// 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
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 | Versions 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. |
-
net7.0
- Microsoft.Extensions.Http (>= 8.0.0)
- Spoleto.Common (>= 2.9.17.1649)
-
net8.0
- Microsoft.Extensions.Http (>= 8.0.0)
- Spoleto.Common (>= 2.9.17.1649)
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 | 187 | 9/20/2024 |
2.0.7 | 117 | 9/6/2024 |
2.0.6 | 123 | 9/5/2024 |
2.0.5 | 110 | 7/18/2024 |
2.0.4 | 424 | 4/26/2024 |
2.0.3 | 167 | 4/2/2024 |
2.0.2 | 121 | 4/1/2024 |
2.0.1 | 140 | 3/29/2024 |
2.0.0 | 125 | 3/29/2024 |
1.12.6.1732 | 207 | 12/6/2023 |
1.12.6.1730 | 155 | 12/6/2023 |
1.12.6.1622 | 166 | 12/6/2023 |
1.11.28.1250 | 149 | 11/28/2023 |
1.11.28.1235 | 151 | 11/28/2023 |
1.11.17.2106 | 168 | 11/17/2023 |
1.11.17.1209 | 155 | 11/17/2023 |
1.11.16.1614 | 150 | 11/16/2023 |
1.11.2.1248 | 160 | 11/2/2023 |
1.10.30.1628 | 142 | 10/30/2023 |
1.10.27.1544 | 153 | 10/27/2023 |
1.10.26.936 | 154 | 10/26/2023 |
1.10.10.1609 | 144 | 10/10/2023 |
1.8.11.1303 | 191 | 8/11/2023 |
1.8.11.1006 | 183 | 8/11/2023 |
1.8.7.406 | 188 | 8/7/2023 |