Yookassa - AppWillapps/KnowledgeBase GitHub Wiki

Yookassa integration files download

Интеграция платежей через сервис Юкасса Взаимодействие с серверами Юкассы происходит через наш сервер на RU VDS. Магазин создаётся в личном кабинете Юкассы студии Garden of Dreams. Помните, что использование сторонних платежных сервисов доступно только в Google Play! Чтобы добавить ваш магазин ЮКассы на наш сервер, напишите Добрыне. Импортируйте YookassaPurchases.unitypackage в ваш Unity проект. Для взаимодействия с нашим сервером используется класс YookassaClient. Его следует создать единожды при старте игры. Для создания экземпляра класса вам понидобиться указать:

  1. Домен нашего сервера (напишите Добрыне)
  2. Id вашего магазина (можно найти в интерфейсе Юкассы)
  3. Deeplink (без "unitydl://" !). Deeplink необходим для возврещения игрока в игру после совершения оплаты на сайте ЮКасса.
  4. использовать https или нет (сейчас у сервера нет сертификата, поэтому устанавливаем false). Не забываем разрешить незащищённые подключения в настройках проекта (Player Settings/Other Settings/Allow downloads over HTTP* = Always allowed)
  5. (Опционально) Можно указать валюту в формате ISO 4217. По умолчанию значение "RUB".
  6. Отображать логи или нет.

Пример создания объекта YookassaClient:

using Yookassa;
...
var yookassaClient = new YookassaClient(
serverDomain: "localhost",
shopId: "123456",
deepLink: "ProjectName",
currencyCode: "RUB",
https: false,
log: true);

Для упрощения интергации платежей через ЮКассу можно использовать класс YookassaPurchases. Для создания экземпляра класса вам понидобиться указать:

  1. Ссылку на экземпляр класса YookassaClient
  2. 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. Для создания экземпляра класса вам понидобиться указать:

  1. Amount - сумма платежа. (тип decimal)
  2. Description - описание. (Описание видно в личном кабинете ЮКассы у каждого платежа. Оно может помочь при поиске проблемных платежей. Максимальный размер описания 128 символов, но в него уже будет включен Id платежа в формате "00000000-0000-0000-0000-000000000000, "). Здесь можно указывать id товара.

Перед использованием ознакомтесь с примером из папки Example. Также в архиве найдёте папку Server в которой лежит код сервера на RU VDS. Советую прочитать документацию ЮКассы что бы лучше понимать что происходит. Вот документация на основе которой было написано это решение.