mirror of
https://github.com/yawaflua/SPWorlds.git
synced 2025-12-10 04:29:35 +02:00
100 lines
4.5 KiB
Markdown
100 lines
4.5 KiB
Markdown
# Библиотека для работы с 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<IActionResult> 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 запрос к этому репозиторию.
|