Продвинутая интеграция Unity-плагина
Продвинутая интеграция предоставляет возможность самостоятельно управлять инициализацией и деинициализацией плагина, а также процессом оплаты.
Убедитесь, что вы проделали все предварительные шаги для интеграции плагина.
Важно
Для интеграции с использованием кнопки YPay Button
используйте инструкцию.
Не используйте кнопку YPay Button
при программной интеграции. Смешивание двух подходов может привести к непредсказуемым результатам.
Шаг 1. Инициализируйте плагин
-
Создайте объект класса YPayConfig и заполните его данными продавца:
var config = new YPayConfig ( MerchantId: "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6", MerchantName: "Sample Merchant", MerchantUrl: "https://sample.com", IsSandbox: true );
Необходимые данные:
Merchant Id
— уникальный идентификатор продавца. Его можно получить при регистрации продавца в сервисе Яндекс Пэй.Merchant Name
— наименование продавца, которое будет отображаться у пользователя.Merchant Url
— URL продавца, который будет отображаться у пользователя.IsSandbox
— передайте флаг, если хотите использовать тестовое окружение.
-
Инициализируйте плагин и сохраните ключ платежной сессии:
var paymentSessionKey = YPayPlugin.Init(config);
Примечание
Чтобы избежать попыток проведения оплаты до инициализации плагина, рекомендуем инициализировать плагин заранее — например, при запуске приложения или при открытии экрана с оплатой.
Шаг 2. Обработайте результат оплаты
Разработайте класс, реализующий интерфейс IYPayResultListener.
Пример реализации
using YPay;
public class YPayResultListener : IYPayResultListener
{
public void OnPaymentResult(IYPayResult result)
{
// Обработка результата оплаты
switch (result)
{
case IYPayResult.Success success:
HandleSuccess(success.OrderId);
break;
case IYPayResult.Failure failure:
HandleError(failure.ErrorMessage);
break;
case IYPayResult.Cancelled cancelled:
HandleCancellation();
break;
}
}
}
Коды ошибок
В случае неуспешной оплаты дополнительно возвращается код ошибки errorMsg
:
Код ошибки | Описание |
---|---|
incorrect payment url |
Неверная платежная ссылка |
incorrect payment session key |
Неверный ключ платежной сессии |
transaction error |
Ошибка проведения транзакции |
failed to parse order ID |
Не удалось получить orderId при возврате результата |
invalid intent parsing |
Не удалось получить результат оплаты |
invalid result code |
Неверный код результата оплаты |
unresolved payment strategy |
Не удалось обработать результат оплаты, так как ваше приложение было закрыто в фоновом режиме |
session key not provided |
Не был предоставлен ключ сессии |
config data not provided |
Не был предоставлен объект СonfigData |
payment data not provided |
Не был предоставлен объект PaymentData |
Шаг 3. Запустите процесс оплаты
-
Перед запуском оплаты получите платежную ссылку из сервиса Яндекс Пэй.
Примечание
Подробнее про генерацию платежной ссылки смотрите в документации бэкенда.
-
Запустите процесс оплаты, передав объект слушателя результата оплаты, платежную ссылку и сохраненный ключ платежной сессии:
YPayPlugin.StartPayment(resultListener, paymentUrl, paymentSessionKey);
(Опционально) Шаг 4. Завершите работу с плагином
После завершения работы с плагином деинициализируйте платежную сессию, передав сохраненный ключ:
YPayPlugin.Deinitialize(paymentSessionKey);
Деинициализация производится только для указанной платежной сессии. Если вы используете несколько платежных сессий, деинициализируйте каждую отдельно. Проведение оплаты для деинициализированной платежной сессии невозможно.
Примечание
Данный шаг опционален, т.к. все ресурсы плагина в любом случае будут освобождены автоматически при закрытии приложения.