# Библиотека для работы с spworlds API Большинство функций было позаимствовано из библиотеки моего друга - [Mih4n](https://github.com/Mih4n/spworlds-csharp-library), так как писали мы ее вместе. Просьба по этому поводу ничего не писать. # CS Библиотека сайтов СП Это библиотека для dotnet для упрощения API сайтов СП. Документация к API [тут](https://github.com/sp-worlds/api-docs). ## Установка Вы можете установить эту библиотеку при помощи CLI (`dotnet`), NuGet или альтернативного пакетного менеджера. ```bash dotnet add package spworlds ``` ## Использование ```cs ... // При создании объекта вы должны передать ID и Токен карты, в порядке, указанном ниже var spw = new SPWorldsApi("[ваш айди]", "[ваш токен]"); ``` ## Использование ### Инициализировать платежную форму Если вы хотите выставить счет для оплаты в арах у себя на сайте, или же в стороннем приложении, используйте этот метод. Получение ссылки на страницу оплаты 16 АР, после успешной оплаты пользователь перейдет со страницы оплаты на `https://example.com/success`, а сайт СП отправит запрос на `https://api.example.com/webhook` с данными этого платежа, в том числе и `SomeString`. Последнее поле можно использовать, например, для ID заказа, так как он возвращается вместе с вебхуком об успешной оплате. ```cs const url = await sp.InitPayment( [ new PaymentItems() { Name = "Тестовая оплата", Count = 1, Price = 16, Comment = "Это пример тестовой оплаты в вашем сайте или приложении"} ], "https://example.com/success", "https://api.example.com/webhook", "SomeString" ); ``` ИЛИ ```cs [HttpPost("/create_payment_url/")] public async Task GetCreatePaymentFunction([FromBody] PaymentData paymentData) { const url = await sp.InitPayment(paymentData); // Ваша логика } ``` ### Перевод АРов на другую карту Перевод 16 АР на карту с номером 11111 и комментарием "С днем рождения!" ```cs await sp.CreateTransaction("11111", 16, "С днем рождения!"); ``` ### Получение баланса карты ```cs int balance = await sp.GetCardBalance(); ``` ### Получение ника игрока Метод принимает ID игрока в Discord и возвращает его ник, если у него есть вход на сервер. ```cs IUser user = await sp.GetUser("111111111111111111"); if (user.Name == "yawaflua") { // ваша логика } ``` ### Получение скина(части скина) игрока Метод принимает один из элементов енам-класса SkinPart и разрешение скина(советуется использовать 64, 128 и т.д., но если вам требуется использовать специфичные значения, например на сайте, указывайте как хотите) Метод является сабметодом класса User, так что выглядит это так: ```cs IUser user = await sp.GetUser("111111111111111111"); const faceUrl = user.GetSkinPart(SkinPart.face); ``` ### Подтверждение вебхука Метод рабочий, но то, что присылается от сайта вместе с вебхуком от оплаты невозможно дешифровать, все же, если очень надо, то вот: ```cs bool IsWebHook = await sp.ValidateWebHook(WebHookText, X_Body_Hash); ``` ## Contributing Если вы хотите дополнить или улучшить библиотеку или документацию к ней, то сделайте pull запрос к этому репозиторию.