mirror of
https://github.com/yawaflua/Lava.NET.git
synced 2025-12-08 19:39:33 +02:00
1.0.1 Add descriptions of methods
This commit is contained in:
@@ -4,7 +4,13 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>1.0.0</Version>
|
||||
<Version>1.0.1</Version>
|
||||
<GenerateDocumentationFile>False</GenerateDocumentationFile>
|
||||
<Authors>yawaflua</Authors>
|
||||
<Company>yawaflua</Company>
|
||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||
<RepositoryUrl>https://github.com/yawaflua/Lava.NET</RepositoryUrl>
|
||||
<NeutralLanguage>ru</NeutralLanguage>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -12,4 +18,12 @@
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="README.md">
|
||||
<Pack>True</Pack>
|
||||
<PackagePath>\</PackagePath>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
92
Program.cs
92
Program.cs
@@ -13,54 +13,123 @@ namespace Lava.NET
|
||||
/// </summary>
|
||||
/// <param name="token">Токен от Lava.ru</param>
|
||||
/// <param name="type">Тип вашего аккаунта</param>
|
||||
public class ILavaAPI(string token, LavaType type)
|
||||
public class LavaAPI(string token, LavaType type)
|
||||
{
|
||||
internal readonly HttpClient _httpClient = new HttpClient()
|
||||
{
|
||||
BaseAddress = new("https://api.lava.ru/")
|
||||
};
|
||||
internal async Task<string> SendRequest(string path, LavaType? neededType, HttpMethod method, string? body = null)
|
||||
/// <summary>
|
||||
/// Отправка запроса на сервер
|
||||
/// </summary>
|
||||
/// <param name="path">path метода</param>
|
||||
/// <param name="neededType">требуемый тип аккаунта</param>
|
||||
/// <param name="method">Метод для отправки запроса</param>
|
||||
/// <param name="body">string body</param>
|
||||
/// <returns>string от сервера</returns>
|
||||
/// <exception cref="Exceptions.TypeException">Несоответсвие типа аккаунта и требуемого типа</exception>
|
||||
internal virtual async Task<string> SendRequest(string path, LavaType? neededType, HttpMethod method, string? body = null)
|
||||
{
|
||||
if (neededType != LavaType.any && neededType != type) throw new Exceptions.TypeException("Your Lava.ru account type is not equals needed type");
|
||||
_httpClient.DefaultRequestHeaders.Authorization = new("", token);
|
||||
using (var message = new HttpRequestMessage(method, path))
|
||||
using (var message = new HttpRequestMessage(method, _httpClient.BaseAddress + path))
|
||||
{
|
||||
|
||||
message.Content = body == null ? new StringContent(body.ToString()) : null;
|
||||
var req = await _httpClient.SendAsync(message);
|
||||
return await req.Content.ReadAsStringAsync();
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<PaymentResponse?> CreatePaymentAsync(PaymentRequest data)
|
||||
/// <summary>
|
||||
/// Создание ссылки на оплату (Выставление счета)
|
||||
/// </summary>
|
||||
/// <param name="data"> Данные, передаваемые в запрос. Смотреть АПИ</param>
|
||||
/// <returns>Ответ от сервера или null</returns>
|
||||
public virtual async Task<PaymentResponse?> CreatePaymentAsync(PaymentRequest data)
|
||||
=> JsonConvert.DeserializeObject<PaymentResponse>(await SendRequest("invoice/create", LavaType.any, HttpMethod.Post, data.ToString()));
|
||||
public async Task<PaymentInfo?> GetPaymentInfoAsync(string id)
|
||||
/// <summary>
|
||||
/// Получение информации о выставленном счете, в т.ч. о том, оплачен ли счет
|
||||
/// </summary>
|
||||
/// <param name="id">айди выставленного счета</param>
|
||||
/// <returns>Ответ от сервера или null</returns>
|
||||
public virtual async Task<PaymentInfo?> GetPaymentInfoAsync(string id)
|
||||
=> JsonConvert.DeserializeObject<PaymentInfo>(await SendRequest("invoice/info", LavaType.any, HttpMethod.Post, id));
|
||||
/// <summary>
|
||||
/// Установка webhook для получения информации о пополнениях, оплате выставленных счетов и т.д.
|
||||
/// </summary>
|
||||
/// <param name="url">HTTPS url до вашего бекенда, куда должен приходить вебхук</param>
|
||||
/// <returns></returns>
|
||||
public async Task SetWebhookUrl(string url)
|
||||
=> await SendRequest("invoice/set-webhook", LavaType.any, HttpMethod.Post, url);
|
||||
/// <summary>
|
||||
/// Проверка токена
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> pingAsync()
|
||||
=> JsonNode.Parse(await SendRequest("test/ping", LavaType.any, HttpMethod.Get))?["status"]?.ToString().Equals(true) ?? false;
|
||||
}
|
||||
public class PublicLavaAPI : ILavaAPI
|
||||
public sealed class PublicLavaAPI : LavaAPI
|
||||
{
|
||||
// Для обычных юзеров + общедоступное
|
||||
/// <summary>
|
||||
/// Для обычных юзеров, т.е. вкладка Кошелек
|
||||
/// </summary>
|
||||
/// <param name="token">токен от вашего аккаунта</param>
|
||||
public PublicLavaAPI(string token) : base(token, LavaType.wallet) { }
|
||||
|
||||
/// <summary>
|
||||
/// Получение кошельков на вашем аккаунте
|
||||
/// </summary>
|
||||
/// <returns>Список из кошельков или null</returns>
|
||||
public async Task<Wallet[]?> getWallets()
|
||||
=> JsonConvert.DeserializeObject<Wallet[]>(await SendRequest("wallet/list", LavaType.wallet, HttpMethod.Get));
|
||||
/// <summary>
|
||||
/// Cоздние заявки на вывод
|
||||
/// </summary>
|
||||
/// <param name="withdraw">данные, передаваемые в запрос</param>
|
||||
/// <returns>Стандартный ответ от сервера или null</returns>
|
||||
public async Task<DefaultResponse?> MakeWithdraw(Withdraw withdraw)
|
||||
=> JsonConvert.DeserializeObject<DefaultResponse>(await SendRequest("withdraw/create", LavaType.wallet, HttpMethod.Post, withdraw.ToString()));
|
||||
/// <summary>
|
||||
/// Информация о выводе
|
||||
/// </summary>
|
||||
/// <param name="id">Id заявки</param>
|
||||
/// <returns>Информация о выводе</returns>
|
||||
public async Task<WithdrawInfo?> InfoWithdrawAsync(string id)
|
||||
=> JsonConvert.DeserializeObject<WithdrawInfo>(await SendRequest("withdraw/info", LavaType.wallet, HttpMethod.Post, id));
|
||||
/// <summary>
|
||||
/// Создание перевода
|
||||
/// </summary>
|
||||
/// <param name="data">Данные, передаваемые в запрос</param>
|
||||
/// <returns>Стандартный ответ от сервера или null</returns>
|
||||
public async Task<DefaultResponse?> MakeTransfer(Transfer data)
|
||||
=> JsonConvert.DeserializeObject<DefaultResponse>(await SendRequest("transfer/create", LavaType.wallet, HttpMethod.Post, data.ToString()));
|
||||
/// <summary>
|
||||
/// Получение информации о переводе
|
||||
/// </summary>
|
||||
/// <param name="id">Id перевода</param>
|
||||
/// <returns>Данные о переводе</returns>
|
||||
public async Task<TransferData?> GetTransferDataAsync(string id)
|
||||
=> JsonConvert.DeserializeObject<TransferData>(await SendRequest("transfer/info", LavaType.wallet, HttpMethod.Post, id));
|
||||
/// <summary>
|
||||
/// Получение всех транзакций
|
||||
/// </summary>
|
||||
/// <param name="transaction">Необ. данные для настройки вывода</param>
|
||||
/// <returns>Все транзакции</returns>
|
||||
public async Task<Transaction[]?> GetTransactionsAsync(TransactionParam? transaction = null)
|
||||
=> JsonConvert.DeserializeObject<Transaction[]>(await SendRequest("transactions/list", LavaType.wallet, HttpMethod.Post, transaction?.ToString()));
|
||||
/// <summary>
|
||||
/// Получение банков, подключенных к СБП
|
||||
/// </summary>
|
||||
/// <returns>Список банков</returns>
|
||||
public async Task<SBPBanks?> GetSBPBanksAsync()
|
||||
=> JsonConvert.DeserializeObject<SBPBanks>(await SendRequest("withdraw/get-sbp-bank-list", LavaType.wallet, HttpMethod.Post));
|
||||
}
|
||||
public class BusinessLavaAPI(string token) : ILavaAPI(token, LavaType.business)
|
||||
/// <summary>
|
||||
/// В РАЗРАБОТКЕ
|
||||
/// Часть lava.ru API, которая работает с бизнесом. Вкладка "Бизнес" dev.lava.ru
|
||||
/// </summary>
|
||||
/// <param name="token">Токен вашего аккаунта</param>
|
||||
public sealed class BusinessLavaAPI(string token) : LavaAPI(token, LavaType.business)
|
||||
{
|
||||
internal async Task<string> SendRequest(string path, LavaType? neededType = LavaType.business, HttpMethod? method = null, string? body = null, bool isSpecial = true)
|
||||
{
|
||||
@@ -79,6 +148,11 @@ namespace Lava.NET
|
||||
return await req.Content.ReadAsStringAsync();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Создание вывода
|
||||
/// </summary>
|
||||
/// <param name="request">Данные, передаваемые в запрос</param>
|
||||
/// <returns></returns>
|
||||
public async Task<PayoffResponse?> CreatePayoffAsync(PayoffRequest request)
|
||||
=> JsonConvert.DeserializeObject<PayoffResponse>(await SendRequest("business/payoff/create", body: request.ToString()));
|
||||
public async Task<PayoffDataResponse?> GetPayoffDataAsync(PayoffDataRequest request)
|
||||
|
||||
80
README.md
80
README.md
@@ -1 +1,79 @@
|
||||
# Lava.NET
|
||||
# Lava.NET
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> API <20><><EFBFBD><EFBFBD><EFBFBD> lava.ru.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> API
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [API <20><><EFBFBD><EFBFBD><EFBFBD> lava.ru](https://dev.lava.ru/)
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
```bash
|
||||
dotnet add package Lava.NET
|
||||
```
|
||||
### <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
```cs
|
||||
using Lava.NET;
|
||||
public class Program
|
||||
{
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
var publicLavaApi = new PublicLavaAPI("[ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ]");
|
||||
// ... <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
```
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ASP.NET <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
```cs
|
||||
// Startup.cs
|
||||
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
var publicLavaApi = new PublicLavaAPI("[ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ]");
|
||||
services.AddControllers();
|
||||
services
|
||||
|
||||
.AddSwaggerGen();
|
||||
|
||||
services
|
||||
// ...<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.AddSingleton(publicLavaAPI);
|
||||
}
|
||||
```
|
||||
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(.NET 8):
|
||||
```cs
|
||||
// PaymentController.cs
|
||||
|
||||
[ApiController]
|
||||
[Route("/payment/")]
|
||||
public class PaymentController(PublicLavaAPI lavaAPI) : ControllerBase
|
||||
{
|
||||
|
||||
|
||||
[HttpPost("lava")]
|
||||
public async Task<IActionResult> ValidatePaymentLava([FromBody] WebhookResponse webhookResponse)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return Ok(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 200, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> 15 <20><><EFBFBD>.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
```cs
|
||||
var publicLavaApi = new PublicLavaAPI("[<5B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>]");
|
||||
var createdPayment = await publicLavaApi.CreatePaymentAsync(
|
||||
new (){
|
||||
comment = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Telegram <20><><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD>.
|
||||
hook_url = $"https://example.com/api/payment/lava", // <20><><EFBFBD><EFBFBD>.
|
||||
merchant_id = "AskMeAboutBOT", // <20><><EFBFBD><EFBFBD>.
|
||||
merchant_name = "AskMeAboutBOT", // <20><><EFBFBD><EFBFBD>.
|
||||
custom_fields = $"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> webhook", // <20><><EFBFBD><EFBFBD>.
|
||||
success_url = $"https://example.com/", // <20><><EFBFBD><EFBFBD>.
|
||||
sum = 39.00f,
|
||||
wallet_to = "R123123123"
|
||||
}
|
||||
);
|
||||
Console.Out.WriteLine(createdPayment.url);
|
||||
|
||||
// >>> 'https://p2p.lava.ru/form?id=1ee31634-e3e0-34ce-1423-b5b4cb524c6a'
|
||||
```
|
||||
|
||||
@@ -8,31 +8,105 @@ namespace Lava.NET.Types.LavaAPI
|
||||
{
|
||||
public class PaymentRequest : IBase
|
||||
{
|
||||
public string wallet_to { get; set; }
|
||||
public float sum { get; set; }
|
||||
/// <summary>
|
||||
/// Ваш номер счета
|
||||
/// </summary>
|
||||
public string wallet_to { get; set; }
|
||||
/// <summary>
|
||||
/// Сумма с копейками и f на конце
|
||||
/// Пример: 1.00f
|
||||
/// </summary>
|
||||
public float sum { get; set; } = 1.00f;
|
||||
/// <summary>
|
||||
/// Уникальный номер счета в вашей системе
|
||||
/// </summary>
|
||||
public string? order_id { get; set; }
|
||||
/// <summary>
|
||||
/// Url для отправки webhook
|
||||
/// </summary>
|
||||
public string? hook_url { get; set; }
|
||||
public string? success_url { get; set; }
|
||||
/// <summary>
|
||||
/// Url для переадресации в случае успешной оплаты
|
||||
/// </summary>
|
||||
public string? success_url { get; set; }
|
||||
/// <summary>
|
||||
/// Url для переадресации в случае неуспешной оплаты
|
||||
/// </summary>
|
||||
public string? fail_url { get; set; }
|
||||
/// <summary>
|
||||
/// Время жизни счета в минутах
|
||||
/// Мин: 1 ; Макс: 43200
|
||||
/// </summary>
|
||||
public int? expire { get; set; } = 43200;
|
||||
/// <summary>
|
||||
/// С кого списывать комиссию:
|
||||
/// 1 - с клиента
|
||||
/// 0 - с магазина
|
||||
/// </summary>
|
||||
public string? subtract { get; set; }
|
||||
/// <summary>
|
||||
/// Дополнительные данные предаваемые в вебхуке
|
||||
/// </summary>
|
||||
public string? custom_fields { get; set; }
|
||||
/// <summary>
|
||||
/// Комментарий
|
||||
/// </summary>
|
||||
public string? comment { get; set; }
|
||||
/// <summary>
|
||||
/// ID марчанта(только в вебхуке)
|
||||
/// </summary>
|
||||
public string? merchant_id { get; set; }
|
||||
/// <summary>
|
||||
/// Название мерчанта (отображается в форме перевода)
|
||||
/// </summary>
|
||||
public string? merchant_name { get; set; }
|
||||
}
|
||||
public class PaymentResponse : IBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Статус запроса
|
||||
/// </summary>
|
||||
public string status { get; set; }
|
||||
/// <summary>
|
||||
/// Номер счета на оплату
|
||||
/// </summary>
|
||||
public string id { get; set; }
|
||||
/// <summary>
|
||||
/// Ссылка на оплату
|
||||
/// </summary>
|
||||
public string url { get; set; }
|
||||
/// <summary>
|
||||
/// Время истечения счета
|
||||
/// </summary>
|
||||
public int expire { get; set; }
|
||||
/// <summary>
|
||||
/// Сумма счета
|
||||
/// </summary>
|
||||
public string sum { get; set; }
|
||||
/// <summary>
|
||||
/// // URL для переадресации после успешной оплаты
|
||||
/// </summary>
|
||||
public string success_url { get; set; }
|
||||
/// <summary>
|
||||
/// URL для переадресации после неудачной оплаты
|
||||
/// </summary>
|
||||
public string fail_url { get; set; }
|
||||
/// <summary>
|
||||
/// адрес для вебхука
|
||||
/// </summary>
|
||||
public string hook_url { get; set; }
|
||||
/// <summary>
|
||||
/// Дополнительное поле
|
||||
/// </summary>
|
||||
public string custom_fields { get; set; }
|
||||
/// <summary>
|
||||
/// ID и наименование мерчанта
|
||||
/// </summary>
|
||||
public string merchant_name { get; set; }
|
||||
/// <summary>
|
||||
/// ID и наименование мерчанта
|
||||
/// </summary>
|
||||
|
||||
public string merchant_id { get; set; }
|
||||
}
|
||||
public class Invoice : IBase
|
||||
|
||||
@@ -8,7 +8,13 @@ namespace Lava.NET.Types.LavaAPI
|
||||
{
|
||||
public class Datum : IBase
|
||||
{
|
||||
/// <summary>
|
||||
/// ID банка
|
||||
/// </summary>
|
||||
public object id { get; set; }
|
||||
/// <summary>
|
||||
/// Название
|
||||
/// </summary>
|
||||
public string name { get; set; }
|
||||
}
|
||||
|
||||
|
||||
@@ -9,11 +9,34 @@ namespace Lava.NET.Types.LavaAPI
|
||||
|
||||
public class TransactionParam : IBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Тип перевода
|
||||
/// withdraw - вывод
|
||||
/// transfer - перевод
|
||||
/// </summary>
|
||||
public string? transfer_type { get; set; }
|
||||
/// <summary>
|
||||
/// Номер кошелька
|
||||
/// </summary>
|
||||
public string? account { get; set; }
|
||||
/// <summary>
|
||||
/// С какого периода показывать транзакции
|
||||
/// Пример: 21.10.2021 10:30:30
|
||||
/// </summary>
|
||||
public string? period_start { get; set; }
|
||||
/// <summary>
|
||||
/// До какого времени показывать транзакции
|
||||
///
|
||||
/// Пример: 21.10.2021 11:30:00
|
||||
/// </summary>
|
||||
public string? period_end { get; set; }
|
||||
/// <summary>
|
||||
/// Сдвиг
|
||||
/// </summary>
|
||||
public int? offset { get; set; }
|
||||
/// <summary>
|
||||
/// Лимит
|
||||
/// </summary>
|
||||
public int? limit { get; set; }
|
||||
}
|
||||
|
||||
|
||||
@@ -8,22 +8,67 @@ namespace Lava.NET.Types.LavaAPI
|
||||
{
|
||||
public class Transfer : IBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Номер кошелька с которого совершается перевод
|
||||
/// </summary>
|
||||
public string account_from { get; set; }
|
||||
/// <summary>
|
||||
/// Номер кошелька куда совершается перевод
|
||||
/// </summary>
|
||||
public string account_to { get; set;}
|
||||
public int substract { get; set; } = 0;
|
||||
public int amount { get; set; }
|
||||
/// <summary>
|
||||
/// Откуда списывать комиссию
|
||||
/// 1 - с баланса, 0 - с суммы
|
||||
/// </summary>
|
||||
public int? substract { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Сумма вывода с копейками и f на конце
|
||||
/// Пример: 1.00f
|
||||
/// </summary>
|
||||
public float amount { get; set; } = 1.00f;
|
||||
/// <summary>
|
||||
/// Комментарий
|
||||
/// </summary>
|
||||
public string? comment { get; set; }
|
||||
}
|
||||
public class TransferData : IBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Номер заявки
|
||||
/// </summary>
|
||||
public string id { get; set; }
|
||||
/// <summary>
|
||||
/// Время создания в unix
|
||||
/// </summary>
|
||||
public string created_at { get; set; }
|
||||
/// <summary>
|
||||
/// сумма
|
||||
/// </summary>
|
||||
public string amount { get; set; }
|
||||
/// <summary>
|
||||
/// Статус
|
||||
/// </summary>
|
||||
public string status { get; set; }
|
||||
public object comment { get; set; }
|
||||
/// <summary>
|
||||
/// Комментарий
|
||||
/// </summary>
|
||||
public string? comment { get; set; }
|
||||
/// <summary>
|
||||
/// валюта
|
||||
/// </summary>
|
||||
public string currency { get; set; }
|
||||
/// <summary>
|
||||
/// Тип
|
||||
/// </summary>
|
||||
public string type { get; set; }
|
||||
/// <summary>
|
||||
/// Получатель
|
||||
/// </summary>
|
||||
public string receiver { get; set; }
|
||||
/// <summary>
|
||||
/// комиссия
|
||||
/// </summary>
|
||||
public string commission { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,26 +8,85 @@ namespace Lava.NET.Types.LavaAPI
|
||||
{
|
||||
public class WithdrawInfo : IBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Номер заявки
|
||||
/// </summary>
|
||||
public string id { get; set; }
|
||||
/// <summary>
|
||||
/// Время создания (В формате unix timestamp)
|
||||
/// </summary>
|
||||
public string created_at { get; set; }
|
||||
/// <summary>
|
||||
/// Сумма заявки
|
||||
/// </summary>
|
||||
public string amount { get; set; }
|
||||
/// <summary>
|
||||
/// Комиссия
|
||||
/// </summary>
|
||||
public string commission { get; set; }
|
||||
/// <summary>
|
||||
/// Статус заявки
|
||||
/// </summary>
|
||||
public string status { get; set; }
|
||||
/// <summary>
|
||||
/// Сервис
|
||||
/// </summary>
|
||||
public string service { get; set; }
|
||||
public string comment { get; set; }
|
||||
/// <summary>
|
||||
/// Комментарий
|
||||
/// </summary>
|
||||
public string? comment { get; set; }
|
||||
/// <summary>
|
||||
/// Валюта
|
||||
/// </summary>
|
||||
public string currency { get; set; }
|
||||
}
|
||||
public class Withdraw : IBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Номер кошелька, с которго совершается вывод
|
||||
/// </summary>
|
||||
/// <example>
|
||||
/// R40510054
|
||||
/// </example>
|
||||
public string account { get; set; }
|
||||
/// <summary>
|
||||
/// Сумма вывода
|
||||
/// </summary>
|
||||
public float amount { get; set; }
|
||||
public string order_id { get; set; }
|
||||
public string hook_url { get; set; }
|
||||
public int subtract { get; set; } = 0;
|
||||
public string service { get; set; } = "card";
|
||||
public string wallet_to { get; set; }
|
||||
public string comment { get; set; }
|
||||
public string sbp_bank_id { get; set; }
|
||||
/// <summary>
|
||||
/// Номер счета в вашей системе
|
||||
/// Должен быть уникальным
|
||||
/// </summary>
|
||||
public string? order_id { get; set; }
|
||||
/// <summary>
|
||||
/// Url для отправки Webhook
|
||||
/// </summary>
|
||||
public string? hook_url { get; set; }
|
||||
/// <summary>
|
||||
/// Откуда списывать комиссию
|
||||
///
|
||||
/// 1 - с баланса, 0 - с суммы
|
||||
/// Если параметр не передан, то комиссия берется с суммы
|
||||
/// </summary>
|
||||
public int? subtract { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Сервис вывода
|
||||
/// Пример: card
|
||||
/// </summary>
|
||||
public string? service { get; set; } = "card";
|
||||
/// <summary>
|
||||
/// Номер счета получателя
|
||||
/// </summary>
|
||||
public string? wallet_to { get; set; }
|
||||
/// <summary>
|
||||
/// Комментарий к выводу
|
||||
/// </summary>
|
||||
public string? comment { get; set; }
|
||||
/// <summary>
|
||||
/// ID банка в СБП
|
||||
/// </summary>
|
||||
public string? sbp_bank_id { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user