Yookassa - AppWillapps/KnowledgeBase GitHub Wiki
Yookassa integration files download
Интеграция платежей через сервис Юкасса Взаимодействие с серверами Юкассы происходит через наш сервер на RU VDS. Магазин создаётся в личном кабинете Юкассы студии Garden of Dreams. Помните, что использование сторонних платежных сервисов доступно только в Google Play! Чтобы добавить ваш магазин ЮКассы на наш сервер, напишите Добрыне. Импортируйте YookassaPurchases.unitypackage в ваш Unity проект. Для взаимодействия с нашим сервером используется класс YookassaClient. Его следует создать единожды при старте игры. Для создания экземпляра класса вам понидобиться указать:
- Домен нашего сервера (напишите Добрыне)
- Id вашего магазина (можно найти в интерфейсе Юкассы)
- Deeplink (без "unitydl://" !). Deeplink необходим для возврещения игрока в игру после совершения оплаты на сайте ЮКасса.
- использовать https или нет (сейчас у сервера нет сертификата, поэтому устанавливаем false). Не забываем разрешить незащищённые подключения в настройках проекта (Player Settings/Other Settings/Allow downloads over HTTP* = Always allowed)
- (Опционально) Можно указать валюту в формате ISO 4217. По умолчанию значение "RUB".
- Отображать логи или нет.
Пример создания объекта YookassaClient:
using Yookassa;
...
var yookassaClient = new YookassaClient(
serverDomain: "localhost",
shopId: "123456",
deepLink: "ProjectName",
currencyCode: "RUB",
https: false,
log: true);
Для упрощения интергации платежей через ЮКассу можно использовать класс YookassaPurchases. Для создания экземпляра класса вам понидобиться указать:
- Ссылку на экземпляр класса YookassaClient
- Url на чат поддержки вашего проекта
Пример создания объекта YookassaPurchases в классе Shop и его использования:
using Yookassa;
using UnityEngine;
public class Shop : MonoBehaviour
{
private YookassaPurchases _yookassaPurchases;
private void Awake()
{
var yookassaClient = new YookassaClient("localhost", "123456",
"DeepLink", https: false, log: true);
_yookassaPurchases = new YookassaPurchases(yookassaClient,
"https://yourSupportChatLink");
}
private void OnDestroy()
{
_yookassaPurchases?.Dispose();
}
private void OnBuyButtonClicked(int shopItemId)
{
ShopItem shopItem = _shopItems[shopItemId];
var purchase = new Purchase((decimal)shopItem.Price, shopItem.Title);
_yookassaPurchases.Purchase(purchase, success =>
{
if (success)
{
// Purchase success. Give player purchased item
Debug.Log($"Purchase success: {purchase.Id}");
}
else
{
// Purchase failed
Debug.Log($"Purchase failed: {purchase.Id}");
}
});
}
}
В этом примере для проведения оплаты необходимо создать объект Purchase. Для создания экземпляра класса вам понидобиться указать:
- Amount - сумма платежа. (тип decimal)
- Description - описание. (Описание видно в личном кабинете ЮКассы у каждого платежа. Оно может помочь при поиске проблемных платежей. Максимальный размер описания 128 символов, но в него уже будет включен Id платежа в формате "00000000-0000-0000-0000-000000000000, "). Здесь можно указывать id товара.
Перед использованием ознакомтесь с примером из папки Example. Также в архиве найдёте папку Server в которой лежит код сервера на RU VDS. Советую прочитать документацию ЮКассы что бы лучше понимать что происходит. Вот документация на основе которой было написано это решение.