Система оплаты – неотъемлемая часть любого современного Android-приложения, особенно магазина или сервиса с платными услугами. Интеграция платежных систем требует внимательности и знания специфики каждой платформы. Этот урок рассматривает основные принципы интеграции, используя библиотеку Razer Pay в качестве примера. Универсального решения нет, код будет различаться в зависимости от выбранной системы (Stripe, Square, Google Pay и др.).
Основные принципы интеграции
Взаимодействие с платежными системами происходит через два канала: клиентский (Android-приложение) и серверный. Перед оплатой приложение создает ордер на сервере. Это ключевой этап каждой транзакции. После оплаты обрабатываются события, используя отдельные методы для успешных и неуспешных платежей. Обработка зависит от выбранной платежной системы.
Интеграция Razer Pay
Этот урок описывает интеграцию Razer Pay. Процесс включает несколько этапов:
Подключение библиотеки
Добавьте строку в файл build.gradle в секцию dependencies:
implementation '...' // (строка из документации Razer Pay)
После синхронизации Gradle библиотека будет доступна.
Инициализация и API-ключ
Инициализируйте библиотеку в onCreate Activity с кнопкой оплаты. Вам понадобится API-ключ из раздела «Account & Settings» -> «API Keys» на сайте Razer Pay. Создайте тестовый ключ и скопируйте его ID. Вставьте ID в код инициализации:
// Код инициализации Razer Pay с API-ключом
Укажите ключ в AndroidManifest.xml:
<application ...>
<meta-data
android_name="com.razerpay"
android_value="YOUR_API_KEY" />
<meta-data
android_name="com.google.android.gms.wallet.api.enabled"
android_value="true" />
</application>
Добавьте конфигурацию в proguard-rules.pro, удалив комментарии и добавив настройки из документации Razer Pay (для безопасности подключения).
Создание оплаты
Создайте функцию для запуска оплаты. Создание заказа на сервере пока опустим. Пример функции на Kotlin:
// Функция создания оплаты с настройками (название компании, описание, сумма, валюта и т.д.)
В коде укажите orderID (получим его позже). Пример обработчика нажатия кнопки «Купить»:
// Обработчик нажатия кнопки "Купить"
Создание заказа на сервере
Заказ создается на сервере HTTP-запросом (например, curl или библиотеки для HTTP-запросов в Python, Node.js и т.д.). Это необходимо для генерации уникального orderID. Пример на Python:
# Код на Python для создания заказа на сервере
Этот код требует установки библиотеки Razer Pay для Python (pip install razorpay). После выполнения получите orderID для передачи в клиентскую функцию оплаты.
Обработка событий оплаты
Реализуйте интерфейс PaymentResultListener:
// Реализация интерфейса PaymentResultListener с методами onSuccessfulPayment, onPaymentError и onExternalWalletSelected
Эти методы выполнят необходимые действия после транзакции.
Разрешения
Для работы системы оплаты добавьте разрешение в AndroidManifest.xml:
<uses-permission android_name="android.permission.INTERNET" />
Урок рассмотрел базовые принципы интеграции платежной системы в Android-приложение на примере Razer Pay. Процесс может отличаться для других платформ, но общий принцип остается: создание заказа на сервере, инициализация клиентской библиотеки, обработка событий оплаты и работа с интернет-подключением. В будущем можно автоматизировать получение orderID с сервера перед вызовом функции оплаты.