# Telegram MiniApp

Теперь в Telegram можно принимать криптовалютные платежи через сеть TON с помощью нашего мини-приложения. Оно легко подключается, позволяет работать с клиентами прямо в Telegram и открывает новые возможности для бизнеса в экосистеме TON.

***

## Параметры

Для управления создаваемым платежом доступны следующие параметры:

| Параметр           | Обязательный | Описание                                                                |
| ------------------ | ------------ | ----------------------------------------------------------------------- |
| **apiKey**         | НЕТ          | Публичная часть API-ключа (используется для подписи вебхуков о платеже) |
| **orderId**        | ДА           | Идентификатор платежа                                                   |
| **description**    | НЕТ          | Описание платежа                                                        |
| **organizationId** | ДА           | Id организации                                                          |
| **amount**         | НЕТ          | Сумма к оплате                                                          |
| **payerEmail**     | НЕТ          | Почта плательщика                                                       |
| **returnUrl**      | НЕТ          | URL возврата после успешного платежа                                    |

> API ключ вы можете получить в личном кабинете в разделе интеграции

***

## Подключение

Доступно два удобных способа подключения нашего мини-приложения для приема крипто платежей.

### 1. Платежная кнопка через скрипт

Вы можете интегрировать платежную систему на ваш сервис или мини-приложение, добавив готовый скрипт кнопки. Это удобное решение, которое позволяет быстро настроить процесс оплаты через сеть TON в самых используемых кошельках.

### Подключение скрипта

Для работы платежной кнопки нужно подключить скрипт на ваш сервис

```html
<script src="https://cdn.apollopayment.io/images/PaymentButtonMiniApp.js"></script>
```

Пример тега платежной кнопки с необходимыми параметрами:

```html
<payment-button
    data-orderid="test"
    data-organizationid="your_organization_id"
    data-description="test"
    data-payeremail="email@test.mail"
    data-apikey="your_public_api_key"
    data-label="Оплатить"
    data-accentcolor="red"
    data-returnurl="https://example.com/success"
>
</payment-button>
```

> Обратите внимание! data-атрибуты должны быть написаны в lowercase

***

### Параметры тэга платежной кнопки

#### `data-label`

Текст, отображаемый на кнопке.

Пример: `data-label="Оплатить"`

#### `data-accentcolor`

Цвет кнопки. Доступные значения: `purple, orange, green, red, yellow, blue`

### 2. Прямая ссылка

В качестве альтернативы можно использовать прямую ссылку, которую необходимо вставить на ваш сервис или мини-приложение. Эта ссылка перенаправит пользователя на наше приложение оплаты внутри Telegram.

> Для того чтобы открыть мини-приложение оплаты, вам необходимо сформировать из параметров `base64` строку и вставить в query-параметр `startapp`

#### Пример формирования base64 строки на JavaScript:

```js
const encodeObjectToUrlString = (obj) => { 
  const jsonString = JSON.stringify(obj); // Преобразуем объект в строку JSON 
  return encodeURIComponent(btoa(jsonString)); // Кодируем в Base64 и делаем безопасным для URL 
};

// Пример использования:
const params = {
  apiKey: "apiKey",
  orderId: "Payment#1234",
  description: "Some payment description",
  organizationId: "organizationId",
  payerEmail: "email@mail.ru",
  returnUrl: "https://example.com/success"
};

const base64Params = encodeObjectToUrlString(params);
```

#### Пример ссылки:

```
https://t.me/apollopayment_app_bot/apollopayment?startapp=${base64Params}
```

Ссылку доступно открыть через `window.open` функцию

```js
window.open(`https://t.me/apollopayment_app_bot/apollopayment?startapp=${base64Params}`)
```

> Вставьте результат из функции в base64Params в строке.

***

> Доступные валюты для оплаты USDT (TON), TON (TON)

> Обратите внимание! При открытии мини-приложения оплаты, ваше мини приложение закроется
