Lava.NET

Áèáëèîòåêà äëÿ ðàáîòû ñ API ñàéòà lava.ru. Ïîêà ÷òî âåäåòñÿ ðàáîòà íàä áèçíåñ-÷àñòüþ API

Ñîâåòóåòñÿ ïåðåä èñïîëüçîâàíèåì ïðî÷èòàòü API ñàéòà lava.ru

Ïðèìåðû

Óñòàíîâêà áèáèëîòåêè

dotnet add package Lava.NET

È èñïîëüçëîâàíèå â ïðîåêòå

using Lava.NET;
public class Program 
{
    public static async Task Main(string[] args)
    {
        var publicLavaApi = new PublicLavaAPI("[ Âàø òîêåí ]");
        // ... Âàøà ëîãèêà
    }
}

Ïðèìåð èñïîëüçîâàíèÿ ñ ASP.NET ïðèëîæåíèåì:

// Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    var publicLavaApi = new PublicLavaAPI("[ Âàø òîêåí ]");
    services.AddControllers();
    services
            
            .AddSwaggerGen();

    services
        // ...Íàñòðîéêà ïðèëîæåíèÿ
        .AddSingleton(publicLavaAPI);
}

Ïðèìåð ðàáîòû ñ âåáõóêîì(.NET 8):

// PaymentController.cs

[ApiController]
[Route("/payment/")]
public class PaymentController(PublicLavaAPI lavaAPI) : ControllerBase
{
        

    [HttpPost("lava")]
    public async Task<IActionResult> ValidatePaymentLava([FromBody] WebhookResponse webhookResponse)
    {
        // Âàøà ëîãèêà
        
        return Ok(); // Îáÿçàòåëüíî îòâå÷àòü 200, èíà÷å âåáõóêè áóäóò ïðèõîäèòü ñíîâà è ñíîâà, äî 15 ðàç. 
    }
}

Ñîçäàíèå ññûëêè íà îïëàòó:

var publicLavaApi = new PublicLavaAPI("[Âàø òîêåí]");
var createdPayment = await publicLavaApi.CreatePaymentAsync(
	new (){
            comment = "Îïëàòà ïîêóïêè â Telegram áîòå", // Íåîá.
            hook_url = $"https://example.com/api/payment/lava", // Íåîá.
            merchant_id = "AskMeAboutBOT", // Íåîá.
            merchant_name = "AskMeAboutBOT", // Íåîá.
            custom_fields = $"Ëþáûå êàñòîìíûå äàííûå, ïåðåäàâàåìûå â webhook", // Íåîá.
            success_url = $"https://example.com/", // Íåîá.
            sum = 39.00f,
            wallet_to = "R123123123"
	}
);
Console.Out.WriteLine(createdPayment.url);

// >>> 'https://p2p.lava.ru/form?id=1ee31634-e3e0-34ce-1423-b5b4cb524c6a'
Description
Библиотека для работы с API сайта Lava.ru
Readme 53 KiB
Languages
C# 100%